108 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			108 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | // Copyright Joyent, Inc. and other Node contributors.
 | ||
|  | //
 | ||
|  | // Permission is hereby granted, free of charge, to any person obtaining a
 | ||
|  | // copy of this software and associated documentation files (the
 | ||
|  | // "Software"), to deal in the Software without restriction, including
 | ||
|  | // without limitation the rights to use, copy, modify, merge, publish,
 | ||
|  | // distribute, sublicense, and/or sell copies of the Software, and to permit
 | ||
|  | // persons to whom the Software is furnished to do so, subject to the
 | ||
|  | // following conditions:
 | ||
|  | //
 | ||
|  | // The above copyright notice and this permission notice shall be included
 | ||
|  | // in all copies or substantial portions of the Software.
 | ||
|  | //
 | ||
|  | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | ||
|  | // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | ||
|  | // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
 | ||
|  | // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 | ||
|  | // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
 | ||
|  | // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
 | ||
|  | // USE OR OTHER DEALINGS IN THE SOFTWARE.
 | ||
|  | 
 | ||
|  | // NOTE: These type checking functions intentionally don't use `instanceof`
 | ||
|  | // because it is fragile and can be easily faked with `Object.create()`.
 | ||
|  | 
 | ||
|  | function isArray(arg) { | ||
|  |   if (Array.isArray) { | ||
|  |     return Array.isArray(arg); | ||
|  |   } | ||
|  |   return objectToString(arg) === '[object Array]'; | ||
|  | } | ||
|  | exports.isArray = isArray; | ||
|  | 
 | ||
|  | function isBoolean(arg) { | ||
|  |   return typeof arg === 'boolean'; | ||
|  | } | ||
|  | exports.isBoolean = isBoolean; | ||
|  | 
 | ||
|  | function isNull(arg) { | ||
|  |   return arg === null; | ||
|  | } | ||
|  | exports.isNull = isNull; | ||
|  | 
 | ||
|  | function isNullOrUndefined(arg) { | ||
|  |   return arg == null; | ||
|  | } | ||
|  | exports.isNullOrUndefined = isNullOrUndefined; | ||
|  | 
 | ||
|  | function isNumber(arg) { | ||
|  |   return typeof arg === 'number'; | ||
|  | } | ||
|  | exports.isNumber = isNumber; | ||
|  | 
 | ||
|  | function isString(arg) { | ||
|  |   return typeof arg === 'string'; | ||
|  | } | ||
|  | exports.isString = isString; | ||
|  | 
 | ||
|  | function isSymbol(arg) { | ||
|  |   return typeof arg === 'symbol'; | ||
|  | } | ||
|  | exports.isSymbol = isSymbol; | ||
|  | 
 | ||
|  | function isUndefined(arg) { | ||
|  |   return arg === void 0; | ||
|  | } | ||
|  | exports.isUndefined = isUndefined; | ||
|  | 
 | ||
|  | function isRegExp(re) { | ||
|  |   return objectToString(re) === '[object RegExp]'; | ||
|  | } | ||
|  | exports.isRegExp = isRegExp; | ||
|  | 
 | ||
|  | function isObject(arg) { | ||
|  |   return typeof arg === 'object' && arg !== null; | ||
|  | } | ||
|  | exports.isObject = isObject; | ||
|  | 
 | ||
|  | function isDate(d) { | ||
|  |   return objectToString(d) === '[object Date]'; | ||
|  | } | ||
|  | exports.isDate = isDate; | ||
|  | 
 | ||
|  | function isError(e) { | ||
|  |   return (objectToString(e) === '[object Error]' || e instanceof Error); | ||
|  | } | ||
|  | exports.isError = isError; | ||
|  | 
 | ||
|  | function isFunction(arg) { | ||
|  |   return typeof arg === 'function'; | ||
|  | } | ||
|  | exports.isFunction = isFunction; | ||
|  | 
 | ||
|  | function isPrimitive(arg) { | ||
|  |   return arg === null || | ||
|  |          typeof arg === 'boolean' || | ||
|  |          typeof arg === 'number' || | ||
|  |          typeof arg === 'string' || | ||
|  |          typeof arg === 'symbol' ||  // ES6 symbol
 | ||
|  |          typeof arg === 'undefined'; | ||
|  | } | ||
|  | exports.isPrimitive = isPrimitive; | ||
|  | 
 | ||
|  | exports.isBuffer = Buffer.isBuffer; | ||
|  | 
 | ||
|  | function objectToString(o) { | ||
|  |   return Object.prototype.toString.call(o); | ||
|  | } |