UNPKG

@pomgui/deep

Version:

Ultrasmall footprint deepmerge, deepfreeze, diff, patch tools

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