UNPKG

@techmely/utils

Version:

Collection of helpful JavaScript / TypeScript utils

79 lines (72 loc) 2.15 kB
/*! * @techmely/utils * Copyright(c) 2021-2024 Techmely <techmely.creation@gmail.com> * MIT Licensed */ "use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/mergeDeep.ts var mergeDeep_exports = {}; __export(mergeDeep_exports, { mergeDeep: () => mergeDeep }); module.exports = __toCommonJS(mergeDeep_exports); // src/isArray.ts function isArray(val) { return val && Array.isArray(val); } // src/isObject.ts function isObject(val) { return toString.call(val) === "[object Object]"; } // src/mergeDeep.ts function mergeDeep(target, ...sources) { if (sources.length === 0) { return target; } const source = sources.shift(); if (source === void 0) { return target; } if (isMergeableObject(target) && isMergeableObject(source)) { const sourceKeys = Object.keys(source); for (const key of sourceKeys) { if (isMergeableObject(source[key])) { if (!target[key]) { target[key] = {}; } if (isMergeableObject(target[key])) { mergeDeep(target[key], source[key]); } else { target[key] = source[key]; } } else { target[key] = source[key]; } } } return mergeDeep(target, ...sources); } function isMergeableObject(item) { return isObject(item) && !isArray(item); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { mergeDeep });