UNPKG

giver

Version:

Dependency injection with modern ECMAScript decorators

2 lines (1 loc) 645 B
var s=r=>typeof r=="object"&&"class"in r,i=r=>typeof r=="object"&&"factory"in r,a=r=>typeof r=="object"&&"value"in r;var n=class{providerRegistry=new Map;registerTokenForClass=(o,e)=>{this.providerRegistry.set(o,{class:e})};instanceOf=o=>{let e=this.providerRegistry.get(o);if(!e)throw new Error(`No provider registered for token: ${String(o)}`);if(s(e))return new e.class;if(i(e))return e.factory();if(a(e))return e.value;throw new Error(`No provider registered for token: ${String(o)}`)}};var t=new n;var c=r=>(o,e)=>()=>t.instanceOf(r);var p=r=>(o,e)=>{t.registerTokenForClass(r??o,o)};export{t as giverInstance,c as inject,p as injectable};