123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- 'use strict';
- var utils = require('core-util-is');
- var isStearm = require('isstream');
- // wait for https://github.com/miguelmota/is-class/pull/6 merge
- var isClass = require('is-class-hotfix');
- /**
- * Expose all methods in core-util-is
- */
- Object.keys(utils).map(function (name) {
- exports[transform(name)] = utils[name];
- });
- /**
- * Stream detected by isstream
- */
- exports.stream = isStearm;
- exports.readableStream = isStearm.isReadable;
- exports.writableStream = isStearm.isWritable;
- exports.duplexStream = isStearm.isDuplex;
- /**
- * Class detected by is-class
- */
- exports.class = isClass;
- /**
- * Extend method
- */
- exports.finite = Number.isFinite;
- exports.NaN = Number.isNaN
- exports.generator = function (obj) {
- return obj
- && 'function' === typeof obj.next
- && 'function' === typeof obj.throw;
- };
- exports.generatorFunction = function (obj) {
- return obj
- && obj.constructor
- && 'GeneratorFunction' === obj.constructor.name;
- };
- exports.asyncFunction = function (obj) {
- return obj
- && obj.constructor
- && 'AsyncFunction' === obj.constructor.name;
- };
- exports.promise = function (obj) {
- return obj
- && 'function' === typeof obj.then;
- };
- var MAX_INT_31 = Math.pow(2, 31);
- exports.int = function (obj) {
- return utils.isNumber(obj)
- && obj % 1 === 0;
- };
- exports.int32 = function (obj) {
- return exports.int(obj)
- && obj < MAX_INT_31
- && obj >= -MAX_INT_31;
- };
- exports.long = function (obj) {
- return exports.int(obj)
- && (obj >= MAX_INT_31 || obj < -MAX_INT_31);
- };
- exports.Long = function (obj) {
- return exports.object(obj)
- && exports.number(obj.high)
- && exports.number(obj.low);
- };
- exports.double = function (obj) {
- return utils.isNumber(obj)
- && !isNaN(obj)
- && obj % 1 !== 0;
- };
- /**
- * override core-util-is
- */
- exports.date = function isDate(obj) {
- return obj instanceof Date;
- };
- exports.regExp = function isRegExp(obj) {
- return obj instanceof RegExp;
- };
- exports.regexp = exports.regExp;
- exports.error = function isError(obj) {
- return obj instanceof Error;
- };
- exports.array = Array.isArray;
- /**
- * transform isNull type to null
- * @param {[type]} m [description]
- * @return {[type]} [description]
- */
- function transform(m) {
- var name = m.slice(2);
- name = name[0].toLowerCase() + name.slice(1);
- return name;
- }
|