UNPKG

yale-doorman

Version:

SDK for Yale Doorman through the Yale cloud API

25 lines (24 loc) 1.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deepMerge = void 0; function isObject(val) { return typeof val === "object" && val !== null && !Array.isArray(val); } function deepMerge(...objects) { return objects .reduce((result, current) => { for (const key of Object.keys(current)) { // Only consider deep merging objects. Check if the value is an object. if (isObject(current[key])) { // CHeck if this object is present on the result object. If not, we can merging. if (key in result) { // Merge the objects and piggy-back the final return statement for doing the actual merge. // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unused-vars current[key] = deepMerge(result[key], current[key]); } } } return Object.assign({}, result, current); }, {}); } exports.deepMerge = deepMerge;