ola-toolkit
Version:
ola 开发工具套件
85 lines (59 loc) • 2.81 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isPromise = exports.isPlainObject = exports.isImmutable = exports.isEmptyObject = exports.isEmptyArray = exports.isArray = exports.isGenerator = exports.isObject = exports.isFunction = undefined;
var _keys = require('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
var _isGeneratorFn = require('is-generator-fn');
var _isGeneratorFn2 = _interopRequireDefault(_isGeneratorFn);
var _isImmutable2 = require('../isImmutable');
var _isImmutable3 = _interopRequireDefault(_isImmutable2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var isFunction = exports.isFunction = function isFunction(fn) {
var string = toString.call(fn);
return (string === '[object Function]' || typeof fn === 'function' && string !== '[object RegExp]' || typeof window !== 'undefined' && (
// IE8 and below
fn === window.setTimeout || fn === window.alert || fn === window.confirm || fn === window.prompt)) && !isGenerator(fn);
};
var isObject = exports.isObject = function isObject(val) {
return val != null && (typeof val === 'undefined' ? 'undefined' : (0, _typeof3.default)(val)) === 'object' && Array.isArray(val) === false;
};
var isGenerator = exports.isGenerator = function isGenerator(fn) {
return (0, _isGeneratorFn2.default)(fn);
};
var isArray = exports.isArray = function isArray(arr) {
return Array.isArray(arr);
};
var isEmptyArray = exports.isEmptyArray = function isEmptyArray(arr) {
return isArray(arr) && !arr.length;
};
var isEmptyObject = exports.isEmptyObject = function isEmptyObject(obj) {
return (0, _keys2.default)(obj).length === 0;
};
exports.isImmutable = _isImmutable3.default;
function isObjectObject(o) {
return isObject(o) === true && Object.prototype.toString.call(o) === '[object Object]';
}
var isPlainObject = exports.isPlainObject = function isPlainObject(o) {
var ctor = void 0,
prot = void 0;
if (isObjectObject(o) === false) return false;
// If has modified constructor
ctor = o.constructor;
if (typeof ctor !== 'function') return false;
// If has modified prototype
prot = ctor.prototype;
if (isObjectObject(prot) === false) return false;
// If constructor does not have an Object-specific method
if (prot.hasOwnProperty('isPrototypeOf') === false) {
return false;
}
// Most likely a plain Object
return true;
};
var isPromise = exports.isPromise = function isPromise(obj) {
return !!obj && ((typeof obj === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj)) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
};
;