effector
Version:
Business logic with ease
3 lines (2 loc) • 1.52 kB
JavaScript
function e(e){return c.add(e),n((()=>{c.delete(e)}))}function t(e){return s.add(e),n((()=>{s.delete(e)}))}function n(e){const t=()=>e();return t.unsubscribe=t,t}function i(e){return d(e.node)}function d(e){const{meta:t,id:n}=e,i=(e=>e.config?e.config.loc:e.loc)(t),{sid:d,name:o,op:r}=t;return{meta:t,id:n,sid:d,name:o,kind:r,loc:i,derived:t.derived}}function o(e){if(!e)return;const{parent:t,meta:n,id:i}=e,d=o(t)||void 0;if('factory'===n.type){const{sid:e,name:t,loc:o,method:r}=n;return{type:'factory',id:i,region:d,meta:n,sid:e,name:t,loc:o,method:r}}return{type:'region',id:i,region:d,meta:n}}import{setInspector as r,setGraphInspector as a}from'effector/effector.mjs';const c=new Set;r(((e,t)=>{const{scope:n}=e,d=i(e);let o;c.forEach((r=>{r.scope!==n&&(r.scope||n)||(r.trace&&!o&&(o=(e=>{const t=[];let n=e.parent;for(;n;){const e=i(n);t.push({type:'update',value:n.value,stack:n.meta||{},meta:e.meta,id:e.id,sid:e.sid,name:e.name,kind:e.kind,loc:e.loc,derived:e.derived}),n=n.parent}return t})(e)),r.fn({type:t.fail?'error':'update',value:e.value,error:t.fail?t.failReason:void 0,stack:e.meta||{},trace:r.trace?o:[],meta:d.meta,id:d.id,sid:d.sid,name:d.name,kind:d.kind,loc:d.loc,derived:d.derived}))}))}));const s=new Set;a(((e,t)=>{let n;n='region'===e?o(t):((e,t)=>{const n=d(e);return{type:'unit',region:o(t),meta:n.meta,id:n.id,sid:n.sid,name:n.name,kind:n.kind,loc:n.loc,derived:n.derived}})(e,t),n&&s.forEach((e=>{e.fn(n)}))}));export{e as inspect,t as inspectGraph};
//# sourceMappingURL=inspect.mjs.map