UNPKG

immer

Version:

Create your next immutable state by mutating the current one

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