UNPKG

@little-bonsai/ingrates

Version:
3 lines (2 loc) 5.2 kB
var n=require("nanoid");function e(){var n={};return{kill:function(e){var t=e.self,r=e.parent;try{var i=n[t].nickname;return delete n[t],delete n[r].children[i],Promise.resolve(!0)}catch(n){return Promise.reject(n)}},get:function(e){try{return Promise.resolve(n[e]||null)}catch(n){return Promise.reject(n)}},set:function(e){try{return n[e.self]=Object.assign({},n[e.self],e),Promise.resolve(!0)}catch(n){return Promise.reject(n)}}}}var t=function(n){try{var e;return Promise.resolve(function(n,e,t){if("function"==typeof n[r]){var c,s,a,l=n[r]();if(function n(r){try{for(;!((c=l.next()).done||t&&t());)if((r=e(c.value))&&r.then){if(!u(r))return void r.then(n,a||(a=i.bind(null,s=new o,2)));r=r.v}s?i(s,1,r):s=r}catch(n){i(s||(s=new o),2,n)}}(),l.return){var f=function(n){try{c.done||l.return()}catch(n){}return n};if(s&&s.then)return s.then(f,function(n){throw f(n)});f()}return s}if(!("length"in n))throw new TypeError("Object is not iterable");for(var h=[],v=0;v<n.length;v++)h.push(n[v]);return function(n,e,t){var r,c,s=-1;return function a(l){try{for(;++s<n.length&&(!t||!t());)if((l=e(s))&&l.then){if(!u(l))return void l.then(a,c||(c=i.bind(null,r=new o,2)));l=l.v}r?i(r,1,l):r=l}catch(n){i(r||(r=new o),2,n)}}(),r}(h,function(n){return e(h[n])},t)}(n,function(n){return Promise.resolve(n()).then(function(n){if(n)return e=1,n})},function(){return e}))}catch(n){return Promise.reject(n)}},r="undefined"!=typeof Symbol?Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator")):"@@iterator";function i(n,e,t){if(!n.s){if(t instanceof o){if(!t.s)return void(t.o=i.bind(null,n,e));1&e&&(e=t.s),t=t.v}if(t&&t.then)return void t.then(i.bind(null,n,e),i.bind(null,n,2));n.s=e,n.v=t;var r=n.o;r&&r(n)}}var o=function(){function n(){}return n.prototype.then=function(e,t){var r=new n,o=this.s;if(o){var u=1&o?e:t;if(u){try{i(r,1,u(this.v))}catch(n){i(r,2,n)}return r}return this}return this.o=function(n){try{var o=n.v;1&n.s?i(r,1,e?e(o):o):t?i(r,1,t(o)):i(r,2,o)}catch(n){i(r,2,n)}},r},n}();function u(n){return n instanceof o&&1&n.s}var c=n.customAlphabet("23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz",14);function s(){}exports.createActorSystem=function n(r){var i=function n(e){try{var r=function(){setTimeout(n,0,e),y[e]=!1};if(y[e]||0===P[e].length||b[e])return Promise.resolve();y[e]=!0;var i=P[e].shift(),o="ADD_CHILD"===i.special?Promise.resolve(t(w.map(function(n){return function(){return n.get(e,g)}})).then(function(n){return Promise.all(w.map(function(e){var t;return e.set(Object.assign({},n,{children:Object.assign({},n.children,(t={},t[i.nickname]=i.child,t))}))}))})).then(function(){}):Promise.resolve(Promise.resolve(j.some(function(n){return n(e,i)})||t(w.map(function(n){return function(){return n.get(e,g)}})).then(function(n){return n?function(n){try{var e=n.args,t=n.msg,r=n.name,i=n.parent,o=n.self,u=n.state,c=A({children:n.children,msg:t,name:r,parent:i,self:o,state:u});return Promise.resolve(function(n,t){try{var i=Promise.resolve(g[r].apply(g,[c].concat(e))).then(function(n){return"function"==typeof n?n(u):n})}catch(n){return t(n)}return i&&i.then?i.then(void 0,t):i}(0,function(e){switch(p("RunError",e,{self:o,name:r,msg:t,state:u,parent:i}),(g[r].supervision||s)(e,n,{escalate:1,restart:2,resume:3,retry:4,stop:5})){case 1:S(o,i,{error:e,msg:t});case 5:return void k(i,o)}}))}catch(n){return Promise.reject(n)}}(Object.assign({msg:i},n)).then(function(e){return Object.assign({},n,{state:void 0===e?n.state:e})}).then(function(n){return Promise.all(w.map(function(e){return e.set(n)}))}):null}))).then(function(){});return Promise.resolve(o&&o.then?o.then(r):r())}catch(n){return Promise.reject(n)}},o=void 0===r?{}:r,u=o.enhancers,a=void 0===u?[]:u,l=o.realizers,f=void 0===l?[e]:l,h=o.transports,v=o.addressFn,m=void 0===v?c:v,d=o.onErr,p=void 0===d?console.error:d,y={},g={},b={},P={},j=(void 0===h?[]:h).map(function(e){return e(S,n)}),w=f.map(function(e){return e(n)});function O(n,e,t){var r=arguments,o=t.name;if(!g[o])return p("StartError",o,"unregistered actor"),null;var u=m();return(P[n]||[]).unshift({special:"ADD_CHILD",nickname:e,child:u}),setTimeout(i,0,u),P[u]=[{type:"Start",src:null},{type:"Mount",src:null}],b[u]=!0,Promise.all(w.map(function(t){return t.set({children:{},name:o,parent:n,nickname:e,self:u,args:[].slice.call(r,3),state:void 0},g)})).then(function(){b[u]=!1,setTimeout(i,0,u)}).catch(function(n){return p("StartError",n,{self:u,name:o})}),u}function S(n,e,t){var r=Object.assign({src:n},t);return P[e]?P[e].push(r):P[e]=[{type:"Mount",src:null},r],setTimeout(i,0,e),e}function k(n,e){w.forEach(function(t){return t.kill({self:e,parent:n},g)})}function A(n){var e=n.self,t=k.bind(null,e),r=S.bind(null,e),i=new Proxy(function(){return O.apply(void 0,[e,m()].concat(Array.prototype.slice.call(arguments)))},{get:function(n,t,r){return O.bind(null,e,t)}}),o=Object.assign(n,{dispatch:r,spawn:i,kill:t});return Object.assign(n,a.reduce(function(n,e){return Object.assign(e(n),n)},o))}return A({register:function(n){g[n.name]=n},self:null,parent:null,mount:function(n){P[n]=[{type:"Mount",src:null}],setTimeout(i,0,n)}})},exports.createDefaultRAMRealizer=e,exports.makeAddress=c; //# sourceMappingURL=index.js.map