UNPKG

@pomgui/deep

Version:

Ultrasmall footprint deepmerge, deepfreeze, diff, patch tools

2 lines 2.74 kB
"use strict";var l=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var m=(e,t)=>{for(var i in t)l(e,i,{get:t[i],enumerable:!0})},h=(e,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of j(t))!k.call(e,o)&&o!==i&&l(e,o,{get:()=>t[o],enumerable:!(r=O(t,o))||r.enumerable});return e};var w=e=>h(l({},"__esModule",{value:!0}),e);var D={};m(D,{deepFreeze:()=>p,deepMerge:()=>f,diff:()=>g,patch:()=>d});module.exports=w(D);function p(...e){let t=[];for(let i of e)t.push(u(i));return t.length==1?t[0]:t}function u(e){if(!e||typeof e!="object")return e;for(let t in Object.getOwnPropertyNames(e))u(e[t]);return Object.freeze(e)}function f(e,...t){for(let i of t)e!==i&&Object.entries(i).forEach(([r,o])=>{let n=e[r];(n!==o||!e.hasOwnProperty(r))&&(typeof o=="object"&&o!==null?(Array.isArray(o)&&!Array.isArray(n)?n=e[r]=[]:typeof n!="object"&&(n=e[r]={}),f(n,o)):(n===void 0||o!==void 0)&&(e[r]=o))});return e}function y(e,t,i,r){let o={};if(typeof e=="object"&&typeof t=="object"&&e!==null&&t!==null){if(r.has(e)&&r.has(t))return{};if(r.add(e),r.add(t),Array.isArray(e)&&Array.isArray(t)){for(let n=0;n<e.length;n++){let s=c(i,n);Object.hasOwn(t,n)?Object.assign(o,y(e[n],t[n],s,r)):o["-"+s]=0}for(let n=0;n<t.length;n++)if(!Object.hasOwn(e,n)){let s=c(i,n);o["+"+s]=t[n]}return r.delete(e),r.delete(t),o}if(Object.prototype.toString.call(e)==="[object Object]"&&Object.prototype.toString.call(t)==="[object Object]"){for(let n in e){let s=c(i,n);Object.hasOwn(t,n)?Object.assign(o,y(e[n],t[n],s,r)):o["-"+s]=0}for(let n of Object.keys(t))if(!Object.hasOwn(e,n)){let s=c(i,n);o["+"+s]=t[n]}return r.delete(e),r.delete(t),o}if(e instanceof Date&&t instanceof Date&&!Object.is(e.getTime(),t.getTime()))return{["="+i]:t};if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(t))return{["="+i]:t}}else if(!Object.is(e,t))return{["="+i]:t};return o}function c(e,t){let i=typeof t=="string"?t.replace(".","\\."):t.toString();return e!=""?e+"."+i:i}function g(e,t){return y(e,t,"",new WeakSet)}function d(e,t){let i=f(Array.isArray(e)?[]:{},e);for(let r in t)(r[0]=="+"||r[0]=="=")&&A(i,r.substring(1),t[r]),r[0]=="-"&&R(i,r.substring(1));return i}function A(e,t,i){let r=t.split(/(?<!\\)\./).map(n=>n.replace(/\\./g,".")),o=r.pop();for(let n=0;n<r.length;n++){let s=r[n],a=r[n+1];(!(s in e)||!e[s]||typeof e[s]!="object")&&(e[s]=/^\d+$/.test(a!=null?a:o)?[]:{}),e=e[s]}e[o]=i}function R(e,t){let i=t.split(/(?<!\\)\./).map(o=>o.replace(/\\./g,".")),r=i.pop();for(let o=0;o<i.length;o++){let n=i[o];if(!(n in e)||(e=e[n],!e))return}delete e[r]}0&&(module.exports={deepFreeze,deepMerge,diff,patch}); //# sourceMappingURL=index.js.map