@spinajs/di 2.0.46 → 2.0.48

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.
Files changed (52) hide show
  1. package/lib/array.d.ts +2 -1
  2. package/lib/array.d.ts.map +1 -0
  3. package/lib/array.js +1 -5
  4. package/lib/array.js.map +1 -1
  5. package/lib/binder.d.ts +3 -2
  6. package/lib/binder.d.ts.map +1 -0
  7. package/lib/binder.js +11 -16
  8. package/lib/binder.js.map +1 -1
  9. package/lib/container-cache.d.ts +4 -3
  10. package/lib/container-cache.d.ts.map +1 -0
  11. package/lib/container-cache.js +6 -10
  12. package/lib/container-cache.js.map +1 -1
  13. package/lib/container.d.ts +7 -6
  14. package/lib/container.d.ts.map +1 -0
  15. package/lib/container.js +61 -66
  16. package/lib/container.js.map +1 -1
  17. package/lib/decorators.d.ts +5 -4
  18. package/lib/decorators.d.ts.map +1 -0
  19. package/lib/decorators.js +34 -66
  20. package/lib/decorators.js.map +1 -1
  21. package/lib/enums.d.ts +1 -0
  22. package/lib/enums.d.ts.map +1 -0
  23. package/lib/enums.js +2 -5
  24. package/lib/enums.js.map +1 -1
  25. package/lib/exceptions.d.ts +1 -0
  26. package/lib/exceptions.d.ts.map +1 -0
  27. package/lib/exceptions.js +3 -9
  28. package/lib/exceptions.js.map +1 -1
  29. package/lib/helpers.d.ts +4 -3
  30. package/lib/helpers.d.ts.map +1 -0
  31. package/lib/helpers.js +13 -26
  32. package/lib/helpers.js.map +1 -1
  33. package/lib/index.d.ts +13 -12
  34. package/lib/index.d.ts.map +1 -0
  35. package/lib/index.js +12 -41
  36. package/lib/index.js.map +1 -1
  37. package/lib/interfaces.d.ts +7 -6
  38. package/lib/interfaces.d.ts.map +1 -0
  39. package/lib/interfaces.js +4 -11
  40. package/lib/interfaces.js.map +1 -1
  41. package/lib/registry.d.ts +4 -3
  42. package/lib/registry.d.ts.map +1 -0
  43. package/lib/registry.js +15 -19
  44. package/lib/registry.js.map +1 -1
  45. package/lib/root.d.ts +4 -3
  46. package/lib/root.d.ts.map +1 -0
  47. package/lib/root.js +61 -93
  48. package/lib/root.js.map +1 -1
  49. package/lib/types.d.ts +7 -6
  50. package/lib/types.d.ts.map +1 -0
  51. package/lib/types.js +1 -2
  52. package/package.json +54 -50
