ts-ioc-container 6.22.1 → 6.22.5
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/core/providers/SingletonProvider.d.ts +0 -1
- package/cjm/core/providers/SingletonProvider.d.ts.map +1 -1
- package/cjm/core/providers/SingletonProvider.js +11 -5
- package/cjm/core/providers/SingletonProvider.js.map +1 -1
- package/cjm/features/ioc/IocInjector.d.ts.map +1 -1
- package/cjm/features/ioc/IocInjector.js +2 -1
- package/cjm/features/ioc/IocInjector.js.map +1 -1
- package/esm/core/providers/SingletonProvider.d.ts +0 -1
- package/esm/core/providers/SingletonProvider.d.ts.map +1 -1
- package/esm/core/providers/SingletonProvider.js +10 -5
- package/esm/core/providers/SingletonProvider.js.map +1 -1
- package/esm/features/ioc/IocInjector.d.ts.map +1 -1
- package/esm/features/ioc/IocInjector.js +2 -1
- package/esm/features/ioc/IocInjector.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,6 @@ import { IServiceLocator } from '../IServiceLocator';
|
|
|
3
3
|
export declare class SingletonProvider<T> implements IProvider<T> {
|
|
4
4
|
private readonly decorated;
|
|
5
5
|
private instance;
|
|
6
|
-
private hasInstance;
|
|
7
6
|
constructor(decorated: IProvider<T>);
|
|
8
7
|
clone(): IProvider<T>;
|
|
9
8
|
dispose(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingletonProvider.d.ts","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"SingletonProvider.d.ts","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAOrD,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAGzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,QAAQ,CAAuB;gBAEV,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpD,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;IAIrB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;CASvD"}
|
|
@@ -27,11 +27,16 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
28
|
exports.SingletonProvider = void 0;
|
|
29
29
|
var ProviderNotClonedError_1 = require("../../errors/ProviderNotClonedError");
|
|
30
|
+
var Box = /** @class */ (function () {
|
|
31
|
+
function Box(value) {
|
|
32
|
+
this.value = value;
|
|
33
|
+
}
|
|
34
|
+
return Box;
|
|
35
|
+
}());
|
|
30
36
|
var SingletonProvider = /** @class */ (function () {
|
|
31
37
|
function SingletonProvider(decorated) {
|
|
32
38
|
this.decorated = decorated;
|
|
33
39
|
this.instance = null;
|
|
34
|
-
this.hasInstance = false;
|
|
35
40
|
}
|
|
36
41
|
SingletonProvider.prototype.clone = function () {
|
|
37
42
|
throw new ProviderNotClonedError_1.ProviderNotClonedError('SingletonProvider cannot be cloned');
|
|
@@ -46,11 +51,12 @@ var SingletonProvider = /** @class */ (function () {
|
|
|
46
51
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
47
52
|
args[_i - 1] = arguments[_i];
|
|
48
53
|
}
|
|
49
|
-
if (
|
|
50
|
-
this.
|
|
51
|
-
this.instance =
|
|
54
|
+
if (this.instance === null) {
|
|
55
|
+
var instance = (_a = this.decorated).resolve.apply(_a, __spreadArray([locator], __read(args), false));
|
|
56
|
+
this.instance = new Box(instance);
|
|
52
57
|
}
|
|
53
|
-
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
59
|
+
return this.instance.value;
|
|
54
60
|
};
|
|
55
61
|
return SingletonProvider;
|
|
56
62
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,8EAA6E;AAE7E;
|
|
1
|
+
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,8EAA6E;AAE7E;IACI,aAAmB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;IACnC,UAAC;AAAD,CAAC,AAFD,IAEC;AAED;IAGI,2BAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAF5C,aAAQ,GAAkB,IAAI,CAAC;IAEgB,CAAC;IAExD,iCAAK,GAAL;QACI,MAAM,IAAI,+CAAsB,CAAC,oCAAoC,CAAC,CAAC;IAC3E,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,mCAAO,GAAP,UAAQ,OAAwB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,IAAM,QAAQ,GAAG,CAAA,KAAA,IAAI,CAAC,SAAS,CAAA,CAAC,OAAO,0BAAC,OAAO,UAAK,IAAI,UAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,oEAAoE;QACpE,OAAO,IAAI,CAAC,QAAS,CAAC,KAAU,CAAC;IACrC,CAAC;IACL,wBAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,8CAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IocInjector.d.ts","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,qBAAa,WAAY,YAAW,SAAS;IAErC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,OAAO,EAAE,eAAe,EACxB,iBAAiB,EAAE,wBAAwB;IAGhE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"IocInjector.d.ts","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,qBAAa,WAAY,YAAW,SAAS;IAErC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,OAAO,EAAE,eAAe,EACxB,iBAAiB,EAAE,wBAAwB;IAGhE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;IAMpD,OAAO,IAAI,IAAI;CAClB"}
|
|
@@ -39,7 +39,8 @@ var IocInjector = /** @class */ (function () {
|
|
|
39
39
|
deps[_i - 1] = arguments[_i];
|
|
40
40
|
}
|
|
41
41
|
var injectionFns = this.metadataCollector.getInjectionFns(value);
|
|
42
|
-
|
|
42
|
+
var args = (0, helpers_1.merge)(injectionFns, deps.map(helpers_1.constant)).map(function (fn) { return fn(_this.locator); });
|
|
43
|
+
return new (value.bind.apply(value, __spreadArray([void 0], __read(args), false)))();
|
|
43
44
|
};
|
|
44
45
|
IocInjector.prototype.dispose = function () { };
|
|
45
46
|
return IocInjector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iDAAwD;AAGxD;IACI,qBACqB,OAAwB,EACxB,iBAA2C;QAD3C,YAAO,GAAP,OAAO,CAAiB;QACxB,sBAAiB,GAAjB,iBAAiB,CAA0B;IAC7D,CAAC;IAEJ,6BAAO,GAAP,UAAW,KAAqB;QAAhC,
|
|
1
|
+
{"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iDAAwD;AAGxD;IACI,qBACqB,OAAwB,EACxB,iBAA2C;QAD3C,YAAO,GAAP,OAAO,CAAiB;QACxB,sBAAiB,GAAjB,iBAAiB,CAA0B;IAC7D,CAAC;IAEJ,6BAAO,GAAP,UAAW,KAAqB;QAAhC,iBAIC;QAJiC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC5C,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnE,IAAM,IAAI,GAAG,IAAA,eAAK,EAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,KAAI,CAAC,OAAO,CAAC,EAAhB,CAAgB,CAAC,CAAC;QACnF,YAAW,KAAK,YAAL,KAAK,iCAAI,IAAI,cAAE;IAC9B,CAAC;IAED,6BAAO,GAAP,cAAiB,CAAC;IACtB,kBAAC;AAAD,CAAC,AAbD,IAaC;AAbY,kCAAW"}
|
|
@@ -3,7 +3,6 @@ import { IServiceLocator } from '../IServiceLocator';
|
|
|
3
3
|
export declare class SingletonProvider<T> implements IProvider<T> {
|
|
4
4
|
private readonly decorated;
|
|
5
5
|
private instance;
|
|
6
|
-
private hasInstance;
|
|
7
6
|
constructor(decorated: IProvider<T>);
|
|
8
7
|
clone(): IProvider<T>;
|
|
9
8
|
dispose(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingletonProvider.d.ts","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"SingletonProvider.d.ts","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAOrD,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAGzC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,QAAQ,CAAuB;gBAEV,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpD,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC;IAIrB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;CASvD"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { ProviderNotClonedError } from '../../errors/ProviderNotClonedError';
|
|
2
|
+
class Box {
|
|
3
|
+
constructor(value) {
|
|
4
|
+
this.value = value;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
2
7
|
export class SingletonProvider {
|
|
3
8
|
constructor(decorated) {
|
|
4
9
|
this.decorated = decorated;
|
|
5
10
|
this.instance = null;
|
|
6
|
-
this.hasInstance = false;
|
|
7
11
|
}
|
|
8
12
|
clone() {
|
|
9
13
|
throw new ProviderNotClonedError('SingletonProvider cannot be cloned');
|
|
@@ -13,11 +17,12 @@ export class SingletonProvider {
|
|
|
13
17
|
this.decorated.dispose();
|
|
14
18
|
}
|
|
15
19
|
resolve(locator, ...args) {
|
|
16
|
-
if (
|
|
17
|
-
this.
|
|
18
|
-
this.instance =
|
|
20
|
+
if (this.instance === null) {
|
|
21
|
+
const instance = this.decorated.resolve(locator, ...args);
|
|
22
|
+
this.instance = new Box(instance);
|
|
19
23
|
}
|
|
20
|
-
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
25
|
+
return this.instance.value;
|
|
21
26
|
}
|
|
22
27
|
}
|
|
23
28
|
//# sourceMappingURL=SingletonProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,MAAM,OAAO,iBAAiB;
|
|
1
|
+
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/core/providers/SingletonProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,MAAM,GAAG;IACL,YAAmB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;CAClC;AAED,MAAM,OAAO,iBAAiB;IAG1B,YAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAF5C,aAAQ,GAAkB,IAAI,CAAC;IAEgB,CAAC;IAExD,KAAK;QACD,MAAM,IAAI,sBAAsB,CAAC,oCAAoC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,OAAwB,EAAE,GAAG,IAAW;QAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,oEAAoE;QACpE,OAAO,IAAI,CAAC,QAAS,CAAC,KAAU,CAAC;IACrC,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IocInjector.d.ts","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,qBAAa,WAAY,YAAW,SAAS;IAErC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,OAAO,EAAE,eAAe,EACxB,iBAAiB,EAAE,wBAAwB;IAGhE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"IocInjector.d.ts","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,qBAAa,WAAY,YAAW,SAAS;IAErC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,OAAO,EAAE,eAAe,EACxB,iBAAiB,EAAE,wBAAwB;IAGhE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;IAMpD,OAAO,IAAI,IAAI;CAClB"}
|
|
@@ -6,7 +6,8 @@ export class IocInjector {
|
|
|
6
6
|
}
|
|
7
7
|
resolve(value, ...deps) {
|
|
8
8
|
const injectionFns = this.metadataCollector.getInjectionFns(value);
|
|
9
|
-
|
|
9
|
+
const args = merge(injectionFns, deps.map(constant)).map((fn) => fn(this.locator));
|
|
10
|
+
return new value(...args);
|
|
10
11
|
}
|
|
11
12
|
dispose() { }
|
|
12
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,OAAO,WAAW;IACpB,YACqB,OAAwB,EACxB,iBAA2C;QAD3C,YAAO,GAAP,OAAO,CAAiB;QACxB,sBAAiB,GAAjB,iBAAiB,CAA0B;IAC7D,CAAC;IAEJ,OAAO,CAAI,KAAqB,EAAE,GAAG,IAAW;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnE,
|
|
1
|
+
{"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,OAAO,WAAW;IACpB,YACqB,OAAwB,EACxB,iBAA2C;QAD3C,YAAO,GAAP,OAAO,CAAiB;QACxB,sBAAiB,GAAjB,iBAAiB,CAA0B;IAC7D,CAAC;IAEJ,OAAO,CAAI,KAAqB,EAAE,GAAG,IAAW;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACnF,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,KAAU,CAAC;CACrB"}
|