UNPKG

immer

Version:

Create your next immutable state by mutating the current one

2 lines 15.6 kB
var G=Symbol.for("immer-nothing"),B=Symbol.for("immer-draftable"),y=Symbol.for("immer-state");function O(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var N=Object,j=N.getPrototypeOf,re="constructor",ne="prototype",Pe="configurable",fe="enumerable",ue="writable",oe="value",C=e=>!!e&&!!e[y];function w(e){return e?ke(e)||$(e)||!!e[B]||!!e[re]?.[B]||q(e)||Y(e):!1}var qe=N[ne][re].toString(),ze=new WeakMap;function ke(e){if(!e||!H(e))return!1;let t=j(e);if(t===null||t===N[ne])return!0;let r=N.hasOwnProperty.call(t,re)&&t[re];if(r===Object)return!0;if(!L(r))return!1;let n=ze.get(r);return n===void 0&&(n=Function.toString.call(r),ze.set(r,n)),n===qe}function Ye(e){return C(e)||O(15,e),e[y].t}function k(e,t,r=!0){K(e)===0?(r?Reflect.ownKeys(e):N.keys(e)).forEach(a=>{t(a,e[a],e)}):e.forEach((n,a)=>t(a,n,e))}function K(e){let t=e[y];return t?t.r:$(e)?1:q(e)?2:Y(e)?3:0}var v=(e,t,r=K(e))=>r===2?e.has(t):N[ne].hasOwnProperty.call(e,t),z=(e,t,r=K(e))=>r===2?e.get(t):e[t],ae=(e,t,r,n=K(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function Ue(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var $=Array.isArray,q=e=>e instanceof Map,Y=e=>e instanceof Set,H=e=>typeof e=="object",L=e=>typeof e=="function",ge=e=>typeof e=="boolean";function je(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var _e=e=>H(e)?e?.[y]:null,D=e=>e.e||e.t,Le=e=>{let t=_e(e);return t?t.e??t.t:e},xe=e=>e.s?e.e:e.t;function ye(e,t){if(q(e))return new Map(e);if(Y(e))return new Set(e);if($(e))return Array[ne].slice.call(e);let r=ke(e);if(t===!0||t==="class_only"&&!r){let n=N.getOwnPropertyDescriptors(e);delete n[y];let a=Reflect.ownKeys(n);for(let i=0;i<a.length;i++){let p=a[i],P=n[p];P[ue]===!1&&(P[ue]=!0,P[Pe]=!0),(P.get||P.set)&&(n[p]={[Pe]:!0,[ue]:!0,[fe]:P[fe],[oe]:e[p]})}return N.create(j(e),n)}else{let n=j(e);if(n!==null&&r)return{...e};let a=N.create(n);return N.assign(a,e)}}function ie(e,t=!1){return se(e)||C(e)||!w(e)||(K(e)>1&&N.defineProperties(e,{set:Se,add:Se,clear:Se,delete:Se}),N.freeze(e),t&&k(e,(r,n)=>{ie(n,!0)},!1)),e}function Je(){O(2)}var Se={[oe]:Je};function se(e){return e===null||!H(e)?!0:N.isFrozen(e)}var W="MapSet",J="Patches",de="ArrayMethods",Ae={};function V(e){let t=Ae[e];return t||O(0,e),t}var Ee=e=>!!Ae[e];function ce(e,t){Ae[e]||(Ae[e]=t)}var pe,Q=()=>pe,Qe=(e,t)=>({o:[],i:e,l:t,F:!0,m:0,P:new Set,T:new Set,I:Ee(W)?V(W):void 0,E:Ee(de)?V(de):void 0});function we(e,t){t&&(e.x=V(J),e.y=[],e.d=[],e.C=t)}function he(e){Ie(e),e.o.forEach(Xe),e.o=null}function Ie(e){e===pe&&(pe=e.i)}var Ce=e=>pe=Qe(pe,e);function Xe(e){let t=e[y];t.r===0||t.r===1?t.b():t.g=!0}function Fe(e,t){t.m=t.o.length;let r=t.o[0];if(e!==void 0&&e!==r){r[y].s&&(he(t),O(4)),w(e)&&(e=Ve(t,e));let{x:a}=t;a&&a.M(r[y].t,e,t)}else e=Ve(t,r);return Ze(t,e,!0),he(t),t.y&&t.C(t.y,t.d),e!==G?e:void 0}function Ve(e,t){if(se(t))return t;let r=t[y];if(!r)return Me(t,e.P,e);if(!Te(r,e))return t;if(!r.s)return r.t;if(!r.u){let{f:n}=r;if(n)for(;n.length>0;)n.pop()(e);We(r,e)}return r.e}function Ze(e,t,r=!1){!e.i&&e.l.h&&e.F&&ie(t,r)}function Be(e){e.u=!0,e.a.m--}var Te=(e,t)=>e.a===t,et=[];function Ke(e,t,r,n){let a=D(e),i=e.r;if(n!==void 0&&z(a,n,i)===t){ae(a,n,r,i);return}if(!e.D){let P=e.D=new Map;k(a,(h,T)=>{if(C(T)){let o=P.get(T)||[];o.push(h),P.set(T,o)}})}let p=e.D.get(t)??et;for(let P of p)ae(a,P,r,i)}function He(e,t,r){e.f.push(function(a){let i=t;if(!i||!Te(i,a))return;a.I?.fixSetContents(i);let p=xe(i);Ke(e,i.c??i,p,r),We(i,a)})}function We(e,t){if(e.s&&!e.u&&(e.r===3||e.r===1&&e.R||(e.n?.size??0)>0)){let{x:n}=t;if(n){let a=n.getPath(e);a&&n.O(e,a,t)}Be(e)}}function X(e,t,r){let{a:n}=e;if(C(r)){let a=r[y];Te(a,n)&&a.f.push(function(){Z(e);let p=xe(a);Ke(e,r,p,t)})}else w(r)&&e.f.push(function(){let i=D(e);e.r===3?i.has(r)&&Me(r,n.P,n):z(i,t,e.r)===r&&n.o.length>1&&(e.n.get(t)??!1)===!0&&e.e&&Me(z(e.e,t,e.r),n.P,n)})}function Me(e,t,r){return!r.l.h&&r.m<1||C(e)||t.has(e)||!w(e)||se(e)||(t.add(e),k(e,(n,a)=>{if(C(a)){let i=a[y];if(Te(i,r)){let p=xe(i);ae(e,n,p,e.r),Be(i)}}else w(a)&&Me(a,t,r)})),e}function Ge(e,t){let r=$(e),n={r:r?1:0,a:t?t.a:Q(),s:!1,u:!1,n:void 0,i:t,t:e,c:null,e:null,b:null,S:!1,f:void 0},a=n,i=be;r&&(a=[n],i=me);let{revoke:p,proxy:P}=Proxy.revocable(a,i);return n.c=P,n.b=p,[P,n]}var be={get(e,t){if(t===y)return e;let r=e.a.E,n=e.r===1&&typeof t=="string";if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);let a=D(e);if(!v(a,t,e.r))return tt(e,a,t);let i=a[t];if(e.u||!w(i)||n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&je(t))return i;if(i===Ne(e.t,t)){Z(e);let p=e.r===1?+t:t,P=ee(e.a,i,e,p);return e.e[p]=P}return i},has(e,t){return t in D(e)},ownKeys(e){return Reflect.ownKeys(D(e))},set(e,t,r){let n=ve(D(e),t);if(n?.set)return n.set.call(e.c,r),!0;if(!e.s){let a=Ne(D(e),t),i=a?.[y];if(i&&i.t===r)return e.e[t]=r,e.n.set(t,!1),!0;if(Ue(r,a)&&(r!==void 0||v(e.t,t,e.r)))return!0;Z(e),R(e)}return e.e[t]===r&&(r!==void 0||t in e.e)||Number.isNaN(r)&&Number.isNaN(e.e[t])||(e.e[t]=r,e.n.set(t,!0),X(e,t,r)),!0},deleteProperty(e,t){return Z(e),Ne(e.t,t)!==void 0||t in e.t?(e.n.set(t,!1),R(e)):e.n.delete(t),e.e&&delete e.e[t],!0},getOwnPropertyDescriptor(e,t){let r=D(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[ue]:!0,[Pe]:e.r!==1||t!=="length",[fe]:n[fe],[oe]:r[t]}},defineProperty(){O(11)},getPrototypeOf(e){return j(e.t)},setPrototypeOf(){O(12)}},me={};for(let e in be){let t=be[e];me[e]=function(){let r=arguments;return r[0]=r[0][0],t.apply(this,r)}}me.deleteProperty=function(e,t){return me.set.call(this,e,t,void 0)};me.set=function(e,t,r){return be.set.call(this,e[0],t,r,e[0])};function Ne(e,t){let r=e[y];return(r?D(r):e)[t]}function tt(e,t,r){let n=ve(t,r);return n?oe in n?n[oe]:n.get?.call(e.c):void 0}function ve(e,t){if(!(t in e))return;let r=j(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=j(r)}}function R(e){e.s||(e.s=!0,e.i&&R(e.i))}function Z(e){e.e||(e.n=new Map,e.e=ye(e.t,e.a.l.A))}var Oe=class{constructor(t){this.h=!0;this.A=!1;this._=!1;this.produce=(t,r,n)=>{if(L(t)&&!L(r)){let i=r;r=t;let p=this;return function(h=i,...T){return p.produce(h,o=>r.call(this,o,...T))}}L(r)||O(6),n!==void 0&&!L(n)&&O(7);let a;if(w(t)){let i=Ce(this),p=ee(i,t,void 0),P=!0;try{a=r(p),P=!1}finally{P?he(i):Ie(i)}return we(i,n),Fe(a,i)}else if(!t||!H(t)){if(a=r(t),a===void 0&&(a=t),a===G&&(a=void 0),this.h&&ie(a,!0),n){let i=[],p=[];V(J).M(t,a,{y:i,d:p}),n(i,p)}return a}else O(1,t)};this.produceWithPatches=(t,r)=>{if(L(t))return(p,...P)=>this.produceWithPatches(p,h=>t(h,...P));let n,a;return[this.produce(t,r,(p,P)=>{n=p,a=P}),n,a]};ge(t?.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),ge(t?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),ge(t?.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){w(t)||O(8),C(t)&&(t=Re(t));let r=Ce(this),n=ee(r,t,void 0);return n[y].S=!0,Ie(r),n}finishDraft(t,r){let n=t&&t[y];(!n||!n.S)&&O(9);let{a}=n;return we(a,r),Fe(void 0,a)}setAutoFreeze(t){this.h=t}setUseStrictShallowCopy(t){this.A=t}setUseStrictIteration(t){this._=t}shouldUseStrictIteration(){return this._}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){let i=r[n];if(i.path.length===0&&i.op==="replace"){t=i.value;break}}n>-1&&(r=r.slice(n+1));let a=V(J).N;return C(t)?a(t,r):this.produce(t,i=>a(i,r))}};function ee(e,t,r,n){let[a,i]=q(t)?V(W).w(t,r):Y(t)?V(W).V(t,r):Ge(t,r);return(r?.a??Q()).o.push(a),i.f=r?.f??[],i.p=n,r&&n!==void 0?He(r,i,n):i.f.push(function(h){h.I?.fixSetContents(i);let{x:T}=h;i.s&&T&&T.O(i,[],h)}),a}function Re(e){return C(e)||O(10,e),$e(e)}function $e(e){if(!w(e)||se(e))return e;let t=e[y],r,n=!0;if(t){if(!t.s)return t.t;t.u=!0,r=ye(e,t.a.l.A),n=t.a.l.shouldUseStrictIteration()}else r=ye(e,!0);return k(r,(a,i)=>{ae(r,a,$e(i))},n),t&&(t.u=!1),r}function rt(){function t(u,m=[]){if(u.p!==void 0){let S=u.i.e??u.i.t,x=_e(z(S,u.p)),A=z(S,u.p);if(A===void 0||A!==u.c&&A!==u.t&&A!==u.e||x!=null&&x.t!==u.t)return null;let I=u.i.r===3,s;if(I){let l=u.i;s=Array.from(l.o.keys()).indexOf(u.p)}else s=u.p;if(!(I&&S.size>s||v(S,s)))return null;m.push(s)}if(u.i)return t(u.i,m);m.reverse();try{r(u.e,m)}catch{return null}return m}function r(u,m){let S=u;for(let x=0;x<m.length-1;x++){let A=m[x];if(S=z(S,A),!H(S)||S===null)throw new Error(`Cannot resolve path at '${m.join("/")}'`)}return S}let n="replace",a="add",i="remove";function p(u,m,S){if(u.a.T.has(u))return;u.a.T.add(u);let{y:x,d:A}=S;switch(u.r){case 0:case 2:return h(u,m,x,A);case 1:return P(u,m,x,A);case 3:return T(u,m,x,A)}}function P(u,m,S,x){let{t:A,n:I}=u,s=u.e;s.length<A.length&&([A,s]=[s,A],[S,x]=[x,S]);let l=u.R===!0;for(let f=0;f<A.length;f++){let d=s[f],M=A[f];if((l||I?.get(f.toString()))&&d!==M){let _=d?.[y];if(_&&_.s)continue;let te=m.concat([f]);S.push({op:n,path:te,value:E(d)}),x.push({op:n,path:te,value:E(M)})}}for(let f=A.length;f<s.length;f++){let d=m.concat([f]);S.push({op:a,path:d,value:E(s[f])})}for(let f=s.length-1;A.length<=f;--f){let d=m.concat([f]);x.push({op:i,path:d})}}function h(u,m,S,x){let{t:A,e:I,r:s}=u;k(u.n,(l,f)=>{let d=z(A,l,s),M=z(I,l,s),b=f?v(A,l)?n:a:i;if(d===M&&b===n)return;let _=m.concat(l);S.push(b===i?{op:b,path:_}:{op:b,path:_,value:E(M)}),x.push(b===a?{op:i,path:_}:b===i?{op:a,path:_,value:E(d)}:{op:n,path:_,value:E(d)})})}function T(u,m,S,x){let{t:A,e:I}=u,s=0;A.forEach(l=>{if(!I.has(l)){let f=m.concat([s]);S.push({op:i,path:f,value:l}),x.unshift({op:a,path:f,value:l})}s++}),s=0,I.forEach(l=>{if(!A.has(l)){let f=m.concat([s]);S.push({op:a,path:f,value:l}),x.unshift({op:i,path:f,value:l})}s++})}function o(u,m,S){let{y:x,d:A}=S;x.push({op:n,path:[],value:m===G?void 0:m}),A.push({op:n,path:[],value:u})}function c(u,m){return m.forEach(S=>{let{path:x,op:A}=S,I=u;for(let d=0;d<x.length-1;d++){let M=K(I),b=x[d];typeof b!="string"&&typeof b!="number"&&(b=""+b),(M===0||M===1)&&(b==="__proto__"||b===re)&&O(16+3),L(I)&&b===ne&&O(16+3),I=z(I,b),H(I)||O(16+2,x.join("/"))}let s=K(I),l=g(S.value),f=x[x.length-1];switch(A){case n:switch(s){case 2:return I.set(f,l);case 3:O(16);default:return I[f]=l}case a:switch(s){case 1:return f==="-"?I.push(l):I.splice(f,0,l);case 2:return I.set(f,l);case 3:return I.add(l);default:return I[f]=l}case i:switch(s){case 1:return I.splice(f,1);case 2:return I.delete(f);case 3:return I.delete(S.value);default:return delete I[f]}default:O(16+1,A)}}),u}function g(u){if(!w(u))return u;if($(u))return u.map(g);if(q(u))return new Map(Array.from(u.entries()).map(([S,x])=>[S,g(x)]));if(Y(u))return new Set(Array.from(u).map(g));let m=Object.create(j(u));for(let S in u)m[S]=g(u[S]);return v(u,B)&&(m[B]=u[B]),m}function E(u){return C(u)?g(u):u}ce(J,{N:c,O:p,M:o,getPath:t})}function nt(){class e extends Map{constructor(o,c){super();this[y]={r:2,i:c,a:c?c.a:Q(),s:!1,u:!1,e:void 0,n:void 0,t:o,c:this,S:!1,g:!1,f:[]}}get size(){return D(this[y]).size}has(o){return D(this[y]).has(o)}set(o,c){let g=this[y];return p(g),(!D(g).has(o)||D(g).get(o)!==c)&&(r(g),R(g),g.n.set(o,!0),g.e.set(o,c),g.n.set(o,!0),X(g,o,c)),this}delete(o){if(!this.has(o))return!1;let c=this[y];return p(c),r(c),R(c),c.t.has(o)?c.n.set(o,!1):c.n.delete(o),c.e.delete(o),!0}clear(){let o=this[y];p(o),D(o).size&&(r(o),R(o),o.n=new Map,k(o.t,c=>{o.n.set(c,!1)}),o.e.clear())}forEach(o,c){let g=this[y];D(g).forEach((E,u,m)=>{o.call(c,this.get(u),u,this)})}get(o){let c=this[y];p(c);let g=D(c).get(o);if(c.u||!w(g)||g!==c.t.get(o))return g;let E=ee(c.a,g,c,o);return r(c),c.e.set(o,E),E}keys(){return D(this[y]).keys()}values(){let o=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let c=o.next();return c.done?c:{done:!1,value:this.get(c.value)}}}}entries(){let o=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let c=o.next();if(c.done)return c;let g=this.get(c.value);return{done:!1,value:[c.value,g]}}}}[(y,Symbol.iterator)](){return this.entries()}}function t(h,T){let o=new e(h,T);return[o,o[y]]}function r(h){h.e||(h.n=new Map,h.e=new Map(h.t))}class n extends Set{constructor(o,c){super();this[y]={r:3,i:c,a:c?c.a:Q(),s:!1,u:!1,e:void 0,t:o,c:this,o:new Map,g:!1,S:!1,n:void 0,f:[]}}get size(){return D(this[y]).size}has(o){let c=this[y];return p(c),c.e?!!(c.e.has(o)||c.o.has(o)&&c.e.has(c.o.get(o))):c.t.has(o)}add(o){let c=this[y];return p(c),this.has(o)||(i(c),R(c),c.e.add(o),X(c,o,o)),this}delete(o){if(!this.has(o))return!1;let c=this[y];return p(c),i(c),R(c),c.e.delete(o)||(c.o.has(o)?c.e.delete(c.o.get(o)):!1)}clear(){let o=this[y];p(o),D(o).size&&(i(o),R(o),o.e.clear())}values(){let o=this[y];return p(o),i(o),o.e.values()}entries(){let o=this[y];return p(o),i(o),o.e.entries()}keys(){return this.values()}[(y,Symbol.iterator)](){return this.values()}forEach(o,c){let g=this.values(),E=g.next();for(;!E.done;)o.call(c,E.value,E.value,this),E=g.next()}}function a(h,T){let o=new n(h,T);return[o,o[y]]}function i(h){h.e||(h.e=new Set,h.t.forEach(T=>{if(w(T)){let o=ee(h.a,T,h,T);h.o.set(T,o),h.e.add(o)}else h.e.add(T)}))}function p(h){h.g&&O(3,JSON.stringify(D(h)))}function P(h){if(h.r===3&&h.e){let T=new Set(h.e);h.e.clear(),T.forEach(o=>{h.e.add(Le(o))})}}ce(W,{w:t,V:a,fixSetContents:P})}function ot(){let e=new Set(["shift","unshift"]),t=new Set(["push","pop"]),r=new Set([...t,...e]),n=new Set(["reverse","sort"]),a=new Set([...r,...n,"splice"]),i=new Set(["find","findLast"]),p=new Set(["filter","slice","concat","flat",...i,"findIndex","findLastIndex","some","every","indexOf","lastIndexOf","includes","join","toString","toLocaleString"]);function P(s){return a.has(s)}function h(s){return p.has(s)}function T(s){return P(s)||h(s)}function o(s,l){s.operationMethod=l}function c(s){s.operationMethod=void 0}function g(s,l,f=!0){Z(s);let d=l();return R(s),f&&s.n.set("length",!0),d}function E(s){s.R=!0}function u(s,l){return s<0?Math.max(l+s,0):Math.min(s,l)}function m(s,l,f){for(let d=0;d<f.length;d++){let M=l+d;s.n.set(M,!0),X(s,M,f[d])}}function S(s,l,f){return g(s,()=>{let d=s.e.length,M=s.e[l](...f);return e.has(l)&&E(s),l==="push"&&f.length>0?m(s,d,f):l==="unshift"&&f.length>0&&m(s,0,f),r.has(l)?M:s.c})}function x(s,l,f){return g(s,()=>(s.e[l](...f),E(s),s.c),!1)}function A(s,l){return function(...d){let M=l;o(s,M);try{if(P(M)){if(r.has(M))return S(s,M,d);if(n.has(M))return x(s,M,d);if(M==="splice"){let b=g(s,()=>s.e.splice(...d));if(E(s),d.length>2){let _=u(d[0]??0,s.e.length);m(s,_,d.slice(2))}return b}}else return I(s,M,d)}finally{c(s)}}}function I(s,l,f){let d=D(s);if(l==="filter"){let M=f[0],b=[];for(let _=0;_<d.length;_++)M(d[_],_,d)&&b.push(s.c[_]);return b}if(i.has(l)){let M=f[0],b=l==="find",_=b?1:-1,te=b?0:d.length-1;for(let U=te;U>=0&&U<d.length;U+=_)if(M(d[U],U,d))return s.c[U];return}if(l==="slice"){let M=f[0]??0,b=f[1]??d.length,_=u(M,d.length),te=u(b,d.length),U=[];for(let De=_;De<te;De++)U.push(s.c[De]);return U}return d[l](...f)}ce(de,{createMethodInterceptor:A,isArrayOperationMethod:T,isMutatingArrayMethod:P})}var F=new Oe,vr=F.produce,$r=F.produceWithPatches.bind(F),qr=F.setAutoFreeze.bind(F),Yr=F.setUseStrictShallowCopy.bind(F),Jr=F.setUseStrictIteration.bind(F),Qr=F.applyPatches.bind(F),Xr=F.createDraft.bind(F),Zr=F.finishDraft.bind(F),en=e=>e,tn=e=>e;export{Oe as Immer,Qr as applyPatches,en as castDraft,tn as castImmutable,Xr as createDraft,Re as current,ot as enableArrayMethods,nt as enableMapSet,rt as enablePatches,Zr as finishDraft,ie as freeze,B as immerable,C as isDraft,w as isDraftable,G as nothing,Ye as original,vr as produce,$r as produceWithPatches,qr as setAutoFreeze,Jr as setUseStrictIteration,Yr as setUseStrictShallowCopy}; //# sourceMappingURL=immer.production.mjs.map