New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@ogre-tools/injectable

Package Overview
Dependencies
Maintainers
2
Versions
88
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ogre-tools/injectable - npm Package Compare versions

Comparing version 17.10.0 to 18.0.0

2

build/index.js

@@ -1,1 +0,1 @@

(()=>{"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,{createContainer:()=>B,createInjectionTargetDecorator:()=>D,createInstantiationTargetDecorator:()=>E,deregistrationCallbackToken:()=>j,getInjectable:()=>u,getInjectableBunch:()=>M,getInjectionToken:()=>s,injectionDecoratorToken:()=>p,instantiationDecoratorToken:()=>b,isInjectable:()=>k,isInjectableBunch:()=>m,isInjectionToken:()=>S,lifecycleEnum:()=>a,registrationCallbackToken:()=>l,toFlatInjectables:()=>w});const n=Symbol("non-stored-instance-key"),i=Symbol("stored-instance-key"),a={singleton:{id:"singleton",getInstanceKey:()=>i},keyedSingleton:({getInstanceKey:e})=>({id:"keyedSingleton",getInstanceKey:e}),transient:{id:"transient",getInstanceKey:()=>n}},c=e=>t=>!t.target||r(t.target)(e),r=e=>t=>t.id===e.id||t.injectionToken&&t.injectionToken.id===e.id,o=(...e)=>t=>{let n=t;return e.forEach((e=>{n=e(n)})),n},d="injection-token",s=({id:e,decorable:t=!0})=>({id:e,aliasType:d,decorable:t}),l=s({id:"registration-callback-token",decorable:!1}),j=s({id:"deregistration-callback-token",decorable:!1}),b=s({id:"instantiate-decorator-token",decorable:!1}),p=s({id:"injection-decorator-token",decorable:!1}),g=({di:e,injectable:t,instantiationParameter:i,context:a,instancesByInjectableMap:r,source:d,getNamespacedId:s})=>{const l=[...a,{injectable:t,instantiationParameter:i}],j=r.get(t.overriddenInjectable||t),p=(n,i)=>e.inject(n,i,l,t),g={inject:p,injectWithMeta:(n,i)=>e.injectWithMeta(n,i,l,t),injectMany:(n,i)=>e.injectMany(n,i,l,t),injectManyWithMeta:(n,i)=>e.injectManyWithMeta(n,i,l,t),injectFactory:e=>t=>p(e,t),context:l,register:(...n)=>{e.register({injectables:n,context:l,source:t})},deregister:(...n)=>{e.deregister({injectables:n,context:l,source:t})},get sourceNamespace(){return s(d).split(":").slice(0,-1).join(":")||void 0}},y=t.lifecycle.getInstanceKey(g,i),I=j.get(y);if(I)return I;const f=(({injectMany:e,injectable:t})=>{const n=c(t);return i=>(...a)=>{if(!1===t.decorable)return i(...a);const[{context:c}]=a,r=e(b,void 0,c,t).filter(n).map((e=>e.decorate));return o(...r)(i)(...a)}})({injectMany:e.injectMany,injectable:t})(t.instantiate)(g,...void 0===i?[]:[i]);return y!==n&&j.set(y,f),f},y=require("@ogre-tools/fp"),I=e=>{const t=n=>{const i=e.get(n);if(!i)return[];const a=i.reverse().find((e=>e.injectable.scope));return a?[...t(a.injectable),a]:[]};return e=>[...t(e).map((e=>e.injectable.id)),e.id].join(":")},f="injectable",u=({lifecycle:e=a.singleton,...t})=>({aliasType:f,lifecycle:e,...t}),h="injectable-bunch",M=e=>{const t=Object.entries(e).map((([e,t])=>[e,u(t)]));return Object.fromEntries([["aliasType",h],...t])},m=e=>e?.aliasType===h,w=e=>e.flatMap((e=>m(e)?Object.entries(e).filter((([e])=>"aliasType"!==e)).map((([,e])=>e)):[e])),T=({dependeesByDependencyMap:e,getNamespacedId:t})=>{const{getCycle:n,hasCycle:i}=(e=>{const t=(n,i,a=n,c=new Set)=>{if(a.cannotCauseCycles)return;if(c.has(n))return;c.add(n);const r=e.get(n);if(r){if(r.has(a))return!i||[a,...i];for(const e of r){const n=t(e,i?[e,...i]:void 0,a,c);if(n)return n}}};return{hasCycle:e=>t(e),getCycle:e=>t(e,[e])}})(e);return e=>{if(!i(e))return;const a=n(e);if(a)throw new Error(`Cycle of injectables encountered: "${a.map(t).join('" -> "')}"`)}},k=e=>e?.aliasType===f,v=require("lodash/fp"),S=e=>e?.aliasType===d,B=(e,{detectCycles:t=!0}={})=>{const n=new Set,i=new Map;let a=!1;const r=new Set,d=new Set,s=new Set,b=new Map,f=new Map,h=new Map,M=new Map,m=new Map,B=new Map,E=I(b),D=(({injectablesByInjectionToken:e,injectableSet:t})=>n=>k(n)?t.has(n)?[n]:[]:[...e.get(n)?.values()||[]])({injectablesByInjectionToken:h,injectableSet:n}),C={injectable:{id:e}},R=(({dependeesByDependencyMap:e,dependenciesByDependencyMap:t})=>({dependency:n,dependee:i})=>{e.has(n)||e.set(n,new Set),e.get(n).add(i),t.has(i)||t.set(i,new Set),t.get(i).add(n)})({dependeesByDependencyMap:m,dependenciesByDependencyMap:B}),x=(({containerRootContextItem:e,getRelatedInjectables:t,getInject:n,setDependee:i,getNamespacedId:a})=>({withMeta:c})=>(r,o,d=[e],s)=>{i({dependency:r,dependee:s});const l=n(),j=[...d,{injectable:r}],b=t(r).map((e=>{const t=l(e,o,j,r);if(!c)return t;const n=a(e);return(0,y.isPromise)(t)?t.then((e=>({instance:e,meta:{id:n}}))):{instance:t,meta:{id:n}}}));return b.find(y.isPromise)?Promise.all(b):b})({containerRootContextItem:C,getRelatedInjectables:D,getInject:()=>q,setDependee:R,getNamespacedId:E}),$=x({withMeta:!1}),N=x({withMeta:!0}),P=(({injectMany:e,checkForCycles:t,setDependee:n,dependenciesByDependencyMap:i})=>a=>(r,d,s,l)=>{if(i.get(r)?(n({dependency:r,dependee:l}),t(r)):n({dependency:r,dependee:l}),!1===r.decorable)return a(r,d,s,l);const j=[...s,{injectable:r}],b=c(r),g=e(p,void 0,j,l).filter(b).map((e=>e.decorate));return o(...g)(a)(r,d,s,l)})({injectMany:$,setDependee:R,checkForCycles:t?T({dependeesByDependencyMap:m,getNamespacedId:E}):v.noop,dependenciesByDependencyMap:B}),O=(e=>(t,n,i)=>{if(0===t.length){const t=[...i,{injectable:{id:n.id}}].map((({injectable:t})=>e(t))).join('" -> "');throw new Error(`Tried to inject non-registered injectable "${t}".`)}})(E),F=(({getSideEffectsArePrevented:e,getNamespacedId:t})=>(n,i)=>{if(e(n))throw new Error(`Tried to inject "${[...i,{injectable:n}].map((({injectable:e})=>t(e))).join('" -> "')}" when side-effects are prevented.`)})({getSideEffectsArePrevented:e=>a&&e.causesSideEffects&&!d.has(e),getNamespacedId:E}),W=(({getRelatedInjectables:e,alreadyInjected:t,overridingInjectables:n,instancesByInjectableMap:i,getDi:a,checkForNoMatches:c,checkForSideEffects:r,getNamespacedId:o})=>({withMeta:d})=>(s,l,j=[],b)=>{const p=a(),y=e(s);((e,t)=>{if(e.length>1)throw new Error(`Tried to inject single injectable for injection token "${t.id}" but found multiple injectables: "${e.map((e=>e.id)).join('", "')}"`)})(y,s),c(y,s,j);const I=e(s)[0];t.add(I);const f=n.get(I)||I;r(f,j);const u=g({di:p,injectable:f,instantiationParameter:l,context:j,instancesByInjectableMap:i,source:b,getNamespacedId:o});return d?{instance:u,meta:{id:o(f)}}:u})({getRelatedInjectables:D,alreadyInjected:r,overridingInjectables:i,instancesByInjectableMap:f,getDi:()=>ee,checkForNoMatches:O,checkForSideEffects:F,getNamespacedId:E}),A=W({withMeta:!1}),K=W({withMeta:!0}),q=P(A),_=P(K),z=P($),G=P(N),H=(({injectableSet:e,injectableIdSet:t,instancesByInjectableMap:n,namespacedIdByInjectableMap:i,injectablesByInjectionToken:a,injectableAndRegistrationContext:c})=>(r,o)=>{if(!r.id)throw new Error("Tried to register injectable without ID.");c.set(r,o);const d=I(c)(r);if(i.has(r))throw new Error(`Tried to register same injectable multiple times: "${r.id}"`);if(t.has(d))throw new Error(`Tried to register multiple injectables for ID "${d}"`);if(t.add(d),e.add(r),i.set(r,d),n.set(r,new Map),r.injectionToken){const e=r.injectionToken,t=a.get(e)||new Set;t.add(r),a.set(e,t)}})({injectableSet:n,namespacedIdByInjectableMap:M,instancesByInjectableMap:f,injectablesByInjectionToken:h,injectableIdSet:s,injectableAndRegistrationContext:b}),J=(({getRelatedInjectables:e,instancesByInjectableMap:t})=>n=>{const i=e(n)[0];t.get(i).clear()})({getRelatedInjectables:D,instancesByInjectableMap:f}),L=(({registerSingle:e})=>(t,n)=>{const i=u({id:`${t.id}-decorator-${Math.random()}`,injectionToken:p,decorable:!1,instantiate:()=>({decorate:n,target:t})});e(i,[])})({registerSingle:H}),Q=(({injectMany:e,injectableSet:t,injectableAndRegistrationContext:n,injectablesByInjectionToken:i,overridingInjectables:a,purgeInstances:c,injectableIdSet:r,namespacedIdByInjectableMap:o,getDi:d,dependenciesByDependencyMap:s,dependeesByDependencyMap:l})=>({injectables:b,context:p,source:g})=>{const y=e(j,void 0,p,g);b.forEach((e=>{y.forEach((t=>{t(e)}))}));const I=d(),f=(({injectableSet:e,injectableAndRegistrationContext:t,injectablesByInjectionToken:n,overridingInjectables:i,purgeInstances:a,injectableIdSet:c,namespacedIdByInjectableMap:r,di:o})=>d=>{if(!e.has(d))throw new Error(`Tried to deregister non-registered injectable "${d.id}".`);[...t.entries()].filter((([,e])=>e.find((e=>e.injectable===d)))).map((e=>e[0])).forEach((e=>{t.delete(e),o.deregister({injectables:[e]})})),a(d);const s=r.get(d);c.delete(s),e.delete(d),r.delete(d),d.injectionToken&&n.get(d.injectionToken).delete(d),i.delete(d)})({injectableSet:t,injectableAndRegistrationContext:n,injectablesByInjectionToken:i,overridingInjectables:a,purgeInstances:c,injectableIdSet:r,namespacedIdByInjectableMap:o,di:I});w(b).forEach((e=>{s.delete(e),l.delete(e),f(e)}))})({injectMany:$,injectableSet:n,injectableAndRegistrationContext:b,injectablesByInjectionToken:h,overridingInjectables:i,purgeInstances:J,injectableIdSet:s,namespacedIdByInjectableMap:M,getDi:()=>ee,dependenciesByDependencyMap:B,dependeesByDependencyMap:m}),U=(({registerSingle:e,injectMany:t})=>({injectables:n,context:i,source:a})=>{w(n).forEach((t=>{e(t,i)}));const c=t(l,void 0,i,a);n.forEach((e=>{c.forEach((t=>{t(e)}))}))})({registerSingle:H,injectMany:$}),V=(({getRelatedInjectables:e,alreadyInjected:t,overridingInjectables:n})=>(i,a)=>{const c=e(i);if(c.length>1)throw new Error(`Tried to override single implementation of injection token "${i.id}", but found multiple registered implementations: "${c.map((e=>e.id)).join('", "')}".`);if(0===c.length&&S(i))throw new Error(`Tried to early-override an injection token "${i.id}", but that is currently not supported.`);if(t.has(i))throw new Error(`Tried to override injectable "${i.id}", but it was already injected.`);const r=c[0]||i;n.set(r,{...r,overriddenInjectable:r,causesSideEffects:!1,instantiate:a})})({getRelatedInjectables:D,alreadyInjected:r,overridingInjectables:i}),X=(({getRelatedInjectables:e,earlyOverride:t})=>(n,i)=>{if(0===e(n).length){if("injection-token"===n.aliasType)throw new Error(`Tried to override single implementation of injection token "${n.id}", but found no registered implementations.`);throw new Error(`Tried to override "${n.id}" which is not registered.`)}t(n,i)})({getRelatedInjectables:D,earlyOverride:V}),Y=(({overridingInjectables:e,getRelatedInjectables:t})=>n=>{const[i]=t(n);if(!i)throw new Error(`Tried to unoverride "${n.id}", but it was not registered.`);if(!e.has(i))throw new Error(`Tried to unoverride "${n.id}", but it was not overridden.`);e.delete(i)})({overridingInjectables:i,getRelatedInjectables:D}),Z=(({decorate:e})=>(t,n)=>{e(t,(e=>(...t)=>n(e(...t))))})({decorate:L}),ee={inject:q,injectWithMeta:_,injectMany:z,injectManyWithMeta:G,injectFactory:e=>t=>te(e,t),register:U,deregister:Q,decorate:L,decorateFunction:Z,override:X,earlyOverride:V,unoverride:Y,reset:()=>{i.clear()},preventSideEffects:()=>{a=!0},permitSideEffects:e=>{D(e).forEach((e=>d.add(e)))},purge:J},te=(e,t,n)=>ee.inject(e,t,n?[C,n]:[C],C.injectable),ne=(e,t,n)=>[e,t,n?[C,n]:[C],C.injectable];return{...ee,inject:te,injectWithMeta:(e,t,n)=>ee.injectWithMeta(...ne(e,t,n)),injectMany:(e,t,n)=>ee.injectMany(...ne(e,t,n)),register:(...e)=>{ee.register({injectables:e,context:[C],source:C.injectable})},deregister:(...e)=>{ee.deregister({injectables:e,context:[C],source:C.injectable})},injectManyWithMeta:(e,t,n)=>ee.injectManyWithMeta(...ne(e,t,n)),getInstances:e=>D(e).flatMap((e=>[...f.get(e).values()]))}},E=e=>e,D=e=>e;module.exports=t})();
(()=>{"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,{createContainer:()=>D,createInjectionTargetDecorator:()=>x,createInstantiationTargetDecorator:()=>C,deregistrationCallbackToken:()=>j,getInjectable:()=>h,getInjectableBunch:()=>m,getInjectionToken:()=>s,getKeyedSingletonCompositeKey:()=>R,injectionDecoratorToken:()=>b,instantiationDecoratorToken:()=>p,isInjectable:()=>S,isInjectableBunch:()=>w,isInjectionToken:()=>E,lifecycleEnum:()=>a,registrationCallbackToken:()=>l,toFlatInjectables:()=>k});const n=Symbol("non-stored-instance-key"),i=Symbol("stored-instance-key"),a={singleton:{id:"singleton",getInstanceKey:(e,t)=>{if(t){const n=e.context.at(-1).injectable.id;throw new Error(`Tried to inject singleton "${n}", but illegally to singletons, an instantiationParameter was provided: "${t}".`)}return i}},keyedSingleton:({getInstanceKey:e})=>({id:"keyedSingleton",getInstanceKey:e}),transient:{id:"transient",getInstanceKey:()=>n}},c=e=>t=>!t.target||r(t.target)(e),r=e=>t=>t.id===e.id||t.injectionToken&&t.injectionToken.id===e.id,o=(...e)=>t=>{let n=t;return e.forEach((e=>{n=e(n)})),n},d="injection-token",s=({id:e,decorable:t=!0})=>({id:e,aliasType:d,decorable:t}),l=s({id:"registration-callback-token",decorable:!1}),j=s({id:"deregistration-callback-token",decorable:!1}),p=s({id:"instantiate-decorator-token",decorable:!1}),b=s({id:"injection-decorator-token",decorable:!1}),g=Symbol("composite-key"),y=({di:e,injectable:t,instantiationParameter:i,context:a,instancesByInjectableMap:r,source:d,getNamespacedId:s})=>{const l=[...a,{injectable:t,instantiationParameter:i}],j=r.get(t.overriddenInjectable||t),b=(n,i)=>e.inject(n,i,l,t),y={inject:b,injectWithMeta:(n,i)=>e.injectWithMeta(n,i,l,t),injectMany:(n,i)=>e.injectMany(n,i,l,t),injectManyWithMeta:(n,i)=>e.injectManyWithMeta(n,i,l,t),injectFactory:e=>t=>b(e,t),context:l,register:(...n)=>{e.register({injectables:n,context:l,source:t})},deregister:(...n)=>{e.deregister({injectables:n,context:l,source:t})},get sourceNamespace(){return s(d).split(":").slice(0,-1).join(":")||void 0}},I=t.lifecycle.getInstanceKey(y,i),f=(u=I)&&!0===u[g]?I.keys:[I];var u;const h=j.get(f);if(h)return h;const M=(({injectMany:e,injectable:t})=>{const n=c(t);return i=>(...a)=>{if(!1===t.decorable)return i(...a);const[{context:c}]=a,r=e(p,void 0,c,t).filter(n).map((e=>e.decorate));return o(...r)(i)(...a)}})({injectMany:e.injectMany,injectable:t})(t.instantiate)(y,...void 0===i?[]:[i]);return f[0]!==n&&j.set(f,M),M},I=require("@ogre-tools/fp"),f=e=>{const t=n=>{const i=e.get(n);if(!i)return[];const a=i.reverse().find((e=>e.injectable.scope));return a?[...t(a.injectable),a]:[]};return e=>[...t(e).map((e=>e.injectable.id)),e.id].join(":")},u="injectable",h=({lifecycle:e=a.singleton,...t})=>({aliasType:u,lifecycle:e,...t}),M="injectable-bunch",m=e=>{const t=Object.entries(e).map((([e,t])=>[e,h(t)]));return Object.fromEntries([["aliasType",M],...t])},w=e=>e?.aliasType===M,k=e=>e.flatMap((e=>w(e)?Object.entries(e).filter((([e])=>"aliasType"!==e)).map((([,e])=>e)):[e])),T=require("@ogre-tools/fp/src/deepMap/deepMap"),v=({dependeesByDependencyMap:e,getNamespacedId:t})=>{const{getCycle:n,hasCycle:i}=(e=>{const t=(n,i,a=n,c=new Set)=>{if(a.cannotCauseCycles)return;if(c.has(n))return;c.add(n);const r=e.get(n);if(r){if(r.has(a))return!i||[a,...i];for(const e of r){const n=t(e,i?[e,...i]:void 0,a,c);if(n)return n}}};return{hasCycle:e=>t(e),getCycle:e=>t(e,[e])}})(e);return e=>{if(!i(e))return;const a=n(e);if(a)throw new Error(`Cycle of injectables encountered: "${a.map(t).join('" -> "')}"`)}},S=e=>e?.aliasType===u,B=require("lodash/fp"),E=e=>e?.aliasType===d,D=(e,{detectCycles:t=!0}={})=>{const n=new Set,i=new Map;let a=!1;const r=new Set,d=new Set,s=new Set,p=new Map,g=new Map,u=new Map,M=new Map,m=new Map,w=new Map,D=f(p),C=(({injectablesByInjectionToken:e,injectableSet:t})=>n=>S(n)?t.has(n)?[n]:[]:[...e.get(n)?.values()||[]])({injectablesByInjectionToken:u,injectableSet:n}),x={injectable:{id:e}},R=(({dependeesByDependencyMap:e,dependenciesByDependencyMap:t})=>({dependency:n,dependee:i})=>{e.has(n)||e.set(n,new Set),e.get(n).add(i),t.has(i)||t.set(i,new Set),t.get(i).add(n)})({dependeesByDependencyMap:m,dependenciesByDependencyMap:w}),$=(({containerRootContextItem:e,getRelatedInjectables:t,getInject:n,setDependee:i,getNamespacedId:a})=>({withMeta:c})=>(r,o,d=[e],s)=>{i({dependency:r,dependee:s});const l=n(),j=[...d,{injectable:r}],p=t(r).map((e=>{const t=l(e,o,j,r);if(!c)return t;const n=a(e);return(0,I.isPromise)(t)?t.then((e=>({instance:e,meta:{id:n}}))):{instance:t,meta:{id:n}}}));return p.find(I.isPromise)?Promise.all(p):p})({containerRootContextItem:x,getRelatedInjectables:C,getInject:()=>_,setDependee:R,getNamespacedId:D}),N=$({withMeta:!1}),P=$({withMeta:!0}),O=(({injectMany:e,checkForCycles:t,setDependee:n,dependenciesByDependencyMap:i})=>a=>(r,d,s,l)=>{if(i.get(r)?(n({dependency:r,dependee:l}),t(r)):n({dependency:r,dependee:l}),!1===r.decorable)return a(r,d,s,l);const j=[...s,{injectable:r}],p=c(r),g=e(b,void 0,j,l).filter(p).map((e=>e.decorate));return o(...g)(a)(r,d,s,l)})({injectMany:N,setDependee:R,checkForCycles:t?v({dependeesByDependencyMap:m,getNamespacedId:D}):B.noop,dependenciesByDependencyMap:w}),F=(e=>(t,n,i)=>{if(0===t.length){const t=[...i,{injectable:{id:n.id}}].map((({injectable:t})=>e(t))).join('" -> "');throw new Error(`Tried to inject non-registered injectable "${t}".`)}})(D),W=(({getSideEffectsArePrevented:e,getNamespacedId:t})=>(n,i)=>{if(e(n))throw new Error(`Tried to inject "${[...i,{injectable:n}].map((({injectable:e})=>t(e))).join('" -> "')}" when side-effects are prevented.`)})({getSideEffectsArePrevented:e=>a&&e.causesSideEffects&&!d.has(e),getNamespacedId:D}),A=(({getRelatedInjectables:e,alreadyInjected:t,overridingInjectables:n,instancesByInjectableMap:i,getDi:a,checkForNoMatches:c,checkForSideEffects:r,getNamespacedId:o})=>({withMeta:d})=>(s,l,j=[],p)=>{const b=a(),g=e(s);((e,t)=>{if(e.length>1)throw new Error(`Tried to inject single injectable for injection token "${t.id}" but found multiple injectables: "${e.map((e=>e.id)).join('", "')}"`)})(g,s),c(g,s,j);const I=e(s)[0];t.add(I);const f=n.get(I)||I;r(f,j);const u=y({di:b,injectable:f,instantiationParameter:l,context:j,instancesByInjectableMap:i,source:p,getNamespacedId:o});return d?{instance:u,meta:{id:o(f)}}:u})({getRelatedInjectables:C,alreadyInjected:r,overridingInjectables:i,instancesByInjectableMap:g,getDi:()=>te,checkForNoMatches:F,checkForSideEffects:W,getNamespacedId:D}),K=A({withMeta:!1}),q=A({withMeta:!0}),_=O(K),z=O(q),G=O(N),H=O(P),J=(({injectableSet:e,injectableIdSet:t,instancesByInjectableMap:n,namespacedIdByInjectableMap:i,injectablesByInjectionToken:a,injectableAndRegistrationContext:c})=>(r,o)=>{if(!r.id)throw new Error("Tried to register injectable without ID.");c.set(r,o);const d=f(c)(r);if(i.has(r))throw new Error(`Tried to register same injectable multiple times: "${r.id}"`);if(t.has(d))throw new Error(`Tried to register multiple injectables for ID "${d}"`);if(t.add(d),e.add(r),i.set(r,d),n.set(r,new T.DeepMap),r.injectionToken){const e=r.injectionToken,t=a.get(e)||new Set;t.add(r),a.set(e,t)}})({injectableSet:n,namespacedIdByInjectableMap:M,instancesByInjectableMap:g,injectablesByInjectionToken:u,injectableIdSet:s,injectableAndRegistrationContext:p}),L=(({getRelatedInjectables:e,instancesByInjectableMap:t})=>n=>{const i=e(n)[0];t.get(i).clear()})({getRelatedInjectables:C,instancesByInjectableMap:g}),Q=(({registerSingle:e})=>(t,n)=>{const i=h({id:`${t.id}-decorator-${Math.random()}`,injectionToken:b,decorable:!1,instantiate:()=>({decorate:n,target:t})});e(i,[])})({registerSingle:J}),U=(({injectMany:e,injectableSet:t,injectableAndRegistrationContext:n,injectablesByInjectionToken:i,overridingInjectables:a,purgeInstances:c,injectableIdSet:r,namespacedIdByInjectableMap:o,getDi:d,dependenciesByDependencyMap:s,dependeesByDependencyMap:l})=>({injectables:p,context:b,source:g})=>{const y=e(j,void 0,b,g);p.forEach((e=>{y.forEach((t=>{t(e)}))}));const I=d(),f=(({injectableSet:e,injectableAndRegistrationContext:t,injectablesByInjectionToken:n,overridingInjectables:i,purgeInstances:a,injectableIdSet:c,namespacedIdByInjectableMap:r,di:o})=>d=>{if(!e.has(d))throw new Error(`Tried to deregister non-registered injectable "${d.id}".`);[...t.entries()].filter((([,e])=>e.find((e=>e.injectable===d)))).map((e=>e[0])).forEach((e=>{t.delete(e),o.deregister({injectables:[e]})})),a(d);const s=r.get(d);c.delete(s),e.delete(d),r.delete(d),d.injectionToken&&n.get(d.injectionToken).delete(d),i.delete(d)})({injectableSet:t,injectableAndRegistrationContext:n,injectablesByInjectionToken:i,overridingInjectables:a,purgeInstances:c,injectableIdSet:r,namespacedIdByInjectableMap:o,di:I});k(p).forEach((e=>{s.delete(e),l.delete(e),f(e)}))})({injectMany:N,injectableSet:n,injectableAndRegistrationContext:p,injectablesByInjectionToken:u,overridingInjectables:i,purgeInstances:L,injectableIdSet:s,namespacedIdByInjectableMap:M,getDi:()=>te,dependenciesByDependencyMap:w,dependeesByDependencyMap:m}),V=(({registerSingle:e,injectMany:t})=>({injectables:n,context:i,source:a})=>{k(n).forEach((t=>{e(t,i)}));const c=t(l,void 0,i,a);n.forEach((e=>{c.forEach((t=>{t(e)}))}))})({registerSingle:J,injectMany:N}),X=(({getRelatedInjectables:e,alreadyInjected:t,overridingInjectables:n})=>(i,a)=>{const c=e(i);if(c.length>1)throw new Error(`Tried to override single implementation of injection token "${i.id}", but found multiple registered implementations: "${c.map((e=>e.id)).join('", "')}".`);if(0===c.length&&E(i))throw new Error(`Tried to early-override an injection token "${i.id}", but that is currently not supported.`);if(t.has(i))throw new Error(`Tried to override injectable "${i.id}", but it was already injected.`);const r=c[0]||i;n.set(r,{...r,overriddenInjectable:r,causesSideEffects:!1,instantiate:a})})({getRelatedInjectables:C,alreadyInjected:r,overridingInjectables:i}),Y=(({getRelatedInjectables:e,earlyOverride:t})=>(n,i)=>{if(0===e(n).length){if("injection-token"===n.aliasType)throw new Error(`Tried to override single implementation of injection token "${n.id}", but found no registered implementations.`);throw new Error(`Tried to override "${n.id}" which is not registered.`)}t(n,i)})({getRelatedInjectables:C,earlyOverride:X}),Z=(({overridingInjectables:e,getRelatedInjectables:t})=>n=>{const[i]=t(n);if(!i)throw new Error(`Tried to unoverride "${n.id}", but it was not registered.`);if(!e.has(i))throw new Error(`Tried to unoverride "${n.id}", but it was not overridden.`);e.delete(i)})({overridingInjectables:i,getRelatedInjectables:C}),ee=(({decorate:e})=>(t,n)=>{e(t,(e=>(...t)=>n(e(...t))))})({decorate:Q}),te={inject:_,injectWithMeta:z,injectMany:G,injectManyWithMeta:H,injectFactory:e=>t=>ne(e,t),register:V,deregister:U,decorate:Q,decorateFunction:ee,override:Y,earlyOverride:X,unoverride:Z,reset:()=>{i.clear()},preventSideEffects:()=>{a=!0},permitSideEffects:e=>{C(e).forEach((e=>d.add(e)))},purge:L},ne=(e,t,n)=>te.inject(e,t,n?[x,n]:[x],x.injectable),ie=(e,t,n)=>[e,t,n?[x,n]:[x],x.injectable];return{...te,inject:ne,injectWithMeta:(e,t,n)=>te.injectWithMeta(...ie(e,t,n)),injectMany:(e,t,n)=>te.injectMany(...ie(e,t,n)),register:(...e)=>{te.register({injectables:e,context:[x],source:x.injectable})},deregister:(...e)=>{te.deregister({injectables:e,context:[x],source:x.injectable})},injectManyWithMeta:(e,t,n)=>te.injectManyWithMeta(...ie(e,t,n)),getInstances:e=>C(e).flatMap((e=>[...g.get(e).values()]))}},C=e=>e,x=e=>e,R=(...e)=>({[g]:!0,keys:e});module.exports=t})();

@@ -394,1 +394,5 @@ /// <reference types="jest" />

): DiContainer;
export function getKeyedSingletonCompositeKey<T extends [...unknown[]]>(
...keys: T
): { keys: T };
{
"name": "@ogre-tools/injectable",
"private": false,
"version": "17.10.0",
"version": "18.0.0",
"description": "A brutal dependency injection container",

@@ -23,6 +23,6 @@ "files": [

"peerDependencies": {
"@ogre-tools/fp": "^16 || ^17",
"@ogre-tools/fp": "^18",
"lodash": "^4.17.21"
},
"gitHead": "b55ba2c504bff52d2e18d2934946af8e8502baa7",
"gitHead": "208a50baca375b704be6aaaa6d44623a9e340cec",
"bugs": {

@@ -43,6 +43,6 @@ "url": "https://github.com/ogre-works/ogre-tools/issues"

"devDependencies": {
"@ogre-tools/infrastructure-babel-for-js": "^17.10.0",
"@ogre-tools/infrastructure-jest": "^17.10.0",
"@ogre-tools/infrastructure-prettier": "^17.10.0",
"@ogre-tools/infrastructure-webpack-for-js": "^17.10.0",
"@ogre-tools/infrastructure-babel-for-js": "^18.0.0",
"@ogre-tools/infrastructure-jest": "^18.0.0",
"@ogre-tools/infrastructure-prettier": "^18.0.0",
"@ogre-tools/infrastructure-webpack-for-js": "^18.0.0",
"tsd": "^0.29.0"

@@ -49,0 +49,0 @@ },

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc