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.
- package/cjm/container/AutoMockedContainer.d.ts +1 -1
- package/cjm/container/AutoMockedContainer.js +1 -1
- package/cjm/container/AutoMockedContainer.js.map +1 -1
- package/cjm/container/Container.d.ts +1 -5
- package/cjm/container/Container.js +10 -13
- package/cjm/container/Container.js.map +1 -1
- package/cjm/container/EmptyContainer.d.ts +1 -1
- package/cjm/container/EmptyContainer.js +1 -1
- package/cjm/container/EmptyContainer.js.map +1 -1
- package/cjm/container/IContainer.d.ts +1 -2
- package/esm/container/AutoMockedContainer.d.ts +1 -1
- package/esm/container/AutoMockedContainer.js +1 -1
- package/esm/container/AutoMockedContainer.js.map +1 -1
- package/esm/container/Container.d.ts +1 -5
- package/esm/container/Container.js +10 -13
- package/esm/container/Container.js.map +1 -1
- package/esm/container/EmptyContainer.d.ts +1 -1
- package/esm/container/EmptyContainer.js +1 -1
- package/esm/container/EmptyContainer.js.map +1 -1
- package/esm/container/IContainer.d.ts +1 -2
- package/package.json +2 -2
|
@@ -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
|
-
|
|
11
|
+
getAllProviders(): Map<DependencyKey, IProvider>;
|
|
12
12
|
hasTag(tag: Tag): boolean;
|
|
13
13
|
}
|
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
69
|
-
return new Map([...this.parent.
|
|
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":";;;AAAA,6CAAuH;AAGvH,qDAAkD;AAClD,qEAAkE;AAElE,MAAa,SAAS;IAQpB,YAA6B,QAAmB,EAAE,UAAiD,EAAE;;QAAxE,aAAQ,GAAR,QAAQ,CAAW;QAPvC,cAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;QAEjD,eAAU,GAAG,KAAK,CAAC;QAEnB,WAAM,GAAoB,IAAI,GAAG,EAAE,CAAC;QACpC,cAAS,GAAiB,IAAI,GAAG,EAAE,CAAC;QAG1C,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI,+BAAc,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ,CAAC,GAAkB,EAAE,QAAmB;QAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAI,KAAwB,EAAE,GAAG,IAAe;QACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,QAAQ,CAAC;SACjB;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAA6B,CAAC;QACvE,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5G,CAAC;IAED,WAAW,CAAC,GAAG,IAAW;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,
|
|
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
|
-
|
|
9
|
+
getAllProviders(): Map<DependencyKey, IProvider>;
|
|
10
10
|
cloneAndImportProvidersFrom(): void;
|
|
11
11
|
getInstances(): unknown[];
|
|
12
12
|
removeScope(): void;
|
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
|
|
11
|
+
getAllProviders(): Map<DependencyKey, IProvider>;
|
|
12
12
|
hasTag(tag: Tag): boolean;
|
|
13
13
|
}
|
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
66
|
-
return new Map([...this.parent.
|
|
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":"AAAA,OAAO,EAA+D,aAAa,EAAe,MAAM,cAAc,CAAC;AAGvH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,OAAO,SAAS;IAQpB,YAA6B,QAAmB,EAAE,UAAiD,EAAE;;QAAxE,aAAQ,GAAR,QAAQ,CAAW;QAPvC,cAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;QAEjD,eAAU,GAAG,KAAK,CAAC;QAEnB,WAAM,GAAoB,IAAI,GAAG,EAAE,CAAC;QACpC,cAAS,GAAiB,IAAI,GAAG,EAAE,CAAC;QAG1C,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI,cAAc,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ,CAAC,GAAkB,EAAE,QAAmB;QAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAI,KAAwB,EAAE,GAAG,IAAe;QACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,QAAQ,CAAC;SACjB;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAA6B,CAAC;QACvE,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5G,CAAC;IAED,WAAW,CAAC,GAAG,IAAW;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,
|
|
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
|
-
|
|
9
|
+
getAllProviders(): Map<DependencyKey, IProvider>;
|
|
10
10
|
cloneAndImportProvidersFrom(): void;
|
|
11
11
|
getInstances(): unknown[];
|
|
12
12
|
removeScope(): void;
|
|
@@ -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,
|
|
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
|
-
|
|
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.
|
|
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": "
|
|
59
|
+
"gitHead": "635558679deb76de12606aab5b3cdd27b28219cf"
|
|
60
60
|
}
|