ts-ioc-container 25.0.0 → 25.0.2

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.
@@ -8,6 +8,6 @@ export declare abstract class AutoMockedContainer implements IContainer {
8
8
  getInstances(): unknown[];
9
9
  removeScope(): void;
10
10
  use(module: IContainerModule): this;
11
- getProviders(): Map<DependencyKey, IProvider>;
11
+ getAllProviders(): Map<DependencyKey, IProvider>;
12
12
  hasTag(tag: Tag): boolean;
13
13
  }
@@ -20,7 +20,7 @@ class AutoMockedContainer {
20
20
  use(module) {
21
21
  throw new index_1.MethodNotImplementedError();
22
22
  }
23
- getProviders() {
23
+ getAllProviders() {
24
24
  return new Map();
25
25
  }
26
26
  hasTag(tag) {
@@ -1 +1 @@
1
- {"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/container/AutoMockedContainer.ts"],"names":[],"mappings":";;;AAAA,oCAQkB;AAElB,MAAsB,mBAAmB;IACvC,WAAW,CAAC,GAAG,IAAW;QACxB,MAAM,IAAI,iCAAyB,EAAE,CAAC;IACxC,CAAC;IAID,OAAO,KAAU,CAAC;IAElB,2BAA2B;QACzB,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,GAAkB,EAAE,KAAgB;QAC3C,MAAM,IAAI,iCAAyB,EAAE,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG,CAAC,MAAwB;QAC1B,MAAM,IAAI,iCAAyB,EAAE,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAlCD,kDAkCC"}
1
+ {"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/container/AutoMockedContainer.ts"],"names":[],"mappings":";;;AAAA,oCAQkB;AAElB,MAAsB,mBAAmB;IACvC,WAAW,CAAC,GAAG,IAAW;QACxB,MAAM,IAAI,iCAAyB,EAAE,CAAC;IACxC,CAAC;IAID,OAAO,KAAU,CAAC;IAElB,2BAA2B;QACzB,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,GAAkB,EAAE,KAAgB;QAC3C,MAAM,IAAI,iCAAyB,EAAE,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG,CAAC,MAAwB;QAC1B,MAAM,IAAI,iCAAyB,EAAE,CAAC;IACxC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAlCD,kDAkCC"}
@@ -23,11 +23,7 @@ export declare class Container implements IContainer, Tagged {
23
23
  /**
24
24
  * @private
25
25
  */
26
- getProviders(): Map<DependencyKey, IProvider>;
27
- /**
28
- * @private
29
- */
30
- cloneAndImportProvidersFrom(source: IContainer): void;
26
+ getAllProviders(): Map<DependencyKey, IProvider>;
31
27
  /**
32
28
  * @private
33
29
  */
@@ -33,7 +33,7 @@ class Container {
33
33
  createScope(...tags) {
34
34
  this.validateContainer();
35
35
  const scope = new Container(this.injector, { parent: this, tags });
36
- scope.cloneAndImportProvidersFrom(this);
36
+ cloneProviders(this, scope);
37
37
  this.scopes.add(scope);
38
38
  return scope;
39
39
  }
@@ -65,18 +65,8 @@ class Container {
65
65
  /**
66
66
  * @private
67
67
  */
68
- getProviders() {
69
- return new Map([...this.parent.getProviders(), ...this.providers]);
70
- }
71
- /**
72
- * @private
73
- */
74
- cloneAndImportProvidersFrom(source) {
75
- for (const [key, provider] of source.getProviders()) {
76
- if (provider.isValid(this)) {
77
- this.providers.set(key, provider.clone());
78
- }
79
- }
68
+ getAllProviders() {
69
+ return new Map([...this.parent.getAllProviders(), ...this.providers]);
80
70
  }
81
71
  /**
82
72
  * @private
@@ -89,4 +79,11 @@ class Container {
89
79
  }
90
80
  }
91
81
  exports.Container = Container;
82
+ function cloneProviders(source, target) {
83
+ for (const [key, provider] of source.getAllProviders()) {
84
+ if (provider.isValid(target)) {
85
+ target.register(key, provider.clone());
86
+ }
87
+ }
88
+ }
92
89
  //# sourceMappingURL=Container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare class EmptyContainer implements IContainer {
6
6
  dispose(): void;
7
7
  register(key: DependencyKey, value: IProvider): this;
8
8
  resolve<T>(key: InjectionToken<T>): T;
9
- getProviders(): Map<DependencyKey, IProvider>;
9
+ getAllProviders(): Map<DependencyKey, IProvider>;
10
10
  cloneAndImportProvidersFrom(): void;
11
11
  getInstances(): unknown[];
12
12
  removeScope(): void;
@@ -19,7 +19,7 @@ class EmptyContainer {
19
19
  resolve(key) {
20
20
  throw new DependencyNotFoundError_1.DependencyNotFoundError(`Cannot find ${key.toString()}`);
21
21
  }
22
- getProviders() {
22
+ getAllProviders() {
23
23
  return new Map();
24
24
  }
25
25
  cloneAndImportProvidersFrom() {
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyContainer.js","sourceRoot":"","sources":["../../lib/container/EmptyContainer.ts"],"names":[],"mappings":";;;AACA,2EAAwE;AACxE,uEAAoE;AAGpE,MAAa,cAAc;IACzB,MAAM,CAAC,GAAQ;QACb,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;IAED,WAAW,CAAC,GAAG,IAAW;QACxB,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;IAED,OAAO;QACL,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,GAAkB,EAAE,KAAgB;QAC3C,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,CAAI,GAAsB;QAC/B,MAAM,IAAI,iDAAuB,CAAC,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,YAAY;QACV,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,2BAA2B;QACzB,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG,CAAC,MAAwB;QAC1B,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;CACF;AAtCD,wCAsCC"}
1
+ {"version":3,"file":"EmptyContainer.js","sourceRoot":"","sources":["../../lib/container/EmptyContainer.ts"],"names":[],"mappings":";;;AACA,2EAAwE;AACxE,uEAAoE;AAGpE,MAAa,cAAc;IACzB,MAAM,CAAC,GAAQ;QACb,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;IAED,WAAW,CAAC,GAAG,IAAW;QACxB,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;IAED,OAAO;QACL,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,GAAkB,EAAE,KAAgB;QAC3C,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,CAAI,GAAsB;QAC/B,MAAM,IAAI,iDAAuB,CAAC,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,eAAe;QACb,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,2BAA2B;QACzB,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG,CAAC,MAAwB;QAC1B,MAAM,IAAI,qDAAyB,EAAE,CAAC;IACxC,CAAC;CACF;AAtCD,wCAsCC"}
@@ -17,11 +17,10 @@ export interface IContainerModule {
17
17
  export interface IContainer extends Resolvable {
18
18
  createScope(...tags: Tag[]): IContainer;
19
19
  register(key: DependencyKey, value: IProvider): this;
20
- cloneAndImportProvidersFrom(source: IContainer): void;
21
20
  removeScope(child: IContainer): void;
22
21
  getInstances(): unknown[];
23
22
  dispose(): void;
24
23
  use(module: IContainerModule): this;
25
24
  hasTag(tag: Tag): boolean;
26
- getProviders(): Map<DependencyKey, IProvider>;
25
+ getAllProviders(): Map<DependencyKey, IProvider>;
27
26
  }
@@ -8,6 +8,6 @@ export declare abstract class AutoMockedContainer implements IContainer {
8
8
  getInstances(): unknown[];
9
9
  removeScope(): void;
10
10
  use(module: IContainerModule): this;
11
- getProviders(): Map<DependencyKey, IProvider>;
11
+ getAllProviders(): Map<DependencyKey, IProvider>;
12
12
  hasTag(tag: Tag): boolean;
13
13
  }
@@ -17,7 +17,7 @@ export class AutoMockedContainer {
17
17
  use(module) {
18
18
  throw new MethodNotImplementedError();
19
19
  }
20
- getProviders() {
20
+ getAllProviders() {
21
21
  return new Map();
22
22
  }
23
23
  hasTag(tag) {
@@ -1 +1 @@
1
- {"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/container/AutoMockedContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,yBAAyB,GAI1B,MAAM,UAAU,CAAC;AAElB,MAAM,OAAgB,mBAAmB;IACvC,WAAW,CAAC,GAAG,IAAW;QACxB,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAID,OAAO,KAAU,CAAC;IAElB,2BAA2B;QACzB,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,GAAkB,EAAE,KAAgB;QAC3C,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG,CAAC,MAAwB;QAC1B,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/container/AutoMockedContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,yBAAyB,GAI1B,MAAM,UAAU,CAAC;AAElB,MAAM,OAAgB,mBAAmB;IACvC,WAAW,CAAC,GAAG,IAAW;QACxB,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAID,OAAO,KAAU,CAAC;IAElB,2BAA2B;QACzB,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,GAAkB,EAAE,KAAgB;QAC3C,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG,CAAC,MAAwB;QAC1B,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,GAAQ;QACb,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -23,11 +23,7 @@ export declare class Container implements IContainer, Tagged {
23
23
  /**
24
24
  * @private
25
25
  */
26
- getProviders(): Map<DependencyKey, IProvider>;
27
- /**
28
- * @private
29
- */
30
- cloneAndImportProvidersFrom(source: IContainer): void;
26
+ getAllProviders(): Map<DependencyKey, IProvider>;
31
27
  /**
32
28
  * @private
33
29
  */
@@ -30,7 +30,7 @@ export class Container {
30
30
  createScope(...tags) {
31
31
  this.validateContainer();
32
32
  const scope = new Container(this.injector, { parent: this, tags });
33
- scope.cloneAndImportProvidersFrom(this);
33
+ cloneProviders(this, scope);
34
34
  this.scopes.add(scope);
35
35
  return scope;
36
36
  }
@@ -62,18 +62,8 @@ export class Container {
62
62
  /**
63
63
  * @private
64
64
  */
65
- getProviders() {
66
- return new Map([...this.parent.getProviders(), ...this.providers]);
67
- }
68
- /**
69
- * @private
70
- */
71
- cloneAndImportProvidersFrom(source) {
72
- for (const [key, provider] of source.getProviders()) {
73
- if (provider.isValid(this)) {
74
- this.providers.set(key, provider.clone());
75
- }
76
- }
65
+ getAllProviders() {
66
+ return new Map([...this.parent.getAllProviders(), ...this.providers]);
77
67
  }
78
68
  /**
79
69
  * @private
@@ -85,4 +75,11 @@ export class Container {
85
75
  ContainerDisposedError.assert(!this.isDisposed, 'Container is already disposed');
86
76
  }
87
77
  }
78
+ function cloneProviders(source, target) {
79
+ for (const [key, provider] of source.getAllProviders()) {
80
+ if (provider.isValid(target)) {
81
+ target.register(key, provider.clone());
82
+ }
83
+ }
84
+ }
88
85
  //# sourceMappingURL=Container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare class EmptyContainer implements IContainer {
6
6
  dispose(): void;
7
7
  register(key: DependencyKey, value: IProvider): this;
8
8
  resolve<T>(key: InjectionToken<T>): T;
9
- getProviders(): Map<DependencyKey, IProvider>;
9
+ getAllProviders(): Map<DependencyKey, IProvider>;
10
10
  cloneAndImportProvidersFrom(): void;
11
11
  getInstances(): unknown[];
12
12
  removeScope(): void;
@@ -16,7 +16,7 @@ export class EmptyContainer {
16
16
  resolve(key) {
17
17
  throw new DependencyNotFoundError(`Cannot find ${key.toString()}`);
18
18
  }
19
- getProviders() {
19
+ getAllProviders() {
20
20
  return new Map();
21
21
  }
22
22
  cloneAndImportProvidersFrom() {
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyContainer.js","sourceRoot":"","sources":["../../lib/container/EmptyContainer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,GAAQ;QACb,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,WAAW,CAAC,GAAG,IAAW;QACxB,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,OAAO;QACL,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,GAAkB,EAAE,KAAgB;QAC3C,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,CAAI,GAAsB;QAC/B,MAAM,IAAI,uBAAuB,CAAC,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,YAAY;QACV,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,2BAA2B;QACzB,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG,CAAC,MAAwB;QAC1B,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"EmptyContainer.js","sourceRoot":"","sources":["../../lib/container/EmptyContainer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,GAAQ;QACb,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,WAAW,CAAC,GAAG,IAAW;QACxB,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,OAAO;QACL,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,GAAkB,EAAE,KAAgB;QAC3C,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,CAAI,GAAsB;QAC/B,MAAM,IAAI,uBAAuB,CAAC,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,eAAe;QACb,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,2BAA2B;QACzB,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG,CAAC,MAAwB;QAC1B,MAAM,IAAI,yBAAyB,EAAE,CAAC;IACxC,CAAC;CACF"}
@@ -17,11 +17,10 @@ export interface IContainerModule {
17
17
  export interface IContainer extends Resolvable {
18
18
  createScope(...tags: Tag[]): IContainer;
19
19
  register(key: DependencyKey, value: IProvider): this;
20
- cloneAndImportProvidersFrom(source: IContainer): void;
21
20
  removeScope(child: IContainer): void;
22
21
  getInstances(): unknown[];
23
22
  dispose(): void;
24
23
  use(module: IContainerModule): this;
25
24
  hasTag(tag: Tag): boolean;
26
- getProviders(): Map<DependencyKey, IProvider>;
25
+ getAllProviders(): Map<DependencyKey, IProvider>;
27
26
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "25.0.0",
3
+ "version": "25.0.2",
4
4
  "description": "Typescript IoC container",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -56,5 +56,5 @@
56
56
  "ts-node": "^10.9.1",
57
57
  "typescript": "4.4.3"
58
58
  },
59
- "gitHead": "0761b7a3b4b0e26317ea86906d8ebce0dfab5549"
59
+ "gitHead": "635558679deb76de12606aab5b3cdd27b28219cf"
60
60
  }