package/lib/array.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Class } from './types';
1
+ import { Class } from './types.js';
2
2
  declare global {
3
3
  interface ArrayConstructor {
4
4
  ofType<T>(type: Class<T> | string): TypedArray<T>;
@@ -8,3 +8,4 @@ export declare class TypedArray<R> extends Array<R> {
8
8
  Type: Class<R> | string;
9
9
  constructor(Type: Class<R> | string);
10
10
  }
11
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,gBAAgB;QACxB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;KACnD;CACF;AACD,qBAAa,UAAU,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM;gBAAvB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM;CAG3C"}
package/lib/array.js CHANGED
@@ -1,13 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypedArray = void 0;
4
- class TypedArray extends Array {
1
+ export class TypedArray extends Array {
5
2
  constructor(Type) {
6
3
  super();
7
4
  this.Type = Type;
8
5
  }
9
6
  }
10
- exports.TypedArray = TypedArray;
11
7
  Array.ofType = function (type) {
12
8
  return new TypedArray(type);
13
9
  };
package/lib/array.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":";;;AAOA,MAAa,UAAc,SAAQ,KAAQ;IACzC,YAAmB,IAAuB;QACxC,KAAK,EAAE,CAAC;QADS,SAAI,GAAJ,IAAI,CAAmB;IAE1C,CAAC;CACF;AAJD,gCAIC;AAED,KAAK,CAAC,MAAM,GAAG,UAAa,IAAuB;IACjD,OAAO,IAAI,UAAU,CAAI,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,UAAc,SAAQ,KAAQ;IACzC,YAAmB,IAAuB;QACxC,KAAK,EAAE,CAAC;QADS,SAAI,GAAJ,IAAI,CAAmB;IAE1C,CAAC;CACF;AAED,KAAK,CAAC,MAAM,GAAG,UAAa,IAAuB;IACjD,OAAO,IAAI,UAAU,CAAI,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC"}
package/lib/binder.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { IBind, IContainer, ResolvableObject } from './interfaces';
2
- import { Class, Factory } from './types';
1
+ import { IBind, IContainer, ResolvableObject } from './interfaces.js';
2
+ import { Class, Factory } from './types.js';
3
3
  export declare class Binder<T> implements IBind {
4
4
  private implementation;
5
5
  private container;
@@ -37,3 +37,4 @@ export declare class Binder<T> implements IBind {
37
37
  */
38
38
  singleInstance(): this;
39
39
  }
40
+ //# sourceMappingURL=binder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../src/binder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAqB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,MAAM,CAAC,CAAC,CAAE,YAAW,KAAK;IAIzB,OAAO,CAAC,cAAc;IAA4C,OAAO,CAAC,SAAS;IAH/F,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,aAAa,CAAU;gBAEX,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAAU,SAAS,EAAE,UAAU;IAK3G,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAKpC;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,IAAI;IAU7C;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAcpC;;;;OAIG;IACH,MAAM,IAAI,IAAI;IAUd;;;OAGG;IACH,cAAc,IAAI,IAAI;CAavB"}
package/lib/binder.js CHANGED
@@ -1,17 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Binder = void 0;
4
- const exceptions_1 = require("./exceptions");
5
- const decorators_1 = require("./decorators");
6
- const enums_1 = require("./enums");
7
- const helpers_1 = require("./helpers");
8
- const _1 = require(".");
9
- class Binder {
1
+ import { BindException } from './exceptions.js';
2
+ import { DI_DESCRIPTION_SYMBOL } from './decorators.js';
3
+ import { ResolveType } from './enums.js';
4
+ import { isFactory, isConstructor } from './helpers.js';
5
+ export class Binder {
10
6
  constructor(implementation, container) {
11
7
  this.implementation = implementation;
12
8
  this.container = container;
13
- this.isFactory = (0, helpers_1.isFactory)(implementation);
14
- this.isConstructor = (0, _1.isConstructor)(implementation);
9
+ this.isFactory = isFactory(implementation);
10
+ this.isConstructor = isConstructor(implementation);
15
11
  }
16
12
  as(type) {
17
13
  this.container.Registry.register(type, this.implementation);
@@ -61,7 +57,7 @@ class Binder {
61
57
  */
62
58
  asSelf() {
63
59
  if (!this.isConstructor || this.isFactory) {
64
- throw new exceptions_1.BindException('cannot register as self non class');
60
+ throw new BindException('cannot register as self non class');
65
61
  }
66
62
  // we can safly cast to any, we checked params earlier
67
63
  this.container.Registry.register(this.implementation, this.implementation);
@@ -74,16 +70,15 @@ class Binder {
74
70
  singleInstance() {
75
71
  const descriptor = {
76
72
  inject: [],
77
- resolver: enums_1.ResolveType.Singleton,
73
+ resolver: ResolveType.Singleton,
78
74
  };
79
75
  if (this.isFactory || !this.isConstructor) {
80
- throw new exceptions_1.BindException('Cannot bind factory function as singleton.');
76
+ throw new BindException('Cannot bind factory function as singleton.');
81
77
  }
82
78
  else {
83
- this.implementation[`${decorators_1.DI_DESCRIPTION_SYMBOL}`] = descriptor;
79
+ this.implementation[`${DI_DESCRIPTION_SYMBOL}`] = descriptor;
84
80
  }
85
81
  return this;
86
82
  }
87
83
  }
88
- exports.Binder = Binder;
89
84
  //# sourceMappingURL=binder.js.map
package/lib/binder.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"binder.js","sourceRoot":"","sources":["../src/binder.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAC7C,6CAAqD;AACrD,mCAAsC;AACtC,uCAAsC;AAGtC,wBAAkC;AAElC,MAAa,MAAM;IAIjB,YAAoB,cAAwD,EAAU,SAAqB;QAAvF,mBAAc,GAAd,cAAc,CAA0C;QAAU,cAAS,GAAT,SAAS,CAAY;QACzG,IAAI,CAAC,SAAS,GAAG,IAAA,mBAAS,EAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAA,gBAAa,EAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,EAAE,CAAI,IAAuB;QAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK;QACpC,IAAI,QAAQ,EAAE;YACZ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACnC;SACF;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAY,EAAE,GAAW;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAkB,CAAC;SAC1D;aAAM;YACL,GAAG,GAAG,IAAI,GAAG,EAAe,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACrC;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;YACzC,MAAM,IAAI,0BAAa,CAAC,mCAAmC,CAAC,CAAC;SAC9D;QAED,sDAAsD;QACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,MAAM,UAAU,GAA+B;YAC7C,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,mBAAW,CAAC,SAAS;SAChC,CAAC;QAEF,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACzC,MAAM,IAAI,0BAAa,CAAC,4CAA4C,CAAC,CAAC;SACvE;aAAM;YACJ,IAAI,CAAC,cAAsB,CAAC,GAAG,kCAAqB,EAAE,CAAC,GAAG,UAAU,CAAC;SACvE;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtFD,wBAsFC"}
1
+ {"version":3,"file":"binder.js","sourceRoot":"","sources":["../src/binder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIxD,MAAM,OAAO,MAAM;IAIjB,YAAoB,cAAwD,EAAU,SAAqB;QAAvF,mBAAc,GAAd,cAAc,CAA0C;QAAU,cAAS,GAAT,SAAS,CAAY;QACzG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,EAAE,CAAI,IAAuB;QAC3B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK;QACpC,IAAI,QAAQ,EAAE;YACZ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACnC;SACF;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAY,EAAE,GAAW;QAClC,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAkB,CAAC;SAC1D;aAAM;YACL,GAAG,GAAG,IAAI,GAAG,EAAe,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACrC;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;YACzC,MAAM,IAAI,aAAa,CAAC,mCAAmC,CAAC,CAAC;SAC9D;QAED,sDAAsD;QACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,MAAM,UAAU,GAA+B;YAC7C,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,WAAW,CAAC,SAAS;SAChC,CAAC;QAEF,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACzC,MAAM,IAAI,aAAa,CAAC,4CAA4C,CAAC,CAAC;SACvE;aAAM;YACJ,IAAI,CAAC,cAAsB,CAAC,GAAG,qBAAqB,EAAE,CAAC,GAAG,UAAU,CAAC;SACvE;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
- import { TypedArray } from './array';
2
- import { IContainer } from './interfaces';
3
- import { Class } from './types';
1
+ import { TypedArray } from './array.js';
2
+ import { IContainer } from './interfaces.js';
3
+ import { Class } from './types.js';
4
4
  export declare class ContainerCache {
5
5
  private container;
6
6
  private cache;
@@ -15,3 +15,4 @@ export declare class ContainerCache {
15
15
  get(key: string | Class<any> | TypedArray<any>, parent?: boolean): any;
16
16
  clear(): void;
17
17
  }
18
+ //# sourceMappingURL=container-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-cache.d.ts","sourceRoot":"","sources":["../src/container-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,qBAAa,cAAc;IAGb,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,KAAK,CAAqB;gBAEd,SAAS,EAAE,UAAU;IAQxC,CAAC,MAAM,CAAC,QAAQ,CAAC;;;;IAQX,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ1E,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG;IAYpD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAYnF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,GAAG;IActE,KAAK;CAIb"}
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContainerCache = void 0;
4
- const helpers_1 = require("./helpers");
5
- class ContainerCache {
1
+ import { getTypeName } from './helpers.js';
2
+ export class ContainerCache {
6
3
  constructor(container) {
7
4
  this.container = container;
8
5
  this.cache = new Map();
@@ -19,14 +16,14 @@ class ContainerCache {
19
16
  }
20
17
  remove(key, parent) {
21
18
  if (this.has(key)) {
22
- this.cache.delete((0, helpers_1.getTypeName)(key));
19
+ this.cache.delete(getTypeName(key));
23
20
  }
24
21
  else if (parent && this.container.Parent) {
25
22
  this.container.Parent.uncache(key);
26
23
  }
27
24
  }
28
25
  add(key, instance) {
29
- const tName = (0, helpers_1.getTypeName)(key);
26
+ const tName = getTypeName(key);
30
27
  if (this.has(key)) {
31
28
  if (this.cache.get(tName).indexOf(instance) === -1) {
32
29
  this.cache.get(tName).push(instance);
@@ -37,7 +34,7 @@ class ContainerCache {
37
34
  }
38
35
  }
39
36
  has(key, parent) {
40
- if (this.cache.has((0, helpers_1.getTypeName)(key))) {
37
+ if (this.cache.has(getTypeName(key))) {
41
38
  return true;
42
39
  }
43
40
  if (parent && this.container.Parent) {
@@ -46,7 +43,7 @@ class ContainerCache {
46
43
  return false;
47
44
  }
48
45
  get(key, parent) {
49
- const tName = (0, helpers_1.getTypeName)(key);
46
+ const tName = getTypeName(key);
50
47
  if (this.cache.has(tName)) {
51
48
  return this.cache.get(tName);
52
49
  }
@@ -60,5 +57,4 @@ class ContainerCache {
60
57
  this.add(this.container, this.container);
61
58
  }
62
59
  }
63
- exports.ContainerCache = ContainerCache;
64
60
  //# sourceMappingURL=container-cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container-cache.js","sourceRoot":"","sources":["../src/container-cache.ts"],"names":[],"mappings":";;;AAEA,uCAAwC;AAIxC,MAAa,cAAc;IAGzB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QAEtC,yBAAyB;QACzB,uCAAuC;QACvC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACrC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;gBACrB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;aACzB;SACF;IACH,CAAC;IAEM,MAAM,CAAC,GAA0C,EAAE,MAAgB;QACxE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;SACrC;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACpC;IACH,CAAC;IAEM,GAAG,CAAC,GAAiC,EAAE,QAAa;QACzD,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtC;SACF;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,GAAG,CAAC,GAAmD,EAAE,MAAgB;QAC9E,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACrD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,GAAG,CAAC,GAA0C,EAAE,MAAgB;QACrE,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACrD;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;CACF;AArED,wCAqEC"}
1
+ {"version":3,"file":"container-cache.js","sourceRoot":"","sources":["../src/container-cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,OAAO,cAAc;IAGzB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QAEtC,yBAAyB;QACzB,uCAAuC;QACvC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACrC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;gBACrB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;aACzB;SACF;IACH,CAAC;IAEM,MAAM,CAAC,GAA0C,EAAE,MAAgB;QACxE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;SACrC;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACpC;IACH,CAAC;IAEM,GAAG,CAAC,GAAiC,EAAE,QAAa;QACzD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtC;SACF;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,GAAG,CAAC,GAAmD,EAAE,MAAgB;QAC9E,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACrD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,GAAG,CAAC,GAA0C,EAAE,MAAgB;QACrE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACrD;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -1,11 +1,11 @@
1
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
2
  import 'reflect-metadata';
3
- import { TypedArray } from './array';
4
- import { IBind, IContainer, IInjectDescriptor, IResolvedInjection, IToInject, AsyncService, ResolvableObject } from './interfaces';
5
- import { Class, Factory } from './types';
3
+ import { TypedArray } from './array.js';
4
+ import { IBind, IContainer, IInjectDescriptor, IResolvedInjection, IToInject, AsyncService, ResolvableObject } from './interfaces.js';
5
+ import { Class, Factory } from './types.js';
6
6
  import { EventEmitter } from 'events';
7
- import { Registry } from './registry';
8
- import { ContainerCache } from './container-cache';
7
+ import { Registry } from './registry.js';
8
+ import { ContainerCache } from './container-cache.js';
9
9
  /**
10
10
  * Dependency injection container implementation
11
11
  */
@@ -131,3 +131,4 @@ export declare class Container extends EventEmitter implements IContainer {
131
131
  })[]>;
132
132
  protected extractDescriptor(type: Class<unknown>): IInjectDescriptor<unknown>;
133
133
  }
134
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
package/lib/container.js CHANGED
@@ -1,29 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Container = void 0;
4
- const exceptions_1 = require("@spinajs/exceptions");
5
- require("reflect-metadata");
6
- const array_1 = require("./array");
7
- const decorators_1 = require("./decorators");
8
- const enums_1 = require("./enums");
9
- const helpers_1 = require("./helpers");
10
- const interfaces_1 = require("./interfaces");
11
- const events_1 = require("events");
12
- const binder_1 = require("./binder");
13
- const registry_1 = require("./registry");
14
- const container_cache_1 = require("./container-cache");
15
- const lodash_1 = require("lodash");
16
- const exceptions_2 = require("./exceptions");
1
+ import { InvalidArgument } from '@spinajs/exceptions';
2
+ import 'reflect-metadata';
3
+ import { TypedArray } from './array.js';
4
+ import { DI_DESCRIPTION_SYMBOL } from './decorators.js';
5
+ import { ResolveType } from './enums.js';
6
+ import { getTypeName, isAsyncService, isFactory, uniqBy, isTypedArray, isPromise } from './helpers.js';
7
+ import { SyncService, Service } from './interfaces.js';
8
+ import { EventEmitter } from 'events';
9
+ import { Binder } from './binder.js';
10
+ import { Registry } from './registry.js';
11
+ import { ContainerCache } from './container-cache.js';
12
+ import _ from 'lodash';
13
+ import { ResolveException, ServiceNotFound } from './exceptions.js';
17
14
  /**
18
15
  * Dependency injection container implementation
19
16
  */
20
- class Container extends events_1.EventEmitter {
21
- constructor(parent) {
22
- super();
23
- this.registry = new registry_1.Registry(this);
24
- this.cache = new container_cache_1.ContainerCache(this);
25
- this.parent = parent || undefined;
26
- }
17
+ export class Container extends EventEmitter {
27
18
  /**
28
19
  * Returns container cache - map object with resolved classes as singletons
29
20
  */
@@ -36,6 +27,12 @@ class Container extends events_1.EventEmitter {
36
27
  get Parent() {
37
28
  return this.parent;
38
29
  }
30
+ constructor(parent) {
31
+ super();
32
+ this.registry = new Registry(this);
33
+ this.cache = new ContainerCache(this);
34
+ this.parent = parent || undefined;
35
+ }
39
36
  /**
40
37
  * Clears container registry and cache. shorthand for container.clearCache() && container.clearRegistry()
41
38
  */
@@ -44,7 +41,7 @@ class Container extends events_1.EventEmitter {
44
41
  }
45
42
  async dispose() {
46
43
  for (const entry of this.cache) {
47
- if (entry.value instanceof interfaces_1.Service) {
44
+ if (entry.value instanceof Service) {
48
45
  await entry.value.dispose();
49
46
  }
50
47
  }
@@ -70,13 +67,13 @@ class Container extends events_1.EventEmitter {
70
67
  */
71
68
  register(implementation) {
72
69
  if (!implementation) {
73
- throw new exceptions_1.InvalidArgument('argument `type` cannot be null or undefined');
70
+ throw new InvalidArgument('argument `type` cannot be null or undefined');
74
71
  }
75
- return new binder_1.Binder(implementation, this);
72
+ return new Binder(implementation, this);
76
73
  }
77
74
  unregister(implementation) {
78
75
  if (!implementation) {
79
- throw new exceptions_1.InvalidArgument('argument `type` cannot be null or undefined');
76
+ throw new InvalidArgument('argument `type` cannot be null or undefined');
80
77
  }
81
78
  this.Registry.unregister(implementation);
82
79
  }
@@ -93,7 +90,7 @@ class Container extends events_1.EventEmitter {
93
90
  get(service, parent = true) {
94
91
  // get value registered as TypedArray ( mean to return all created instances )
95
92
  if (service instanceof Array && service.constructor.name === 'TypedArray') {
96
- return this.cache.get((0, helpers_1.getTypeName)(service.Type));
93
+ return this.cache.get(getTypeName(service.Type));
97
94
  }
98
95
  const r = this.cache.get(service, parent);
99
96
  return r[r.length - 1];
@@ -120,19 +117,19 @@ class Container extends events_1.EventEmitter {
120
117
  */
121
118
  resolve(type, options, check, tType) {
122
119
  if (!type) {
123
- throw new exceptions_1.InvalidArgument('argument `type` cannot be null or undefined');
120
+ throw new InvalidArgument('argument `type` cannot be null or undefined');
124
121
  }
125
122
  // UGLY HACK ?
126
123
  // on electron instanceof TypedArray not working ?
127
124
  const sourceType = type instanceof Array && type.constructor.name === 'TypedArray' ? type.Type : type;
128
- const sourceName = (0, helpers_1.getTypeName)(type);
125
+ const sourceName = getTypeName(type);
129
126
  const opt = typeof options === 'boolean' ? null : options;
130
127
  if (options === true || check === true) {
131
128
  if (!this.hasRegistered(sourceType)) {
132
129
  throw new Error(`Type ${sourceName} is not registered at container`);
133
130
  }
134
131
  }
135
- if ((0, helpers_1.isTypedArray)(type)) {
132
+ if (isTypedArray(type)) {
136
133
  // special case for arrays
137
134
  // if we have in cache, retunr all we got
138
135
  // TODO: fix this and every time check if theres is any
@@ -169,7 +166,7 @@ class Container extends events_1.EventEmitter {
169
166
  // we can select whitch of targetType to resolve
170
167
  //
171
168
  // if not, by default last registered type is resolved
172
- const fType = tType !== null && tType !== void 0 ? tType : targetType[targetType.length - 1];
169
+ const fType = tType ?? targetType[targetType.length - 1];
173
170
  const rValue = this.resolveType(sourceType, fType, opt);
174
171
  return rValue;
175
172
  }
@@ -181,27 +178,27 @@ class Container extends events_1.EventEmitter {
181
178
  /**
182
179
  * If its a factory func, always resolve as new instance
183
180
  */
184
- if ((0, helpers_1.isFactory)(targetType)) {
181
+ if (isFactory(targetType)) {
185
182
  return this.getNewInstance(targetType, null, options);
186
183
  }
187
184
  // we now know its not factory func
188
185
  // but typescript complains about this
189
186
  // becouse isFactory is custom type check
190
187
  const tType = targetType;
191
- const sName = (0, helpers_1.getTypeName)(sourceType);
188
+ const sName = getTypeName(sourceType);
192
189
  const descriptor = this.extractDescriptor(tType);
193
190
  // check if is singleton,
194
191
  // resolving strategy per container is treatead as singleton
195
192
  // in this particular container
196
- const isSingletonInChild = descriptor.resolver === enums_1.ResolveType.PerChildContainer;
197
- const isSingleton = descriptor.resolver === enums_1.ResolveType.Singleton;
193
+ const isSingletonInChild = descriptor.resolver === ResolveType.PerChildContainer;
194
+ const isSingleton = descriptor.resolver === ResolveType.Singleton;
198
195
  const setCache = (target) => {
199
196
  this.Cache.add(sourceType, target);
200
197
  return target;
201
198
  };
202
199
  const emit = (target) => {
203
- const sourceTypeName = (0, helpers_1.getTypeName)(sourceType);
204
- const targetTypeName = (0, helpers_1.getTypeName)(targetType);
200
+ const sourceTypeName = getTypeName(sourceType);
201
+ const targetTypeName = getTypeName(targetType);
205
202
  // firs event to emit that particular type was resolved
206
203
  this.emit(`di.resolved.${targetTypeName}`, this, target);
207
204
  // emit that source type was resolved
@@ -212,20 +209,20 @@ class Container extends events_1.EventEmitter {
212
209
  const getCachedInstance = (e, parent) => {
213
210
  if (this.isResolved(e, parent)) {
214
211
  const rArray = this.get(e, parent);
215
- return (0, lodash_1.isArray)(rArray) ? rArray.find((x) => (0, helpers_1.getTypeName)(x) === (0, helpers_1.getTypeName)(targetType)) : rArray;
212
+ return _.isArray(rArray) ? rArray.find((x) => getTypeName(x) === getTypeName(targetType)) : rArray;
216
213
  }
217
214
  return null;
218
215
  };
219
216
  const getCachedInstances = (e, parent) => {
220
217
  if (this.isResolved(e, parent)) {
221
218
  const rArray = this.get(e, parent);
222
- return (0, lodash_1.isArray)(rArray) ? rArray : [rArray];
219
+ return _.isArray(rArray) ? rArray : [rArray];
223
220
  }
224
221
  return null;
225
222
  };
226
223
  const createNewInstance = (t, i, options) => {
227
224
  const instance = this.getNewInstance(t, i, options);
228
- if ((0, helpers_1.isPromise)(instance)) {
225
+ if (isPromise(instance)) {
229
226
  return instance.then((r) => {
230
227
  setCache(r);
231
228
  emit(r);
@@ -239,9 +236,9 @@ class Container extends events_1.EventEmitter {
239
236
  }
240
237
  };
241
238
  const resolve = (d, t, i) => {
242
- if (d.resolver === enums_1.ResolveType.NewInstance) {
239
+ if (d.resolver === ResolveType.NewInstance) {
243
240
  const instance = this.getNewInstance(t, i, options);
244
- if ((0, helpers_1.isPromise)(instance)) {
241
+ if (isPromise(instance)) {
245
242
  return instance.then((r) => {
246
243
  emit(r);
247
244
  return r;
@@ -252,13 +249,13 @@ class Container extends events_1.EventEmitter {
252
249
  return instance;
253
250
  }
254
251
  }
255
- if (d.resolver === enums_1.ResolveType.PerInstanceCheck) {
252
+ if (d.resolver === ResolveType.PerInstanceCheck) {
256
253
  const cashed = getCachedInstances(tType, true);
257
254
  if (cashed) {
258
255
  const found = cashed.find((x) => {
259
256
  if (!x.__checkInstance__) {
260
257
  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
261
- throw new exceptions_2.ResolveException(`service ${x.constructor.name} is marked as PerInstanceCheck resolver, but no __checkInstance__ function is provided`);
258
+ throw new ResolveException(`service ${x.constructor.name} is marked as PerInstanceCheck resolver, but no __checkInstance__ function is provided`);
262
259
  }
263
260
  return x.__checkInstance__(options);
264
261
  });
@@ -271,7 +268,7 @@ class Container extends events_1.EventEmitter {
271
268
  }
272
269
  }
273
270
  this.Registry.register(sName, t);
274
- const cashed = getCachedInstance(tType, d.resolver === enums_1.ResolveType.Singleton ? true : false);
271
+ const cashed = getCachedInstance(tType, d.resolver === ResolveType.Singleton ? true : false);
275
272
  if (!cashed) {
276
273
  return createNewInstance(t, i, options);
277
274
  }
@@ -315,8 +312,8 @@ class Container extends events_1.EventEmitter {
315
312
  * If type is not Constructable, we assume its factory function,
316
313
  * just call it with `this` container.
317
314
  */
318
- if ((0, helpers_1.isFactory)(typeToCreate)) {
319
- newInstance = typeToCreate(this, ...(options !== null && options !== void 0 ? options : []));
315
+ if (isFactory(typeToCreate)) {
316
+ newInstance = typeToCreate(this, ...(options ?? []));
320
317
  }
321
318
  else {
322
319
  if (a.constructor.name === 'Array') {
@@ -332,7 +329,7 @@ class Container extends events_1.EventEmitter {
332
329
  /* eslint-disable */
333
330
  newInstance[`${ai.autoinjectKey}`] = ai.instance;
334
331
  }
335
- if ((0, helpers_1.isAsyncService)(newInstance)) {
332
+ if (isAsyncService(newInstance)) {
336
333
  return new Promise((res, rej) => {
337
334
  newInstance
338
335
  .resolve()
@@ -343,7 +340,7 @@ class Container extends events_1.EventEmitter {
343
340
  });
344
341
  }
345
342
  else {
346
- if (newInstance instanceof interfaces_1.SyncService) {
343
+ if (newInstance instanceof SyncService) {
347
344
  newInstance.resolve();
348
345
  }
349
346
  }
@@ -355,7 +352,6 @@ class Container extends events_1.EventEmitter {
355
352
  }
356
353
  resolveDependencies(toInject) {
357
354
  const dependencies = toInject.map((t) => {
358
- var _a, _b;
359
355
  let tInject = null;
360
356
  // if we have service func, retrieve target
361
357
  // we can have multiple implementation of same interface
@@ -367,9 +363,9 @@ class Container extends events_1.EventEmitter {
367
363
  const services = t.serviceFunc(t.data, this);
368
364
  const types = this.getRegisteredTypes(t.inject);
369
365
  if (!types || types.length === 0) {
370
- throw new exceptions_2.ServiceNotFound(`Service ${t.inject.name} is not registered in DI container`);
366
+ throw new ServiceNotFound(`Service ${t.inject.name} is not registered in DI container`);
371
367
  }
372
- if ((0, lodash_1.isArray)(services)) {
368
+ if (_.isArray(services)) {
373
369
  tInject = services.map((x) => {
374
370
  return {
375
371
  type: types.find((t) => t.name === x.service),
@@ -385,9 +381,9 @@ class Container extends events_1.EventEmitter {
385
381
  }
386
382
  }
387
383
  let promiseOrVal = null;
388
- if ((0, lodash_1.isArray)(tInject)) {
389
- const pVals = tInject.map((x) => { var _a; return this.resolve(x.type, [(_a = t.options) !== null && _a !== void 0 ? _a : x.options], false, x.type); });
390
- if (pVals.some((x) => (0, helpers_1.isPromise)(x))) {
384
+ if (_.isArray(tInject)) {
385
+ const pVals = tInject.map((x) => this.resolve(x.type, [t.options ?? x.options], false, x.type));
386
+ if (pVals.some((x) => isPromise(x))) {
391
387
  promiseOrVal = Promise.all(pVals);
392
388
  }
393
389
  else {
@@ -395,7 +391,7 @@ class Container extends events_1.EventEmitter {
395
391
  }
396
392
  }
397
393
  else {
398
- promiseOrVal = this.resolve((_a = tInject === null || tInject === void 0 ? void 0 : tInject.type) !== null && _a !== void 0 ? _a : t.inject, [(_b = t.options) !== null && _b !== void 0 ? _b : tInject === null || tInject === void 0 ? void 0 : tInject.options], false, tInject === null || tInject === void 0 ? void 0 : tInject.type);
394
+ promiseOrVal = this.resolve(tInject?.type ?? t.inject, [t.options ?? tInject?.options], false, tInject?.type);
399
395
  }
400
396
  if (promiseOrVal instanceof Promise) {
401
397
  return promiseOrVal.then((val) => {
@@ -418,7 +414,7 @@ class Container extends events_1.EventEmitter {
418
414
  return dependencies;
419
415
  function valOrMap(val, t) {
420
416
  let instance = val;
421
- if ((0, lodash_1.isArray)(val) && t.mapFunc) {
417
+ if (_.isArray(val) && t.mapFunc) {
422
418
  instance = new Map();
423
419
  for (const i of val) {
424
420
  instance.set(t.mapFunc(i), i);
@@ -430,12 +426,12 @@ class Container extends events_1.EventEmitter {
430
426
  extractDescriptor(type) {
431
427
  const descriptor = {
432
428
  inject: [],
433
- resolver: enums_1.ResolveType.Singleton,
429
+ resolver: ResolveType.Singleton,
434
430
  };
435
431
  reduce(type);
436
- descriptor.inject = (0, helpers_1.uniqBy)(descriptor.inject, (a, b) => {
437
- if (a.inject instanceof array_1.TypedArray && b.inject instanceof array_1.TypedArray) {
438
- return (0, helpers_1.getTypeName)(a.inject.Type) === (0, helpers_1.getTypeName)(b.inject.Type);
432
+ descriptor.inject = uniqBy(descriptor.inject, (a, b) => {
433
+ if (a.inject instanceof TypedArray && b.inject instanceof TypedArray) {
434
+ return getTypeName(a.inject.Type) === getTypeName(b.inject.Type);
439
435
  }
440
436
  else {
441
437
  return a.inject.name === b.inject.name;
@@ -448,13 +444,12 @@ class Container extends events_1.EventEmitter {
448
444
  reduce(t.prototype);
449
445
  // for descriptors defined on class properties eg. @Autoinject()
450
446
  reduce(t.__proto__);
451
- if (t[`${decorators_1.DI_DESCRIPTION_SYMBOL}`]) {
452
- descriptor.inject = descriptor.inject.concat(t[`${decorators_1.DI_DESCRIPTION_SYMBOL}`].inject);
453
- descriptor.resolver = t[`${decorators_1.DI_DESCRIPTION_SYMBOL}`].resolver;
447
+ if (t[`${DI_DESCRIPTION_SYMBOL}`]) {
448
+ descriptor.inject = descriptor.inject.concat(t[`${DI_DESCRIPTION_SYMBOL}`].inject);
449
+ descriptor.resolver = t[`${DI_DESCRIPTION_SYMBOL}`].resolver;
454
450
  }
455
451
  }
456
452
  }
457
453
  }
458
454
  }
459
- exports.Container = Container;
460
455
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}