@ogre-tools/injectable-extension-for-mobx
Version:
MobX support for Injectable in Ogre Tools
1 lines • 3.68 kB
JavaScript
(()=>{"use strict";var e={d:(t,n)=>{for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{computedInjectMany2InjectionToken:()=>a,computedInjectManyInjectionToken:()=>o,computedInjectManyWithMeta2InjectionToken:()=>r,computedInjectManyWithMetaInjectionToken:()=>c,computedInjectMaybe2InjectionToken:()=>h,computedInjectMaybeInjectionToken:()=>M,registerMobX:()=>O});const n=require("@ogre-tools/injectable"),i=require("mobx"),o=(0,n.getInjectionToken)({id:"computed-inject-many"}),c=(0,n.getInjectionToken)({id:"computed-inject-many-with-meta"}),a=(0,n.getInjectionToken2)({id:"computed-inject-many-2"}),r=(0,n.getInjectionToken2)({id:"computed-inject-many-with-meta-2"}),d=Symbol("isInternalOfComputedInjectMany"),j=(0,n.getInjectable)({id:"atoms-by-token-for-reactive-instances",instantiate:()=>new Map,[d]:!0}),s=e=>{const t=e.inject(j);return e=>{let n=e.injectionToken;for(;void 0!==n;){const e=t.get(n);void 0!==e&&e.reportChanged(),n=n.specificTokenOf}}},m=(0,n.getInjectable)({id:"invalidate-reactive-instances-on-register",instantiate:s,injectionToken:n.registrationCallbackToken,[d]:!0}),g=(0,n.getInjectable)({id:"invalidate-reactive-instances-on-deregister",instantiate:s,injectionToken:n.deregistrationCallbackToken,[d]:!0}),y=({id:e,methodInDiToInjectMany:t})=>(0,n.getInjectable)({id:e,instantiate:(e,{injectionToken:n,args:o})=>{const c=e.inject(j);let a=c.get(n);return void 0===a&&(a=(0,i.createAtom)(`reactivity-for-${n.id}`),c.set(n,a)),(0,i.computed)(()=>(a.reportObserved(),e[t](n,...o)))},lifecycle:n.lifecycleEnum.keyedSingleton({getInstanceKey:(e,{injectionToken:t,args:i})=>(0,n.getKeyedSingletonCompositeKey)(t,...i)})}),l=y({id:"reactive-instances",methodInDiToInjectMany:"injectMany"}),I=y({id:"reactive-instances-with-meta",methodInDiToInjectMany:"injectManyWithMeta"}),u=({id:e,reactiveInstances:t,injectionToken:i})=>(0,n.getInjectable)({id:e,instantiate:e=>(n,...i)=>e.inject(t,{injectionToken:n,args:i}),injectionToken:i}),k=u({id:"computed-inject-many",reactiveInstances:l,injectionToken:o}),p=u({id:"computed-inject-many-with-meta",reactiveInstances:I,injectionToken:c}),T=({id:e,reactiveInstances:t,injectionToken:i})=>(0,n.getInjectable2)({id:e,instantiate:e=>n=>(...i)=>e.inject(t)({injectionToken:n,args:i}).get(),injectionToken:i}),b=T({id:"computed-inject-many-2",reactiveInstances:l,injectionToken:a}),v=T({id:"computed-inject-many-with-meta-2",reactiveInstances:I,injectionToken:r}),M=(0,n.getInjectionToken)({id:"computed-inject-maybe"}),h=(0,n.getInjectionToken2)({id:"computed-inject-maybe-2"}),f=(0,n.getInjectable)({id:"computed-inject-maybe-internal",instantiate:(e,{token:t,args:n})=>{const o=e.inject(c)(t,...n);return(0,i.computed)(()=>{const e=o.get();if(e.length>1)throw new Error(`Tried to computedInjectMaybe "${t.id}", but more than one contribution was encountered: "${e.map(e=>e.meta.id).join('", "')}"`);return 0===e.length?void 0:e[0].instance})},lifecycle:n.lifecycleEnum.keyedSingleton({getInstanceKey:(e,{token:t,args:i})=>(0,n.getKeyedSingletonCompositeKey)(t,...i)})}),w=(0,n.getInjectable)({id:"computed-inject-maybe",instantiate:e=>(t,...n)=>e.inject(f,{token:t,args:n}),injectionToken:M}),S=(0,n.getInjectable2)({id:"computed-inject-maybe-2",instantiate:e=>t=>(...n)=>e.inject(f)({token:t,args:n}).get(),injectionToken:h}),O=e=>{e.hasRegistrations(j)||(0,i.runInAction)(()=>{e.register(j,l,I,k,p,b,v,w,S,f,m,g)})};module.exports=t})();