UNPKG

jotai

Version:

👻 Next gen state management that will spook you

2 lines (1 loc) • 1.53 kB
System.register(["xstate","jotai"],function(W){"use strict";var h,s;return{setters:[function(f){h=f.interpret},function(f){s=f.atom}],execute:function(){W("atomWithMachine",j);var f=Object.defineProperty,u=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable,p=(t,e,n)=>e in t?f(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,l=(t,e)=>{for(var n in e||(e={}))v.call(e,n)&&p(t,n,e[n]);if(u)for(var n of u(e))_.call(e,n)&&p(t,n,e[n]);return t},b=(t,e)=>{var n={};for(var a in t)v.call(t,a)&&e.indexOf(a)<0&&(n[a]=t[a]);if(t!=null&&u)for(var a of u(t))e.indexOf(a)<0&&_.call(t,a)&&(n[a]=t[a]);return n};function j(t,e){const n=s(null),a=s(i=>{const r=i(n);if(r)return r;let o=!0;const c=I=>{if(o)return i(I);throw new Error("get not allowed after initialization")},m=typeof t=="function"?t(c):t,x=typeof e=="function"?e(c):e;o=!1;const S=x||{},{guards:w,actions:O,activities:g,services:P,delays:A}=S,C=b(S,["guards","actions","activities","services","delays"]),E=l(l(l(l(l({},w&&{guards:w}),O&&{actions:O}),g&&{activities:g}),P&&{services:P}),A&&{delays:A}),M=m.withConfig(E,m.context),z=h(M,C);return{machine:M,service:z}},(i,r,o)=>{r(n,i(a))});a.onMount=i=>{i()};const d=s(null),y=s(i=>{var r;return(r=i(d))!=null?r:i(a).machine.initialState},(i,r,o)=>{const{service:c}=i(a);c.onTransition(m=>{r(d,m)}),c.start(),o(()=>{c.stop()})});return y.onMount=i=>{let r;return i(o=>{r===!1?o():r=o}),()=>{r&&r(),r=!1}},s(i=>i(y),(i,r,o)=>{const{service:c}=i(a);c.send(o)})}}}});