@opra/common
Version:
Opra common package
19 lines (18 loc) • 718 B
JavaScript
;
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))));
},
});
}