UNPKG

@feugene/mu

Version:

Helpful TS utilities without dependencies

61 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isObjects = isObjects; exports.default = isObject; exports.isEmptyObject = isEmptyObject; exports.isObjectLike = isObjectLike; const isO = Object.prototype.toString.call(null) === '[object Object]' ? function (value) { // check ownerDocument here as well to exclude DOM nodes return (value != null && Object.prototype.toString.call(value) === '[object Object]' && value.ownerDocument === undefined); } : function (value) { return Object.prototype.toString.call(value) === '[object Object]'; }; /** * This function evaluates whether all parameters are objects */ function isObjects(...parameters) { if (parameters.length === 0) { throw new Error('Please provide at least one number to evaluate isObject.'); } const invalid = parameters.some(parameter => !isO(parameter)); return !invalid; } function isObject(value) { return isO(value); } function isEmptyObject(...parameters) { if (parameters.length === 0) { throw new Error('Please provide at least one number to evaluate isObject.'); } const invalid = parameters.some(parameter => { if (!isObject(parameter)) return true; for (const key in parameter) return true; }); return !invalid; } /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @example * * isObjectLike({}); // => true * * isObjectLike([]); // => true * * isObjectLike([1, 2, 3]); // => true * * isObjectLike(new Function()); // => false * * isObjectLike(null); // => false */ function isObjectLike(value) { return value !== null && typeof value === 'object'; } //# sourceMappingURL=isObject.js.map