|
|
function getType(payload) { return Object.prototype.toString.call(payload).slice(8, -1);}
function isAnyObject(payload) { return getType(payload) === "Object";}
function isArray(payload) { return getType(payload) === "Array";}
function isBlob(payload) { return getType(payload) === "Blob";}
function isBoolean(payload) { return getType(payload) === "Boolean";}
function isDate(payload) { return getType(payload) === "Date" && !isNaN(payload);}
function isEmptyArray(payload) { return isArray(payload) && payload.length === 0;}
function isPlainObject(payload) { if (getType(payload) !== "Object") return false; const prototype = Object.getPrototypeOf(payload); return !!prototype && prototype.constructor === Object && prototype === Object.prototype;}
function isEmptyObject(payload) { return isPlainObject(payload) && Object.keys(payload).length === 0;}
function isEmptyString(payload) { return payload === "";}
function isError(payload) { return getType(payload) === "Error" || payload instanceof Error;}
function isFile(payload) { return getType(payload) === "File";}
function isFullArray(payload) { return isArray(payload) && payload.length > 0;}
function isFullObject(payload) { return isPlainObject(payload) && Object.keys(payload).length > 0;}
function isString(payload) { return getType(payload) === "String";}
function isFullString(payload) { return isString(payload) && payload !== "";}
function isFunction(payload) { return typeof payload === "function";}
function isType(payload, type) { if (!(type instanceof Function)) { throw new TypeError("Type must be a function"); } if (!Object.prototype.hasOwnProperty.call(type, "prototype")) { throw new TypeError("Type is not a class"); } const name = type.name; return getType(payload) === name || Boolean(payload && payload.constructor === type);}
function isInstanceOf(value, classOrClassName) { if (typeof classOrClassName === "function") { for (let p = value; p; p = Object.getPrototypeOf(p)) { if (isType(p, classOrClassName)) { return true; } } return false; } else { for (let p = value; p; p = Object.getPrototypeOf(p)) { if (getType(p) === classOrClassName) { return true; } } return false; }}
function isMap(payload) { return getType(payload) === "Map";}
function isNaNValue(payload) { return getType(payload) === "Number" && isNaN(payload);}
function isNumber(payload) { return getType(payload) === "Number" && !isNaN(payload);}
function isNegativeNumber(payload) { return isNumber(payload) && payload < 0;}
function isNull(payload) { return getType(payload) === "Null";}
function isOneOf(a, b, c, d, e) { return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);}
function isUndefined(payload) { return getType(payload) === "Undefined";}
const isNullOrUndefined = isOneOf(isNull, isUndefined);
function isObject(payload) { return isPlainObject(payload);}
function isObjectLike(payload) { return isAnyObject(payload);}
function isPositiveNumber(payload) { return isNumber(payload) && payload > 0;}
function isSymbol(payload) { return getType(payload) === "Symbol";}
function isPrimitive(payload) { return isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);}
function isPromise(payload) { return getType(payload) === "Promise";}
function isRegExp(payload) { return getType(payload) === "RegExp";}
function isSet(payload) { return getType(payload) === "Set";}
function isWeakMap(payload) { return getType(payload) === "WeakMap";}
function isWeakSet(payload) { return getType(payload) === "WeakSet";}
export { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isInstanceOf, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet };
|