UNPKG

@opra/common

Version:
19 lines (18 loc) 718 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cloneObject = cloneObject; const objects_1 = require("@jsopen/objects"); const constants_js_1 = require("../document/constants.js"); function cloneObject(obj, jsonOnly) { return (0, objects_1.merge)({}, obj, { deep: v => (0, objects_1.isPlainObject)(v) && !v[constants_js_1.DATATYPE_METADATA], copyDescriptors: true, ignoreUndefined: true, filter(key, source) { const v = source[key]; return (!jsonOnly || (typeof v !== 'function' && (typeof v !== 'object' || (0, objects_1.isPlainObject)(v) || Array.isArray(v)))); }, }); }