UNPKG

1.91 kBJavaScriptView Raw
1!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("xstate"),require("jotai")):"function"==typeof define&&define.amd?define(["exports","xstate","jotai"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).jotaiXstate={},t.xstate,t.jotai)}(this,(function(t,n,e){"use strict";function i(){return i=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}return t},i.apply(this,arguments)}var r=["guards","actions","services","delays","context"],o=Symbol();var a=function(t){return"function"==typeof t};t.RESTART=o,t.atomWithMachine=function(t,u){var c=e.atom(null),s=e.atom((function(e){var o=e(c);if(o)return o;var s=!0,f=function(t){if(s)return e(t);throw new Error("get not allowed after initialization")},l=a(t)?t(f):t,v=a(u)?u(f):u;s=!1;var d=v||{},p=d.guards,y=d.actions,h=d.services,g=d.delays,m=d.context,b=function(t,n){if(null==t)return{};var e,i,r={},o=Object.keys(t);for(i=0;i<o.length;i++)e=o[i],n.indexOf(e)>=0||(r[e]=t[e]);return r}(d,r),j=i({},p&&{guards:p},y&&{actions:y},h&&{services:h},g&&{delays:g}),x=l.withConfig(j,(function(){return i({},l.context,m)}));return{machine:x,service:n.interpret(x,b)}}),(function(t,n,e){n(c,t(s))}));s.onMount=function(t){t()};var f=e.atom(null),l=e.atom((function(t){var n;return null!=(n=t(f))?n:t(s).machine.initialState}),(function(t,n,e){var i=t(s).service;i.onTransition((function(t){n(f,t)})),i.start(),e((function(){t(s).service.stop()}))}));return l.onMount=function(t){var n;return t((function(t){!1===n?t():n=t})),function(){n&&n(),n=!1}},e.atom((function(t){return t(l)}),(function(t,n,e){var i=t(s).service;if(e===o){i.stop(),n(c,null),n(s,null);var r=t(s).service;r.onTransition((function(t){n(f,t)})),r.start()}else i.send(e)}))},Object.defineProperty(t,"__esModule",{value:!0})}));