ts-ioc-container 20.3.6 → 21.0.0
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/README.md +21 -18
- package/cjm/index.d.ts +1 -1
- package/cjm/index.js +13 -4
- package/cjm/index.js.map +1 -1
- package/cjm/registration/RegistrationBuilder.d.ts +1 -1
- package/cjm/registration/RegistrationBuilder.js +7 -0
- package/cjm/registration/RegistrationBuilder.js.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +2 -2
- package/esm/index.js.map +1 -1
- package/esm/registration/RegistrationBuilder.d.ts +1 -1
- package/esm/registration/RegistrationBuilder.js +4 -1
- package/esm/registration/RegistrationBuilder.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -58,9 +58,21 @@ import { fromClass, fromFn, fromValue } from "ts-ioc-container";
|
|
|
58
58
|
|
|
59
59
|
const container = new Container(injector, { tags: ['root'] });
|
|
60
60
|
container.register('ILogger', fromFn((container, ...args) => new Logger(...args)).build());
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
container.register('
|
|
61
|
+
|
|
62
|
+
// Available only in root scope and all his children
|
|
63
|
+
container.register('ILogger1', fromClass(Logger).forKey('ILogger').perTags(['root']).build());
|
|
64
|
+
|
|
65
|
+
// Singleton per root tag and all his children
|
|
66
|
+
container.register('ILogger1', fromClass(Logger).forKey('ILogger').asSingleton().perTags(['root']).build());
|
|
67
|
+
// OR
|
|
68
|
+
container.register('ILogger1', fromClass(Logger).forKey('ILogger').asSingleton('root').build());
|
|
69
|
+
|
|
70
|
+
// singleton for scope with tag1 or tag2
|
|
71
|
+
container.register('ILogger3', fromClass(Logger).asSingleton('tag1', 'tag2').build());
|
|
72
|
+
|
|
73
|
+
// singleton in every scope
|
|
74
|
+
container.register('ILogger4', fromClass(Logger).withArgs('dev').asSingleton().build());
|
|
75
|
+
|
|
64
76
|
container.register('ILogger5', fromValue(new Logger()).build());
|
|
65
77
|
```
|
|
66
78
|
|
|
@@ -70,16 +82,17 @@ container.register('ILogger5', fromValue(new Logger()).build());
|
|
|
70
82
|
import { asSingleton, perTags, forKey, by } from "ts-ioc-container";
|
|
71
83
|
import { composeDecorators, inject } from "ts-constructor-injector";
|
|
72
84
|
|
|
73
|
-
@asSingleton
|
|
74
|
-
@perTags('root')
|
|
75
85
|
@forKey('IEngine')
|
|
86
|
+
@asSingleton('root')
|
|
76
87
|
class Engine {
|
|
77
88
|
constructor(@inject(by('ILogger')) private logger: ILogger) {
|
|
78
89
|
}
|
|
79
90
|
}
|
|
80
91
|
|
|
92
|
+
// OR
|
|
93
|
+
|
|
81
94
|
const perRoot = composeDecorators(
|
|
82
|
-
asSingleton,
|
|
95
|
+
asSingleton(),
|
|
83
96
|
perTags('root'),
|
|
84
97
|
);
|
|
85
98
|
|
|
@@ -143,22 +156,12 @@ for (const instance of container.getInstances()) {
|
|
|
143
156
|
import { composeDecorators } from "ts-constructor-injector";
|
|
144
157
|
import { forKey } from "ts-ioc-container";
|
|
145
158
|
|
|
146
|
-
|
|
147
|
-
asSingleton,
|
|
148
|
-
perTags('root'),
|
|
149
|
-
);
|
|
150
|
-
|
|
151
|
-
const perHome = composeDecorators(
|
|
152
|
-
asSingleton,
|
|
153
|
-
perTags('home'),
|
|
154
|
-
);
|
|
155
|
-
|
|
156
|
-
@perRoot
|
|
159
|
+
@asSingleton('root')
|
|
157
160
|
@forKey('IEngine')
|
|
158
161
|
class Logger {
|
|
159
162
|
}
|
|
160
163
|
|
|
161
|
-
@
|
|
164
|
+
@asSingleton('home')
|
|
162
165
|
@forKey('IEngine')
|
|
163
166
|
class Engine {
|
|
164
167
|
constructor(@inject(by('ILogger')) private logger: ILogger) {
|
package/cjm/index.d.ts
CHANGED
|
@@ -22,5 +22,5 @@ export declare function fromClass<T>(value: constructor<T>): RegistrationBuilder
|
|
|
22
22
|
export declare function fromValue<T>(value: T): RegistrationBuilder<T>;
|
|
23
23
|
export declare function fromFn<T>(fn: ResolveDependency<T>): RegistrationBuilder<T>;
|
|
24
24
|
export declare const perTags: (...tags: Tag[]) => ClassDecorator;
|
|
25
|
-
export declare const asSingleton: ClassDecorator;
|
|
25
|
+
export declare const asSingleton: (...tags: Tag[]) => ClassDecorator;
|
|
26
26
|
export declare const forKey: (key: ProviderKey) => ClassDecorator;
|
package/cjm/index.js
CHANGED
|
@@ -83,10 +83,19 @@ var perTags = function () {
|
|
|
83
83
|
};
|
|
84
84
|
};
|
|
85
85
|
exports.perTags = perTags;
|
|
86
|
-
var asSingleton = function (
|
|
87
|
-
var
|
|
88
|
-
var
|
|
89
|
-
|
|
86
|
+
var asSingleton = function () {
|
|
87
|
+
var tags = [];
|
|
88
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
89
|
+
tags[_i] = arguments[_i];
|
|
90
|
+
}
|
|
91
|
+
return function (target) {
|
|
92
|
+
var targetClass = target;
|
|
93
|
+
var fn = providerReflector.findReducerOrCreate(targetClass);
|
|
94
|
+
providerReflector.addReducer(targetClass, function (builder) {
|
|
95
|
+
var _a;
|
|
96
|
+
return (_a = fn(builder)).asSingleton.apply(_a, __spreadArray([], __read(tags), false));
|
|
97
|
+
});
|
|
98
|
+
};
|
|
90
99
|
};
|
|
91
100
|
exports.asSingleton = asSingleton;
|
|
92
101
|
var forKey = function (key) {
|
package/cjm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAA+C;AAC/C,8EAA6E;AAE7E,0EAAyE;AAGzE,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAIlB,0EAAyE;AAAhE,8HAAA,qBAAqB,OAAA;AAC9B,yEAAwE;AAA/D,sIAAA,yBAAyB,OAAA;AAClC,6EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAC/B,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,uEAAsE;AAA7D,0HAAA,mBAAmB,OAAA;AAE5B,kDAAqD;AAA5C,0GAAA,aAAa,OAAA;AAEf,IAAM,EAAE,GACX,UAAI,GAAsB;IAAE,cAAkB;SAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;QAAlB,6BAAkB;;IAC9C,OAAA,UAAC,CAAa;QACV,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAY,GAAG,UAAK,IAAI;IAAzB,CAA0B;AAD9B,CAC8B,CAAC;AAHtB,QAAA,EAAE,MAGoB;AAEnC,SAAgB,SAAS,CAAI,KAAqB;IAC9C,OAAO,IAAI,yCAAmB,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChH,CAAC;AAFD,8BAEC;AAED,SAAgB,SAAS,CAAI,KAAQ;IACjC,OAAO,IAAI,yCAAmB,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAFD,8BAEC;AAED,SAAgB,MAAM,CAAI,EAAwB;IAC9C,OAAO,IAAI,yCAAmB,CAAC,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAFD,wBAEC;AAED,IAAM,iBAAiB,GAAG,IAAI,6CAAqB,CAAC,oBAAoB,CAAC,CAAC;AAEnE,IAAM,OAAO,GAChB;IAAC,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,yBAAc;;IACf,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO;;YAAK,OAAA,CAAA,KAAA,EAAE,CAAC,OAAO,CAAC,CAAA,CAAC,OAAO,oCAAI,IAAI;QAA3B,CAA4B,CAAC,CAAC;IACzF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,OAAO,WAMd;AACC,IAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export declare class RegistrationBuilder<T = unknown> {
|
|
|
10
10
|
withArgsFn(argsFn: ArgsFn): this;
|
|
11
11
|
map(reducer: MapFn<RegistrationBuilder<T>>): RegistrationBuilder<T>;
|
|
12
12
|
perTags(...tags: Tag[]): this;
|
|
13
|
-
asSingleton(): this;
|
|
13
|
+
asSingleton(...tags: Tag[]): this;
|
|
14
14
|
forKey(key: ProviderKey): this;
|
|
15
15
|
build(): Registration<T>;
|
|
16
16
|
}
|
|
@@ -33,7 +33,14 @@ var RegistrationBuilder = /** @class */ (function () {
|
|
|
33
33
|
return this;
|
|
34
34
|
};
|
|
35
35
|
RegistrationBuilder.prototype.asSingleton = function () {
|
|
36
|
+
var tags = [];
|
|
37
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
38
|
+
tags[_i] = arguments[_i];
|
|
39
|
+
}
|
|
36
40
|
this.provider = new SingletonProvider_1.SingletonProvider(this.provider);
|
|
41
|
+
if (tags.length > 0) {
|
|
42
|
+
this.provider = new TaggedProvider_1.TaggedProvider(this.provider, tags);
|
|
43
|
+
}
|
|
37
44
|
return this;
|
|
38
45
|
};
|
|
39
46
|
RegistrationBuilder.prototype.forKey = function (key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistrationBuilder.js","sourceRoot":"","sources":["../../lib/registration/RegistrationBuilder.ts"],"names":[],"mappings":";;;AACA,mEAAkE;AAClE,6DAA4D;AAC5D,yDAAgE;AAChE,2EAA0E;AAI1E;IAGI,6BAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAE9C,sCAAQ,GAAR;QAAS,mBAAmB;aAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;YAAnB,8BAAmB;;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wCAAU,GAAV,UAAW,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iCAAG,GAAH,UAAI,OAAsC;QACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,qCAAO,GAAP;QAAQ,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,yCAAW,GAAX;
|
|
1
|
+
{"version":3,"file":"RegistrationBuilder.js","sourceRoot":"","sources":["../../lib/registration/RegistrationBuilder.ts"],"names":[],"mappings":";;;AACA,mEAAkE;AAClE,6DAA4D;AAC5D,yDAAgE;AAChE,2EAA0E;AAI1E;IAGI,6BAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAE9C,sCAAQ,GAAR;QAAS,mBAAmB;aAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;YAAnB,8BAAmB;;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wCAAU,GAAV,UAAW,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iCAAG,GAAH,UAAI,OAAsC;QACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,qCAAO,GAAP;QAAQ,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,yCAAW,GAAX;QAAY,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAC3D;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oCAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,mCAAK,GAAL;QACI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,6CAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;IACL,0BAAC;AAAD,CAAC,AA3CD,IA2CC;AA3CY,kDAAmB"}
|
package/esm/index.d.ts
CHANGED
|
@@ -22,5 +22,5 @@ export declare function fromClass<T>(value: constructor<T>): RegistrationBuilder
|
|
|
22
22
|
export declare function fromValue<T>(value: T): RegistrationBuilder<T>;
|
|
23
23
|
export declare function fromFn<T>(fn: ResolveDependency<T>): RegistrationBuilder<T>;
|
|
24
24
|
export declare const perTags: (...tags: Tag[]) => ClassDecorator;
|
|
25
|
-
export declare const asSingleton: ClassDecorator;
|
|
25
|
+
export declare const asSingleton: (...tags: Tag[]) => ClassDecorator;
|
|
26
26
|
export declare const forKey: (key: ProviderKey) => ClassDecorator;
|
package/esm/index.js
CHANGED
|
@@ -25,10 +25,10 @@ export const perTags = (...tags) => (target) => {
|
|
|
25
25
|
const fn = providerReflector.findReducerOrCreate(targetClass);
|
|
26
26
|
providerReflector.addReducer(targetClass, (builder) => fn(builder).perTags(...tags));
|
|
27
27
|
};
|
|
28
|
-
export const asSingleton = (target) => {
|
|
28
|
+
export const asSingleton = (...tags) => (target) => {
|
|
29
29
|
const targetClass = target;
|
|
30
30
|
const fn = providerReflector.findReducerOrCreate(targetClass);
|
|
31
|
-
providerReflector.addReducer(targetClass, (builder) => fn(builder).asSingleton());
|
|
31
|
+
providerReflector.addReducer(targetClass, (builder) => fn(builder).asSingleton(...tags));
|
|
32
32
|
};
|
|
33
33
|
export const forKey = (key) => (target) => {
|
|
34
34
|
const targetClass = target;
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,CAAC,MAAM,EAAE,GACX,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,EAAE,CACd,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAEnC,MAAM,UAAU,SAAS,CAAI,KAAqB;IAC9C,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAAQ;IACjC,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,EAAwB;IAC9C,OAAO,IAAI,mBAAmB,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,OAAO,GAChB,CAAC,GAAG,IAAW,EAAkB,EAAE,CACnC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACzF,CAAC,CAAC;AACN,MAAM,CAAC,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,CAAC,MAAM,EAAE,GACX,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,EAAE,CACd,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAEnC,MAAM,UAAU,SAAS,CAAI,KAAqB;IAC9C,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAAQ;IACjC,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,EAAwB;IAC9C,OAAO,IAAI,mBAAmB,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,OAAO,GAChB,CAAC,GAAG,IAAW,EAAkB,EAAE,CACnC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACzF,CAAC,CAAC;AACN,MAAM,CAAC,MAAM,WAAW,GACpB,CAAC,GAAG,IAAW,EAAkB,EAAE,CACnC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC;AACN,MAAM,CAAC,MAAM,MAAM,GACf,CAAC,GAAgB,EAAkB,EAAE,CACrC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC"}
|
|
@@ -10,7 +10,7 @@ export declare class RegistrationBuilder<T = unknown> {
|
|
|
10
10
|
withArgsFn(argsFn: ArgsFn): this;
|
|
11
11
|
map(reducer: MapFn<RegistrationBuilder<T>>): RegistrationBuilder<T>;
|
|
12
12
|
perTags(...tags: Tag[]): this;
|
|
13
|
-
asSingleton(): this;
|
|
13
|
+
asSingleton(...tags: Tag[]): this;
|
|
14
14
|
forKey(key: ProviderKey): this;
|
|
15
15
|
build(): Registration<T>;
|
|
16
16
|
}
|
|
@@ -21,8 +21,11 @@ export class RegistrationBuilder {
|
|
|
21
21
|
this.provider = new TaggedProvider(this.provider, tags);
|
|
22
22
|
return this;
|
|
23
23
|
}
|
|
24
|
-
asSingleton() {
|
|
24
|
+
asSingleton(...tags) {
|
|
25
25
|
this.provider = new SingletonProvider(this.provider);
|
|
26
|
+
if (tags.length > 0) {
|
|
27
|
+
this.provider = new TaggedProvider(this.provider, tags);
|
|
28
|
+
}
|
|
26
29
|
return this;
|
|
27
30
|
}
|
|
28
31
|
forKey(key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistrationBuilder.js","sourceRoot":"","sources":["../../lib/registration/RegistrationBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAU,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,MAAM,OAAO,mBAAmB;IAG5B,YAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAE9C,QAAQ,CAAC,GAAG,SAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,OAAsC;QACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,IAAW;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;
|
|
1
|
+
{"version":3,"file":"RegistrationBuilder.js","sourceRoot":"","sources":["../../lib/registration/RegistrationBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAU,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,MAAM,OAAO,mBAAmB;IAG5B,YAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAE9C,QAAQ,CAAC,GAAG,SAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,OAAsC;QACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,IAAW;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,GAAG,IAAW;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAC3D;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,qBAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ioc-container",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "21.0.0",
|
|
4
4
|
"description": "Typescript IoC container",
|
|
5
5
|
"author": "ibabkin <igba14@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/IgorBabkin/ts-ioc-container/tree/master/packages/ts-ioc-container",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"ts-jest": "27.0.5",
|
|
49
49
|
"typescript": "4.4.3"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "ad1e7057ed220c3aa27db82ec3cc2bd314029e7d"
|
|
52
52
|
}
|