dynamic-display-shared
Version:
A library for dynamic view
25 lines • 2.8 kB
JavaScript
export function deepClone(value) {
if (typeof value !== 'object' || value === null) {
return value;
}
if (Array.isArray(value)) {
return deepArray(value);
}
return deepObject(value);
}
function deepObject(source) {
const result = {};
Object.keys(source).forEach((key) => {
// @ts-ignore
const value = source[key];
// @ts-ignore
result[key] = deepClone(value);
}, {});
return result;
}
function deepArray(collection) {
return collection.map((value) => {
return deepClone(value);
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1jbG9uZS51dGlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHluYW1pYy1kaXNwbGF5LXNoYXJlZC9zcmMvbGliL2luZnJhc3RydWN0dXJlL2RlZXAtY2xvbmUudXRpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsU0FBUyxDQUFJLEtBQVE7SUFDakMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtRQUM3QyxPQUFPLEtBQUssQ0FBQTtLQUNmO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO0tBQzFCO0lBQ0QsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDNUIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFJLE1BQVM7SUFDNUIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO0lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDaEMsYUFBYTtRQUNiLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN6QixhQUFhO1FBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDTixPQUFPLE1BQVcsQ0FBQTtBQUN0QixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQWtCLFVBQWE7SUFDN0MsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRlZXBDbG9uZTxUPih2YWx1ZTogVCk6IGFueXtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gZGVlcEFycmF5KHZhbHVlKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRlZXBPYmplY3QodmFsdWUpXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlZXBPYmplY3Q8VD4oc291cmNlOiBUKTogYW55IHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHt9XHJcbiAgICBPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldXHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHJlc3VsdFtrZXldID0gZGVlcENsb25lKHZhbHVlKVxyXG4gICAgfSwge30pXHJcbiAgICByZXR1cm4gcmVzdWx0IGFzIFRcclxufVxyXG5cclxuZnVuY3Rpb24gZGVlcEFycmF5PFQgZXh0ZW5kcyBhbnlbXT4oY29sbGVjdGlvbjogVCkge1xyXG4gICAgcmV0dXJuIGNvbGxlY3Rpb24ubWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBkZWVwQ2xvbmUodmFsdWUpXHJcbiAgICB9KVxyXG59Il19