/**
|
* Check if argument is a HTML element.
|
*
|
* @param {Object} value
|
* @return {Boolean}
|
*/
|
exports.node = function(value) {
|
return value !== undefined
|
&& value instanceof HTMLElement
|
&& value.nodeType === 1;
|
};
|
|
/**
|
* Check if argument is a list of HTML elements.
|
*
|
* @param {Object} value
|
* @return {Boolean}
|
*/
|
exports.nodeList = function(value) {
|
var type = Object.prototype.toString.call(value);
|
|
return value !== undefined
|
&& (type === '[object NodeList]' || type === '[object HTMLCollection]')
|
&& ('length' in value)
|
&& (value.length === 0 || exports.node(value[0]));
|
};
|
|
/**
|
* Check if argument is a string.
|
*
|
* @param {Object} value
|
* @return {Boolean}
|
*/
|
exports.string = function(value) {
|
return typeof value === 'string'
|
|| value instanceof String;
|
};
|
|
/**
|
* Check if argument is a function.
|
*
|
* @param {Object} value
|
* @return {Boolean}
|
*/
|
exports.fn = function(value) {
|
var type = Object.prototype.toString.call(value);
|
|
return type === '[object Function]';
|
};
|