UNPKG

@mbc-cqrs-serverless/core

Version:
52 lines 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isObject = isObject; exports.mergeDeep = mergeDeep; exports.objectBytes = objectBytes; exports.pickKeys = pickKeys; exports.omitKeys = omitKeys; function isObject(item) { return !!item && typeof item === 'object' && !Array.isArray(item); } // deep merge objects without mutating the input parameters function mergeDeep(target, ...sources) { if (!sources.length) return target; const source = sources.shift(); if (isObject(target) && isObject(source)) { for (const key in source) { if (isObject(source[key])) { if (!target[key]) Object.assign(target, { [key]: {} }); mergeDeep(target[key], source[key]); } else { Object.assign(target, { [key]: source[key] }); } } } return mergeDeep(target, ...sources); } // calculate the object bytes function objectBytes(obj) { return Buffer.byteLength(JSON.stringify(obj)); } function pickKeys(obj, keys) { const result = {}; for (const key of keys) { if (key in obj) { result[key] = obj[key]; } } return result; } function omitKeys(obj, keys) { const result = {}; for (const key in obj) { if (!keys.includes(key)) { result[key] = obj[key]; } } return result; } //# sourceMappingURL=object.js.map