UNPKG

immer

Version:

Create your next immutable state by mutating the current one

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