@spinajs/di 2.0.12 → 2.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -118,7 +118,7 @@ export declare class Container extends EventEmitter implements IContainer {
118
118
  }> | {
119
119
  autoinject: boolean;
120
120
  autoinjectKey: string;
121
- instance: unknown;
121
+ instance: any;
122
122
  })[] | Promise<({
123
123
  autoinject: boolean;
124
124
  autoinjectKey: string;
@@ -126,7 +126,7 @@ export declare class Container extends EventEmitter implements IContainer {
126
126
  } | {
127
127
  autoinject: boolean;
128
128
  autoinjectKey: string;
129
- instance: unknown;
129
+ instance: any;
130
130
  })[]>;
131
131
  protected extractDescriptor(type: Class<unknown>): IInjectDescriptor<unknown>;
132
132
  }
package/lib/container.js CHANGED
@@ -294,7 +294,6 @@ class Container extends events_1.EventEmitter {
294
294
  return new Promise((res, rej) => {
295
295
  newInstance
296
296
  .resolveAsync()
297
- .then(() => { })
298
297
  .then(() => {
299
298
  res(newInstance);
300
299
  })
@@ -316,26 +315,34 @@ class Container extends events_1.EventEmitter {
316
315
  const dependencies = toInject.map((t) => {
317
316
  const promiseOrVal = this.resolve(t.inject);
318
317
  if (promiseOrVal instanceof Promise) {
319
- return new Promise((res, _) => {
320
- res(promiseOrVal);
321
- }).then((val) => {
318
+ return promiseOrVal.then((val) => {
322
319
  return {
323
320
  autoinject: t.autoinject,
324
321
  autoinjectKey: t.autoinjectKey,
325
- instance: val,
322
+ instance: valOrMap(val, t),
326
323
  };
327
324
  });
328
325
  }
329
326
  return {
330
327
  autoinject: t.autoinject,
331
328
  autoinjectKey: t.autoinjectKey,
332
- instance: promiseOrVal,
329
+ instance: valOrMap(promiseOrVal, t),
333
330
  };
334
331
  });
335
332
  if (dependencies.some((p) => p instanceof Promise)) {
336
333
  return Promise.all(dependencies);
337
334
  }
338
335
  return dependencies;
336
+ function valOrMap(val, t) {
337
+ let instance = val;
338
+ if ((0, lodash_1.isArray)(val) && t.mapFunc) {
339
+ instance = new Map();
340
+ for (const i of val) {
341
+ instance.set(t.mapFunc(i), i);
342
+ }
343
+ }
344
+ return instance;
345
+ }
339
346
  }
340
347
  extractDescriptor(type) {
341
348
  const descriptor = {
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":";;;AAAA,oDAAsD;AACtD,4BAA0B;AAC1B,mCAAqC;AACrC,6CAAqD;AACrD,mCAAsC;AACtC,uCAAmG;AACnG,6CAA8I;AAE9I,mCAAsC;AACtC,qCAAkC;AAClC,yCAAsC;AACtC,uDAAmD;AACnD,mCAAiC;AAEjC;;GAEG;AACH,MAAa,SAAU,SAAQ,qBAAY;IAgCzC,YAAY,MAAmB;QAC7B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,gCAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC;IACpC,CAAC;IArBD;;OAEG;IACH,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAUD;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,UAAU;QACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAI,cAAwD;QACzE,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,IAAI,4BAAe,CAAC,6CAA6C,CAAC,CAAC;SAC1E;QAED,OAAO,IAAI,eAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEM,UAAU,CAAI,cAAwD;QAC3E,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,IAAI,4BAAe,CAAC,6CAA6C,CAAC,CAAC;SAC1E;QAED,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO,CAAI,cAAiD,EAAE,MAAgB;QACnF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAeM,GAAG,CAAI,OAA0C,EAAE,MAAM,GAAG,IAAI;QACrE,8EAA8E;QAC9E,IAAI,OAAO,YAAY,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE;YACzE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,qBAAW,EAAC,OAAO,CAAC,IAAI,CAAC,CAAQ,CAAC;SACzD;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAM,CAAC;IAC9B,CAAC;IAEM,aAAa,CAAI,OAA0B,EAAE,MAAM,GAAG,IAAI;QAC/D,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;OAOG;IACI,UAAU,CAAI,OAA0C,EAAE,MAAM,GAAG,IAAI;QAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAkCD;;;;;OAKG;IACI,OAAO,CAAI,IAAuC,EAAE,OAA6B,EAAE,KAAe;QACvG,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,4BAAe,CAAC,6CAA6C,CAAC,CAAC;SAC1E;QAED,cAAc;QACd,kDAAkD;QAClD,MAAM,UAAU,GAAG,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACtG,MAAM,UAAU,GAAG,IAAA,qBAAW,EAAC,IAAI,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QAE1D,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAiB,CAAC,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,QAAQ,UAAU,iCAAiC,CAAC,CAAC;aACtE;SACF;QAED,IAAI,IAAA,sBAAY,EAAC,IAAI,CAAC,EAAE;YACtB,0BAA0B;YAC1B,yCAAyC;YACzC,uDAAuD;YACvD,qBAAqB;YACrB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC7B;YAED,qEAAqE;YACrE,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEjD,IAAI,CAAC,UAAU,EAAE;gBACf,OAAO,EAAE,CAAC;aACX;YAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACvE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,OAAO,CAAC,EAAE;gBAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAQ,CAAC;aACrC;YACD,OAAO,QAAe,CAAC;SACxB;aAAM;YACL,8BAA8B;YAC9B,6BAA6B;YAC7B,wCAAwC;YACxC,IAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAE/C,IAAI,CAAC,UAAU,EAAE;gBACf,mEAAmE;gBACnE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBAC5B,OAAO,IAAI,CAAC;iBACb;qBAAM;oBACL,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC;iBACrB;aACF;YAED,0CAA0C;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACpF,OAAO,MAAa,CAAC;SACtB;IACH,CAAC;IAEM,kBAAkB,CAAI,OAA0C,EAAE,MAAgB;QACvF,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAEO,WAAW,CAAI,UAA6C,EAAE,UAAiC,EAAE,OAAmB;QAC1H;;WAEG;QACH,IAAI,IAAA,mBAAS,EAAC,UAAU,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAM,CAAC;SAC5D;QAED,mCAAmC;QACnC,sCAAsC;QACtC,yCAAyC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC;QACzB,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,UAAU,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEjD,yBAAyB;QACzB,4DAA4D;QAC5D,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,UAAU,CAAC,QAAQ,KAAK,mBAAW,CAAC,iBAAiB,CAAC;QACjF,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,KAAK,mBAAW,CAAC,SAAS,CAAC;QAElE,MAAM,QAAQ,GAAG,CAAC,MAAS,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,MAAW,EAAE,EAAE;YAC3B,sDAAsD;YACtD,mDAAmD;YACnD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAC,EAAE;gBACxC,uDAAuD;gBACvD,IAAI,CAAC,IAAI,CAAC,eAAe,IAAA,qBAAW,EAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBAE9D,qCAAqC;gBACrC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAA,qBAAW,EAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;aACnE;QACH,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,CAAC,CAAwC,EAAE,MAAe,EAAE,EAAE;YACtF,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;gBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAQ,EAAE,MAAM,CAAC,CAAC;gBAC1C,OAAO,IAAA,gBAAO,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAW,EAAC,CAAC,CAAC,KAAK,IAAA,qBAAW,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aAClG;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,CAA6B,EAAE,CAAW,EAAE,CAAuB,EAAE,EAAE;YACtF,IAAI,CAAC,CAAC,QAAQ,KAAK,mBAAW,CAAC,WAAW,EAAE;gBAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;gBAEpD,IAAI,IAAA,mBAAS,EAAC,QAAQ,CAAC,EAAE;oBACvB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBACzB,IAAI,CAAC,CAAC,CAAC,CAAC;wBACR,OAAO,CAAC,CAAC;oBACX,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACf,OAAO,QAAQ,CAAC;iBACjB;aACF;YAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAEjC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,KAAK,mBAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7F,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;gBACpD,IAAI,IAAA,mBAAS,EAAC,QAAQ,CAAC,EAAE;oBACvB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBACzB,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACZ,IAAI,CAAC,CAAC,CAAC,CAAC;wBACR,OAAO,CAAC,CAAC;oBACX,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,QAAQ,CAAC,QAAa,CAAC,CAAC;oBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACf,OAAO,QAAQ,CAAC;iBACjB;aACF;iBAAM;gBACL,OAAO,MAAM,CAAC;aACf;QACH,CAAC,CAAC;QAEF,wBAAwB;QACxB,IAAI,kBAAkB,IAAI,WAAW,EAAE;YACrC,+CAA+C;YAC/C,kCAAkC;YAElC,iCAAiC;YACjC,sEAAsE;YACtE,qDAAqD;YACrD,wEAAwE;YACxE,4DAA4D;YAC5D,0EAA0E;YAC1E,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC1D,IAAI,MAAM,EAAE;gBACV,OAAO,MAAM,CAAC;aACf;SACF;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEzD,IAAI,IAAI,YAAY,OAAO,EAAE;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,EAAE;gBACxC,OAAO,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,oBAAoB,CAAM,CAAC;YAC/D,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,IAA4B,CAAC,CAAC;YAE7E,IAAI,WAAW,YAAY,OAAO,EAAE;gBAClC,OAAO,WAAW,CAAC;aACpB;YACD,OAAO,WAAgB,CAAC;SACzB;IACH,CAAC;IAES,cAAc,CAAC,YAA+C,EAAE,CAAwB,EAAE,OAAmB;QACrH,IAAI,IAAI,GAAc,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,WAAW,GAAY,IAAI,CAAC;QAEhC;;;WAGG;QACH,IAAI,IAAA,mBAAS,EAAC,YAAY,CAAC,EAAE;YAC3B,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,CAAC,CAAC;SACtD;aAAM;YACL,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;gBAClC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC3E;YAED,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aAC7B;YAED,oBAAoB;YACpB,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAExE,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;gBAC9C,iDAAiD;gBACjD,oBAAoB;gBACnB,WAAmB,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;aAC3D;YAED,IAAI,IAAA,uBAAa,EAAC,WAAW,CAAC,EAAE;gBAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBAC7B,WAA2B;yBACzB,YAAY,EAAE;yBACd,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;yBACd,IAAI,CAAC,GAAG,EAAE;wBACT,GAAG,CAAC,WAAW,CAAC,CAAC;oBACnB,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,WAAW,YAAY,uBAAU,EAAE;oBACrC,WAAW,CAAC,OAAO,EAAE,CAAC;iBACvB;aACF;SACF;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,iBAAiB,CAAI,MAAyB,EAAE,IAAuC,EAAE,MAAgB;QAC9G,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAES,mBAAmB,CAAC,QAA8B;QAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACtC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAa,CAAC,CAAC;YACnD,IAAI,YAAY,YAAY,OAAO,EAAE;gBACnC,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBAC5B,GAAG,CAAC,YAAY,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE;oBACnB,OAAO;wBACL,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,aAAa,EAAE,CAAC,CAAC,aAAa;wBAC9B,QAAQ,EAAE,GAAG;qBACd,CAAC;gBACJ,CAAC,CAAC,CAAC;aACJ;YACD,OAAO;gBACL,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,QAAQ,EAAE,YAAY;aACvB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,OAAO,CAAC,EAAE;YAClD,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAClC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,iBAAiB,CAAC,IAAoB;QAC9C,MAAM,UAAU,GAA+B;YAC7C,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,mBAAW,CAAC,SAAS;SAChC,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,CAAC;QAEb,UAAU,CAAC,MAAM,GAAG,IAAA,gBAAM,EAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrD,IAAI,CAAC,CAAC,MAAM,YAAY,kBAAU,IAAI,CAAC,CAAC,MAAM,YAAY,kBAAU,EAAE;gBACpE,OAAO,IAAA,qBAAW,EAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAA,qBAAW,EAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAClE;iBAAM;gBACL,OAAQ,CAAC,CAAC,MAAyB,CAAC,IAAI,KAAM,CAAC,CAAC,MAAyB,CAAC,IAAI,CAAC;aAChF;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;QAElB,SAAS,MAAM,CAAC,CAAiB;YAC/B,IAAI,CAAC,EAAE;gBACL,gDAAgD;gBAChD,MAAM,CAAE,CAAc,CAAC,SAAS,CAAC,CAAC;gBAElC,gEAAgE;gBAChE,MAAM,CAAE,CAAS,CAAC,SAAS,CAAC,CAAC;gBAE7B,IAAK,CAAS,CAAC,GAAG,kCAAqB,EAAE,CAAC,EAAE;oBAC1C,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAE,CAAS,CAAC,GAAG,kCAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;oBAC5F,UAAU,CAAC,QAAQ,GAAI,CAAS,CAAC,GAAG,kCAAqB,EAAE,CAAC,CAAC,QAAQ,CAAC;iBACvE;aACF;QACH,CAAC;IACH,CAAC;CACF;AA9cD,8BA8cC"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,7 @@ export declare function Inject(...args: (Class<any> | TypedArray<any>)[]): any;
60
60
  * If decorator is applied to array property all registered type instances are injected, otherwise only first / only that exists
61
61
  *
62
62
  * @param injectType - when injecting array of some type, type must be explicitly provided. Typescript reflection cant reflect declared array types
63
+ * @param mapFunc - when injecting array we sometimes need services mapped by some kind of key, so later we dont need to search o(n) elements for specific service, but reference by key/name
63
64
  * @example
64
65
  * ```javascript
65
66
  * class Foo{
@@ -80,7 +81,7 @@ export declare function Inject(...args: (Class<any> | TypedArray<any>)[]): any;
80
81
  *
81
82
  * ```
82
83
  */
83
- export declare function Autoinject(injectType?: Class<unknown>): any;
84
+ export declare function Autoinject<T>(injectType?: Class<T>, mapFunc?: (x: T) => string): any;
84
85
  /**
85
86
  * Lazy injects service to object. Use only with class properties
86
87
  *
package/lib/decorators.js CHANGED
@@ -127,6 +127,7 @@ function Inject(...args) {
127
127
  autoinject: false,
128
128
  autoinjectKey: '',
129
129
  inject: a,
130
+ mapFunc: null,
130
131
  });
131
132
  }
132
133
  }
@@ -138,6 +139,7 @@ exports.Inject = Inject;
138
139
  * If decorator is applied to array property all registered type instances are injected, otherwise only first / only that exists
139
140
  *
140
141
  * @param injectType - when injecting array of some type, type must be explicitly provided. Typescript reflection cant reflect declared array types
142
+ * @param mapFunc - when injecting array we sometimes need services mapped by some kind of key, so later we dont need to search o(n) elements for specific service, but reference by key/name
141
143
  * @example
142
144
  * ```javascript
143
145
  * class Foo{
@@ -158,17 +160,18 @@ exports.Inject = Inject;
158
160
  *
159
161
  * ```
160
162
  */
161
- function Autoinject(injectType) {
163
+ function Autoinject(injectType, mapFunc) {
162
164
  return AddDependency((descriptor, target, propertyKey) => {
163
165
  const type = Reflect.getMetadata('design:type', target, propertyKey);
164
- const isArray = type.name === 'Array';
165
- if (type.name === 'Array' && !injectType) {
166
+ const isArray = type.name === 'Array' || type.name === 'Map';
167
+ if (isArray && !injectType) {
166
168
  throw new Error('you must provide inject type when injecting array');
167
169
  }
168
170
  descriptor.inject.push({
169
171
  autoinject: true,
170
172
  autoinjectKey: propertyKey,
171
173
  inject: isArray ? Array.ofType(injectType) : injectType !== null && injectType !== void 0 ? injectType : type,
174
+ mapFunc,
172
175
  });
173
176
  });
174
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
@@ -10,3 +10,8 @@ export declare class ResolveException extends Error {
10
10
  }
11
11
  export declare class BindException extends Error {
12
12
  }
13
+ /**
14
+ * Service is not registered in DI container
15
+ */
16
+ export declare class ServiceNotFound extends Error {
17
+ }
package/lib/exceptions.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BindException = exports.ResolveException = void 0;
3
+ exports.ServiceNotFound = exports.BindException = exports.ResolveException = void 0;
4
4
  /**
5
5
  * Exception thrown when cannot resolve type
6
6
  */
@@ -17,4 +17,10 @@ exports.ResolveException = ResolveException;
17
17
  class BindException extends Error {
18
18
  }
19
19
  exports.BindException = BindException;
20
+ /**
21
+ * Service is not registered in DI container
22
+ */
23
+ class ServiceNotFound extends Error {
24
+ }
25
+ exports.ServiceNotFound = ServiceNotFound;
20
26
  //# sourceMappingURL=exceptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IACzC;;;OAGG;IACH,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AARD,4CAQC;AAED,MAAa,aAAc,SAAQ,KAAK;CAAG;AAA3C,sCAA2C"}
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IACzC;;;OAGG;IACH,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AARD,4CAQC;AAED,MAAa,aAAc,SAAQ,KAAK;CAAG;AAA3C,sCAA2C;AAE3C;;GAEG;AACH,MAAa,eAAgB,SAAQ,KAAK;CAAG;AAA7C,0CAA6C"}
package/lib/helpers.d.ts CHANGED
@@ -13,6 +13,13 @@ export declare function isObject(value: any): value is object;
13
13
  export declare function isAsyncModule(value: any): value is AsyncModule;
14
14
  export declare function isPromise(value: any): value is Promise<any>;
15
15
  export declare function isSyncModule(value: any): value is SyncModule;
16
+ /**
17
+ * For DI purpose we treat Map as array to inject. Difference is, that we fill map by some key
18
+ * provided by mapFunc in \@Autoinject
19
+ * @param value - value to check type
20
+ * @returns
21
+ */
16
22
  export declare function isTypedArray(value: any): value is TypedArray<any>;
23
+ export declare function isMap(value: any): value is Map<string, any>;
17
24
  export declare function uniqBy<T>(arr: T[], comparator: (a: T, b: T) => boolean): T[];
18
25
  export declare function getTypeName(type: TypedArray<any> | Class<any> | string | object): string;
package/lib/helpers.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTypeName = exports.uniqBy = exports.isTypedArray = exports.isSyncModule = exports.isPromise = exports.isAsyncModule = exports.isObject = exports.isFactory = exports.isConstructor = void 0;
3
+ exports.getTypeName = exports.uniqBy = exports.isMap = exports.isTypedArray = exports.isSyncModule = exports.isPromise = exports.isAsyncModule = exports.isObject = exports.isFactory = exports.isConstructor = void 0;
4
4
  const interfaces_1 = require("./interfaces");
5
5
  /**
6
6
  * Checks if value is constructable type.
@@ -38,10 +38,20 @@ function isSyncModule(value) {
38
38
  return value instanceof interfaces_1.SyncModule;
39
39
  }
40
40
  exports.isSyncModule = isSyncModule;
41
+ /**
42
+ * For DI purpose we treat Map as array to inject. Difference is, that we fill map by some key
43
+ * provided by mapFunc in \@Autoinject
44
+ * @param value - value to check type
45
+ * @returns
46
+ */
41
47
  function isTypedArray(value) {
42
- return value instanceof Array && value.constructor.name === 'TypedArray';
48
+ return (value instanceof Array && value.constructor.name === 'TypedArray') || isMap(value);
43
49
  }
44
50
  exports.isTypedArray = isTypedArray;
51
+ function isMap(value) {
52
+ return value instanceof Map && value.constructor.name === 'Map';
53
+ }
54
+ exports.isMap = isMap;
45
55
  function uniqBy(arr, comparator) {
46
56
  const uniques = [];
47
57
  for (const a of arr) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AACA,6CAAuD;AAGvD;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,KAAU;IACtC,IAAI;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;KACtC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AARD,sCAQC;AAED,SAAgB,SAAS,CAAC,KAAU;IAClC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;AAC9D,CAAC;AAFD,8BAEC;AAED,SAAgB,QAAQ,CAAC,KAAU;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAFD,4BAEC;AAED,SAAgB,aAAa,CAAC,KAAU;IACtC,OAAO,KAAK,YAAY,wBAAW,CAAC;AACtC,CAAC;AAFD,sCAEC;AAED,SAAgB,SAAS,CAAC,KAAU;IAClC,OAAO,KAAK,YAAY,OAAO,CAAC;AAClC,CAAC;AAFD,8BAEC;AAED,SAAgB,YAAY,CAAC,KAAU;IACrC,OAAO,KAAK,YAAY,uBAAU,CAAC;AACrC,CAAC;AAFD,oCAEC;AAED,SAAgB,YAAY,CAAC,KAAU;IACrC,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,CAAC;AAC3E,CAAC;AAFD,oCAEC;AAED,SAAgB,MAAM,CAAI,GAAQ,EAAE,UAAmC;IACrE,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;QACnB,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AARD,wBAQC;AAED,SAAgB,WAAW,CAAC,IAAoD;IAC9E,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACjJ,CAAC;AAFD,kCAEC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AACA,6CAAuD;AAGvD;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,KAAU;IACtC,IAAI;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;KACtC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AARD,sCAQC;AAED,SAAgB,SAAS,CAAC,KAAU;IAClC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;AAC9D,CAAC;AAFD,8BAEC;AAED,SAAgB,QAAQ,CAAC,KAAU;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAFD,4BAEC;AAED,SAAgB,aAAa,CAAC,KAAU;IACtC,OAAO,KAAK,YAAY,wBAAW,CAAC;AACtC,CAAC;AAFD,sCAEC;AAED,SAAgB,SAAS,CAAC,KAAU;IAClC,OAAO,KAAK,YAAY,OAAO,CAAC;AAClC,CAAC;AAFD,8BAEC;AAED,SAAgB,YAAY,CAAC,KAAU;IACrC,OAAO,KAAK,YAAY,uBAAU,CAAC;AACrC,CAAC;AAFD,oCAEC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAU;IACrC,OAAO,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7F,CAAC;AAFD,oCAEC;AAED,SAAgB,KAAK,CAAC,KAAU;IAC9B,OAAO,KAAK,YAAY,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,KAAK,CAAC;AAClE,CAAC;AAFD,sBAEC;AAED,SAAgB,MAAM,CAAI,GAAQ,EAAE,UAAmC;IACrE,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;QACnB,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AARD,wBAQC;AAED,SAAgB,WAAW,CAAC,IAAoD;IAC9E,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACjJ,CAAC;AAFD,kCAEC"}
@@ -70,6 +70,7 @@ export interface IToInject<T> {
70
70
  inject: Class<T> | TypedArray<T>;
71
71
  autoinject: boolean;
72
72
  autoinjectKey: string;
73
+ mapFunc: (x: unknown) => string;
73
74
  }
74
75
  export interface IResolvedInjection {
75
76
  instance: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AA4FA;;;;;;;GAOG;AACH,+BAA+B;AAC/B,6DAA6D;AAC7D,IAAI;AAEJ,oCAAoC;AACpC,uEAAuE;AACvE,IAAI;AAEJ,MAAa,MAAM;IAAnB;QACY,aAAQ,GAAG,KAAK,CAAC;IAI7B,CAAC;IAHC,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AALD,wBAKC;AAED,MAAsB,UAAW,SAAQ,MAAM;IACtC,OAAO;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF;AAJD,gCAIC;AAED,MAAa,WAAY,SAAQ,MAAM;IACrC,oBAAoB;IACb,KAAK,CAAC,YAAY;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF;AALD,kCAKC;AAED,MAAsB,YAAY;CAEjC;AAFD,oCAEC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AA6FA;;;;;;;GAOG;AACH,+BAA+B;AAC/B,6DAA6D;AAC7D,IAAI;AAEJ,oCAAoC;AACpC,uEAAuE;AACvE,IAAI;AAEJ,MAAa,MAAM;IAAnB;QACY,aAAQ,GAAG,KAAK,CAAC;IAI7B,CAAC;IAHC,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AALD,wBAKC;AAED,MAAsB,UAAW,SAAQ,MAAM;IACtC,OAAO;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF;AAJD,gCAIC;AAED,MAAa,WAAY,SAAQ,MAAM;IACrC,oBAAoB;IACb,KAAK,CAAC,YAAY;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF;AALD,kCAKC;AAED,MAAsB,YAAY;CAEjC;AAFD,oCAEC"}
package/lib/registry.js CHANGED
@@ -28,7 +28,13 @@ class Registry {
28
28
  const tname = (0, helpers_1.getTypeName)(name);
29
29
  const value = this.registry.get(tname);
30
30
  if (value) {
31
- if (!value.find((v) => (0, helpers_1.getTypeName)(v) === (0, helpers_1.getTypeName)(type))) {
31
+ // factory functions, we always add to registry
32
+ // its impossible to check for duplicates
33
+ // all would return 'Function' type
34
+ if ((0, helpers_1.isFactory)(type)) {
35
+ value.push(type);
36
+ }
37
+ else if (!value.find((v) => (0, helpers_1.getTypeName)(v) === (0, helpers_1.getTypeName)(type))) {
32
38
  value.push(type);
33
39
  }
34
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":";;;AAAA,oDAAwE;AAExE,uCAA4E;AAI5E,MAAa,QAAQ;IAGnB,YAAsB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;QAFjC,aAAQ,GAAuB,IAAI,GAAG,EAAiB,CAAC;IAEpB,CAAC;IAExC,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEM,UAAU,CAAC,IAAS;QACzB,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAW,EAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;YAC/D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBAChB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,QAAQ,CAAC,IAA2C,EAAE,IAAS;QACpE,IAAI,CAAC,IAAA,uBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,kBAAQ,EAAC,IAAI,CAAC,EAAE;YAC/D,MAAM,IAAI,6BAAgB,CAAC,8DAA8D,CAAC,CAAC;SAC5F;aAAM;YACL,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,IAAI,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,KAAK,EAAE;gBACT,+CAA+C;gBAC/C,yCAAyC;gBACzC,mCAAmC;gBACnC,IAAI,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE;oBACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAClB;qBAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAW,EAAC,CAAC,CAAC,KAAK,IAAA,qBAAW,EAAC,IAAI,CAAC,CAAC,EAAE;oBACnE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAClB;aACF;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;aAClC;SACF;IACH,CAAC;IAEM,iBAAiB,CAAC,MAA6C,EAAE,IAAoD,EAAE,MAAgB;QAC5I,MAAM,UAAU,GAAG,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,IAAA,qBAAW,EAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,SAAS,CAAC;SACvF;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SACtE;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,QAAQ,CAAI,OAA0C,EAAE,MAAM,GAAG,IAAI;QAC1E,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,4BAAe,CAAC,4CAA4C,CAAC,CAAC;SACzE;QAED,MAAM,IAAI,GAAG,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAChC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,EAAE;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAClE;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,aAAa,CAAI,OAA0C,EAAE,MAAM,GAAG,IAAI;QAC/E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC,EAAE;YAC3C,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAC7D;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA/ED,4BA+EC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spinajs/di",
3
- "version": "2.0.12",
3
+ "version": "2.0.38",
4
4
  "description": "lightweight di container ",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -43,5 +43,8 @@
43
43
  "lodash": "^4.17.21",
44
44
  "reflect-metadata": "^0.1.13"
45
45
  },
46
- "gitHead": "d7910d799995df6fa9eb8174d4a9b65c81db8352"
46
+ "devDependencies": {
47
+ "@types/lodash": "^4.14.136"
48
+ },
49
+ "gitHead": "5ea5440ee9db49595f531592ebdbc6d69f457082"
47
50
  }