effector
Version:
Business logic with ease
3 lines (2 loc) • 1.54 kB
JavaScript
function e(e){const t=()=>e();return t.unsubscribe=t,t}function t(e){return n(e.node)}function n(e){const{meta:t,id:n}=e,i=(e=>e.config?e.config.loc:e.loc)(t),{sid:r,name:d,op:o}=t;return{meta:t,id:n,sid:r,name:d,kind:o,loc:i,derived:t.derived}}function i(e){if(!e)return;const{parent:t,meta:n,id:r}=e,d=i(t)||void 0;if('factory'===n.type){const{sid:e,name:t,loc:i,method:o}=n;return{type:'factory',id:r,region:d,meta:n,sid:e,name:t,loc:i,method:o}}return{type:'region',id:r,region:d,meta:n}}Object.defineProperty(exports,'__esModule',{value:1});var effector=require('effector');const r=new Set;effector.setInspector(((e,n)=>{const{scope:i}=e,d=t(e);let o;r.forEach((r=>{r.scope!==i&&(r.scope||i)||(r.trace&&!o&&(o=(e=>{const n=[];let i=e.parent;for(;i;){const e=t(i);n.push({type:'update',value:i.value,stack:i.meta||{},meta:e.meta,id:e.id,sid:e.sid,name:e.name,kind:e.kind,loc:e.loc,derived:e.derived}),i=i.parent}return n})(e)),r.fn({type:n.fail?'error':'update',value:e.value,error:n.fail?n.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 d=new Set;effector.setGraphInspector(((e,t)=>{let r;r='region'===e?i(t):((e,t)=>{const r=n(e);return{type:'unit',region:i(t),meta:r.meta,id:r.id,sid:r.sid,name:r.name,kind:r.kind,loc:r.loc,derived:r.derived}})(e,t),r&&d.forEach((e=>{e.fn(r)}))})),exports.inspect=t=>(r.add(t),e((()=>{r.delete(t)}))),exports.inspectGraph=t=>(d.add(t),e((()=>{d.delete(t)})));
//# sourceMappingURL=inspect.js.map