@qntm-code/utils
Version:
A collection of useful utility functions with associated TypeScript types. All functions have been unit tested.
19 lines (18 loc) • 727 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isMergeableObject = void 0;
const isReactElement_js_1 = require("./isReactElement.js");
/**
* Figuring out which properties of an object should be recursively iterated over when merging.
*/
function isMergeableObject(value) {
return isNonNullObject(value) && !isSpecial(value);
}
exports.isMergeableObject = isMergeableObject;
function isNonNullObject(value) {
return !!value && typeof value === 'object';
}
function isSpecial(value) {
const stringValue = Object.prototype.toString.call(value);
return stringValue === '[object RegExp]' || stringValue === '[object Date]' || (0, isReactElement_js_1.isReactElement)(value);
}