ts-ioc-container 13.0.3 → 13.2.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/cjm/core/ServiceLocator.d.ts +2 -0
- package/cjm/core/ServiceLocator.js +11 -0
- package/cjm/core/ServiceLocator.js.map +1 -1
- package/cjm/core/provider/Provider.d.ts +2 -2
- package/cjm/core/provider/Provider.js +1 -1
- package/cjm/core/provider/Provider.js.map +1 -1
- package/cjm/errors/LocatorDisposedError.d.ts +4 -0
- package/cjm/errors/LocatorDisposedError.js +30 -0
- package/cjm/errors/LocatorDisposedError.js.map +1 -0
- package/cjm/features/container/Container.d.ts +0 -2
- package/cjm/features/container/Container.js +0 -11
- package/cjm/features/container/Container.js.map +1 -1
- package/cjm/features/providers/SingletonProvider.js +0 -1
- package/cjm/features/providers/SingletonProvider.js.map +1 -1
- package/cjm/index.d.ts +1 -0
- package/cjm/index.js +3 -1
- package/cjm/index.js.map +1 -1
- package/esm/core/ServiceLocator.d.ts +2 -0
- package/esm/core/ServiceLocator.js +11 -0
- package/esm/core/ServiceLocator.js.map +1 -1
- package/esm/core/provider/Provider.d.ts +2 -2
- package/esm/core/provider/Provider.js +1 -1
- package/esm/core/provider/Provider.js.map +1 -1
- package/esm/errors/LocatorDisposedError.d.ts +4 -0
- package/esm/errors/LocatorDisposedError.js +8 -0
- package/esm/errors/LocatorDisposedError.js.map +1 -0
- package/esm/features/container/Container.d.ts +0 -2
- package/esm/features/container/Container.js +0 -7
- package/esm/features/container/Container.js.map +1 -1
- package/esm/features/providers/SingletonProvider.js +0 -1
- package/esm/features/providers/SingletonProvider.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -9,6 +9,7 @@ export declare class ServiceLocator implements IServiceLocator, ScopeOptions {
|
|
|
9
9
|
level: number;
|
|
10
10
|
tags: Tag[];
|
|
11
11
|
private hook;
|
|
12
|
+
private isDisposed;
|
|
12
13
|
constructor(injector: IInjector);
|
|
13
14
|
setParent(parent: IServiceLocator): this;
|
|
14
15
|
setTags(tags: Tag[]): this;
|
|
@@ -20,4 +21,5 @@ export declare class ServiceLocator implements IServiceLocator, ScopeOptions {
|
|
|
20
21
|
entries(): Array<[ProviderKey, IProvider<any>]>;
|
|
21
22
|
dispose(): void;
|
|
22
23
|
map<T extends IServiceLocator>(transform: (l: IServiceLocator) => T): T;
|
|
24
|
+
private validateLocator;
|
|
23
25
|
}
|
|
@@ -41,6 +41,7 @@ var IServiceLocator_1 = require("./IServiceLocator");
|
|
|
41
41
|
var EmptyServiceLocator_1 = require("./EmptyServiceLocator");
|
|
42
42
|
var IInstanceHook_1 = require("./IInstanceHook");
|
|
43
43
|
var ProviderRepo_1 = require("./ProviderRepo");
|
|
44
|
+
var LocatorDisposedError_1 = require("../errors/LocatorDisposedError");
|
|
44
45
|
var ServiceLocator = /** @class */ (function () {
|
|
45
46
|
function ServiceLocator(injector) {
|
|
46
47
|
this.injector = injector;
|
|
@@ -49,6 +50,7 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
49
50
|
this.level = 0;
|
|
50
51
|
this.tags = [];
|
|
51
52
|
this.hook = IInstanceHook_1.emptyHook;
|
|
53
|
+
this.isDisposed = false;
|
|
52
54
|
}
|
|
53
55
|
ServiceLocator.prototype.setParent = function (parent) {
|
|
54
56
|
this.parent = parent;
|
|
@@ -68,6 +70,7 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
68
70
|
return this;
|
|
69
71
|
};
|
|
70
72
|
ServiceLocator.prototype.register = function (key, provider) {
|
|
73
|
+
this.validateLocator();
|
|
71
74
|
this.providers.set(key, provider);
|
|
72
75
|
};
|
|
73
76
|
ServiceLocator.prototype.resolve = function (key) {
|
|
@@ -76,6 +79,7 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
76
79
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
77
80
|
args[_i - 1] = arguments[_i];
|
|
78
81
|
}
|
|
82
|
+
this.validateLocator();
|
|
79
83
|
if ((0, IServiceLocator_1.isProviderKey)(key)) {
|
|
80
84
|
var provider = this.providers.get(key);
|
|
81
85
|
return (provider === null || provider === void 0 ? void 0 : provider.isValid(this))
|
|
@@ -88,6 +92,7 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
88
92
|
var e_1, _a;
|
|
89
93
|
if (tags === void 0) { tags = []; }
|
|
90
94
|
if (parent === void 0) { parent = this; }
|
|
95
|
+
this.validateLocator();
|
|
91
96
|
var scope = new ServiceLocator(this.injector)
|
|
92
97
|
.setParent(parent)
|
|
93
98
|
.setLevel(this.level + 1)
|
|
@@ -114,6 +119,7 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
114
119
|
return Array.from(new Map(__spreadArray(__spreadArray([], __read(this.parent.entries()), false), __read(this.providers.entries()), false)).entries());
|
|
115
120
|
};
|
|
116
121
|
ServiceLocator.prototype.dispose = function () {
|
|
122
|
+
this.isDisposed = true;
|
|
117
123
|
this.parent = new EmptyServiceLocator_1.EmptyServiceLocator();
|
|
118
124
|
this.providers.dispose();
|
|
119
125
|
this.hook.dispose();
|
|
@@ -122,6 +128,11 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
122
128
|
this.parent = transform(this.parent);
|
|
123
129
|
return transform(this);
|
|
124
130
|
};
|
|
131
|
+
ServiceLocator.prototype.validateLocator = function () {
|
|
132
|
+
if (this.isDisposed) {
|
|
133
|
+
throw new LocatorDisposedError_1.LocatorDisposedError("Locator is already disposed");
|
|
134
|
+
}
|
|
135
|
+
};
|
|
125
136
|
return ServiceLocator;
|
|
126
137
|
}());
|
|
127
138
|
exports.ServiceLocator = ServiceLocator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAgG;AAGhG,6DAA4D;AAC5D,iDAA2D;AAC3D,+CAA8C;
|
|
1
|
+
{"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { constructor } from '../../helpers/types';
|
|
2
|
-
import { IProvider, ResolveDependency
|
|
2
|
+
import { IProvider, ResolveDependency } from './IProvider';
|
|
3
3
|
import { Resolveable } from '../IServiceLocator';
|
|
4
4
|
export declare class Provider<T> implements IProvider<T> {
|
|
5
5
|
private readonly resolveDependency;
|
|
@@ -9,5 +9,5 @@ export declare class Provider<T> implements IProvider<T> {
|
|
|
9
9
|
clone(): Provider<T>;
|
|
10
10
|
resolve(locator: Resolveable, ...args: any[]): T;
|
|
11
11
|
dispose(): void;
|
|
12
|
-
isValid(
|
|
12
|
+
isValid(): boolean;
|
|
13
13
|
}
|
|
@@ -53,7 +53,7 @@ var Provider = /** @class */ (function () {
|
|
|
53
53
|
return this.resolveDependency.apply(this, __spreadArray([locator], __read(args), false));
|
|
54
54
|
};
|
|
55
55
|
Provider.prototype.dispose = function () { };
|
|
56
|
-
Provider.prototype.isValid = function (
|
|
56
|
+
Provider.prototype.isValid = function () {
|
|
57
57
|
return true;
|
|
58
58
|
};
|
|
59
59
|
return Provider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;IASI,kBAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IARjE,kBAAS,GAAhB,UAAoB,KAAqB;QACrC,OAAO,IAAI,QAAQ,CAAC,UAAC,CAAC;YAAE,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,6BAAO;;YAAK,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAS,KAAK,UAAK,IAAI;QAAxB,CAAyB,CAAC,CAAC;IACnE,CAAC;IAEM,kBAAS,GAAhB,UAAoB,KAAQ;QACxB,OAAO,IAAI,QAAQ,CAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC;IACrC,CAAC;IAID,wBAAK,GAAL;QACI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,0BAAO,GAAP,UAAQ,OAAoB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACxC,OAAO,IAAI,CAAC,iBAAiB,OAAtB,IAAI,iBAAmB,OAAO,UAAK,IAAI,WAAE;IACpD,CAAC;IAED,0BAAO,GAAP,cAAiB,CAAC;IAElB,0BAAO,GAAP
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;IASI,kBAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IARjE,kBAAS,GAAhB,UAAoB,KAAqB;QACrC,OAAO,IAAI,QAAQ,CAAC,UAAC,CAAC;YAAE,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,6BAAO;;YAAK,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAS,KAAK,UAAK,IAAI;QAAxB,CAAyB,CAAC,CAAC;IACnE,CAAC;IAEM,kBAAS,GAAhB,UAAoB,KAAQ;QACxB,OAAO,IAAI,QAAQ,CAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC;IACrC,CAAC;IAID,wBAAK,GAAL;QACI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,0BAAO,GAAP,UAAQ,OAAoB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACxC,OAAO,IAAI,CAAC,iBAAiB,OAAtB,IAAI,iBAAmB,OAAO,UAAK,IAAI,WAAE;IACpD,CAAC;IAED,0BAAO,GAAP,cAAiB,CAAC;IAElB,0BAAO,GAAP;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IACL,eAAC;AAAD,CAAC,AAxBD,IAwBC;AAxBY,4BAAQ"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.LocatorDisposedError = void 0;
|
|
19
|
+
var LocatorDisposedError = /** @class */ (function (_super) {
|
|
20
|
+
__extends(LocatorDisposedError, _super);
|
|
21
|
+
function LocatorDisposedError(message) {
|
|
22
|
+
var _this = _super.call(this, message) || this;
|
|
23
|
+
_this.name = 'LocatorDisposedError';
|
|
24
|
+
Object.setPrototypeOf(_this, LocatorDisposedError.prototype);
|
|
25
|
+
return _this;
|
|
26
|
+
}
|
|
27
|
+
return LocatorDisposedError;
|
|
28
|
+
}(Error));
|
|
29
|
+
exports.LocatorDisposedError = LocatorDisposedError;
|
|
30
|
+
//# sourceMappingURL=LocatorDisposedError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocatorDisposedError.js","sourceRoot":"","sources":["../../lib/errors/LocatorDisposedError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;IAA0C,wCAAK;IAG3C,8BAAY,OAAe;QAA3B,YACI,kBAAM,OAAO,CAAC,SAGjB;QAND,UAAI,GAAG,sBAAsB,CAAC;QAK1B,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;;IAChE,CAAC;IACL,2BAAC;AAAD,CAAC,AARD,CAA0C,KAAK,GAQ9C;AARY,oDAAoB"}
|
|
@@ -4,7 +4,6 @@ import { IContainer } from './IContainer';
|
|
|
4
4
|
import { IContainerProvider } from './IContainerProvider';
|
|
5
5
|
import { IInjector } from '../../core/IInjector';
|
|
6
6
|
import { IInstanceHook } from '../../core/IInstanceHook';
|
|
7
|
-
import { constructor } from '../../helpers/types';
|
|
8
7
|
export declare class Container implements IContainer {
|
|
9
8
|
private locator;
|
|
10
9
|
static fromInjector(injector: IInjector): Container;
|
|
@@ -13,6 +12,5 @@ export declare class Container implements IContainer {
|
|
|
13
12
|
createScope(tags?: Tag[]): IContainer;
|
|
14
13
|
register(provider: IContainerProvider<unknown>): this;
|
|
15
14
|
resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
|
|
16
|
-
resolveDecorated<T>(...Constructors: constructor<T>[]): T | undefined;
|
|
17
15
|
dispose(): void;
|
|
18
16
|
}
|
|
@@ -53,17 +53,6 @@ var Container = /** @class */ (function () {
|
|
|
53
53
|
}
|
|
54
54
|
return (_a = this.locator).resolve.apply(_a, __spreadArray([key], __read(args), false));
|
|
55
55
|
};
|
|
56
|
-
Container.prototype.resolveDecorated = function () {
|
|
57
|
-
var Constructors = [];
|
|
58
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
59
|
-
Constructors[_i] = arguments[_i];
|
|
60
|
-
}
|
|
61
|
-
if (Constructors.length === 0) {
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
var _a = __read(Constructors), first = _a[0], rest = _a.slice(1);
|
|
65
|
-
return this.locator.resolve(first, this.resolveDecorated.apply(this, __spreadArray([], __read(rest), false)));
|
|
66
|
-
};
|
|
67
56
|
Container.prototype.dispose = function () {
|
|
68
57
|
this.locator.dispose();
|
|
69
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/features/container/Container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4DAA2D;
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/features/container/Container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4DAA2D;AAG3D;IAKI,mBAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAJzC,sBAAY,GAAnB,UAAoB,QAAmB;QACnC,OAAO,IAAI,SAAS,CAAC,IAAI,+BAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAID,2BAAO,GAAP,UAAQ,IAAmB;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAW,GAAX,UAAY,IAAY;QACpB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,4BAAQ,GAAR,UAAS,QAAqC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,2BAAO,GAAP,UAAW,GAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC7C,OAAO,CAAA,KAAA,IAAI,CAAC,OAAO,CAAA,CAAC,OAAO,0BAAC,GAAG,UAAK,IAAI,WAAE;IAC9C,CAAC;IAED,2BAAO,GAAP;QACI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACL,gBAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BY,8BAAS"}
|
|
@@ -68,7 +68,6 @@ var SingletonProvider = /** @class */ (function (_super) {
|
|
|
68
68
|
var instance = (_a = this.provider).resolve.apply(_a, __spreadArray([locator], __read(args), false));
|
|
69
69
|
this.instance = new types_1.Box(instance);
|
|
70
70
|
}
|
|
71
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
72
71
|
return this.instance.value;
|
|
73
72
|
};
|
|
74
73
|
return SingletonProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/features/providers/SingletonProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA0C;AAC1C,2EAA0E;AAG1E;IAA0C,qCAAoB;IAG1D,2BAA6B,QAAsB;QAAnD,YACI,kBAAM,QAAQ,CAAC,SAClB;QAF4B,cAAQ,GAAR,QAAQ,CAAc;QAF3C,cAAQ,GAAkB,IAAI,CAAC;;IAIvC,CAAC;IAED,iCAAK,GAAL;QACI,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,mCAAO,GAAP,UAAQ,OAAoB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACxC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,IAAM,QAAQ,GAAG,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,0BAAC,OAAO,UAAK,IAAI,UAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,
|
|
1
|
+
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/features/providers/SingletonProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA0C;AAC1C,2EAA0E;AAG1E;IAA0C,qCAAoB;IAG1D,2BAA6B,QAAsB;QAAnD,YACI,kBAAM,QAAQ,CAAC,SAClB;QAF4B,cAAQ,GAAR,QAAQ,CAAc;QAF3C,cAAQ,GAAkB,IAAI,CAAC;;IAIvC,CAAC;IAED,iCAAK,GAAL;QACI,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,mCAAO,GAAP,UAAQ,OAAoB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACxC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,IAAM,QAAQ,GAAG,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,0BAAC,OAAO,UAAK,IAAI,UAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAU,CAAC;IACpC,CAAC;IACL,wBAAC;AAAD,CAAC,AAxBD,CAA0C,qCAAiB,GAwB1D;AAxBY,8CAAiB"}
|
package/cjm/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export { createMethodHookDecorator } from './features/instanceHook/decorators';
|
|
|
13
13
|
export { InjectionToken } from './core/IServiceLocator';
|
|
14
14
|
export { ProviderNotFoundError } from './errors/ProviderNotFoundError';
|
|
15
15
|
export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
|
|
16
|
+
export { LocatorDisposedError } from './errors/LocatorDisposedError';
|
|
16
17
|
export { Provider } from './core/provider/Provider';
|
|
17
18
|
export { ArgsProvider, ArgsFn } from './core/provider/ArgsProvider';
|
|
18
19
|
export { IInstanceHook } from './core/IInstanceHook';
|
package/cjm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isProviderKey = exports.createAddKeysDecorator = exports.createArgsFnDecorator = exports.createTagsDecorator = exports.createSingletonDecorator = exports.createLevelDecorator = exports.ProvidersMetadataCollector = exports.fromClassArray = exports.fromValue = exports.fromFn = exports.fromClass = exports.ProviderBuilder = exports.SingletonProvider = exports.MockedServiceLocator = exports.LevelProvider = exports.ProxyInjector = exports.TaggedProvider = exports.ArgsProvider = exports.Provider = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.createMethodHookDecorator = exports.MethodsMetadataCollector = exports.SimpleInjector = exports.Container = exports.ServiceLocator = void 0;
|
|
3
|
+
exports.isProviderKey = exports.createAddKeysDecorator = exports.createArgsFnDecorator = exports.createTagsDecorator = exports.createSingletonDecorator = exports.createLevelDecorator = exports.ProvidersMetadataCollector = exports.fromClassArray = exports.fromValue = exports.fromFn = exports.fromClass = exports.ProviderBuilder = exports.SingletonProvider = exports.MockedServiceLocator = exports.LevelProvider = exports.ProxyInjector = exports.TaggedProvider = exports.ArgsProvider = exports.Provider = exports.LocatorDisposedError = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.createMethodHookDecorator = exports.MethodsMetadataCollector = exports.SimpleInjector = exports.Container = exports.ServiceLocator = void 0;
|
|
4
4
|
var ServiceLocator_1 = require("./core/ServiceLocator");
|
|
5
5
|
Object.defineProperty(exports, "ServiceLocator", { enumerable: true, get: function () { return ServiceLocator_1.ServiceLocator; } });
|
|
6
6
|
var Container_1 = require("./features/container/Container");
|
|
@@ -15,6 +15,8 @@ var ProviderNotFoundError_1 = require("./errors/ProviderNotFoundError");
|
|
|
15
15
|
Object.defineProperty(exports, "ProviderNotFoundError", { enumerable: true, get: function () { return ProviderNotFoundError_1.ProviderNotFoundError; } });
|
|
16
16
|
var MethodNotImplementedError_1 = require("./errors/MethodNotImplementedError");
|
|
17
17
|
Object.defineProperty(exports, "MethodNotImplementedError", { enumerable: true, get: function () { return MethodNotImplementedError_1.MethodNotImplementedError; } });
|
|
18
|
+
var LocatorDisposedError_1 = require("./errors/LocatorDisposedError");
|
|
19
|
+
Object.defineProperty(exports, "LocatorDisposedError", { enumerable: true, get: function () { return LocatorDisposedError_1.LocatorDisposedError; } });
|
|
18
20
|
var Provider_1 = require("./core/provider/Provider");
|
|
19
21
|
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return Provider_1.Provider; } });
|
|
20
22
|
var ArgsProvider_1 = require("./core/provider/ArgsProvider");
|
package/cjm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAGA,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AACvB,4DAA2D;AAAlD,sGAAA,SAAS,OAAA;AAIlB,sEAAqE;AAA5D,gHAAA,cAAc,OAAA;AAEvB,6FAA4F;AAAnF,oIAAA,wBAAwB,OAAA;AACjC,iEAA+E;AAAtE,uHAAA,yBAAyB,OAAA;AAElC,wEAAuE;AAA9D,8HAAA,qBAAqB,OAAA;AAC9B,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA;AAClC,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,6DAAoE;AAA3D,4GAAA,YAAY,OAAA;AAErB,sEAAqE;AAA5D,gHAAA,cAAc,OAAA;AACvB,oEAAmE;AAA1D,8GAAA,aAAa,OAAA;AACtB,oEAAmE;AAA1D,8GAAA,aAAa,OAAA;AAEtB,6EAA4E;AAAnE,4HAAA,oBAAoB,OAAA;AAC7B,4EAA2E;AAAlE,sHAAA,iBAAiB,OAAA;AAC1B,wEAAqH;AAA5G,kHAAA,eAAe,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,iHAAA,cAAc,OAAA;AAEtE,8FAA6F;AAApF,wIAAA,0BAA0B,OAAA;AACnC,8DAMyC;AALrC,kHAAA,oBAAoB,OAAA;AACpB,sHAAA,wBAAwB,OAAA;AACxB,iHAAA,mBAAmB,OAAA;AACnB,mHAAA,qBAAqB,OAAA;AACrB,oHAAA,sBAAsB,OAAA;AAG1B,0DAAuD;AAA9C,gHAAA,aAAa,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAGA,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AACvB,4DAA2D;AAAlD,sGAAA,SAAS,OAAA;AAIlB,sEAAqE;AAA5D,gHAAA,cAAc,OAAA;AAEvB,6FAA4F;AAAnF,oIAAA,wBAAwB,OAAA;AACjC,iEAA+E;AAAtE,uHAAA,yBAAyB,OAAA;AAElC,wEAAuE;AAA9D,8HAAA,qBAAqB,OAAA;AAC9B,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA;AAClC,sEAAqE;AAA5D,4HAAA,oBAAoB,OAAA;AAC7B,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,6DAAoE;AAA3D,4GAAA,YAAY,OAAA;AAErB,sEAAqE;AAA5D,gHAAA,cAAc,OAAA;AACvB,oEAAmE;AAA1D,8GAAA,aAAa,OAAA;AACtB,oEAAmE;AAA1D,8GAAA,aAAa,OAAA;AAEtB,6EAA4E;AAAnE,4HAAA,oBAAoB,OAAA;AAC7B,4EAA2E;AAAlE,sHAAA,iBAAiB,OAAA;AAC1B,wEAAqH;AAA5G,kHAAA,eAAe,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,iHAAA,cAAc,OAAA;AAEtE,8FAA6F;AAApF,wIAAA,0BAA0B,OAAA;AACnC,8DAMyC;AALrC,kHAAA,oBAAoB,OAAA;AACpB,sHAAA,wBAAwB,OAAA;AACxB,iHAAA,mBAAmB,OAAA;AACnB,mHAAA,qBAAqB,OAAA;AACrB,oHAAA,sBAAsB,OAAA;AAG1B,0DAAuD;AAA9C,gHAAA,aAAa,OAAA"}
|
|
@@ -9,6 +9,7 @@ export declare class ServiceLocator implements IServiceLocator, ScopeOptions {
|
|
|
9
9
|
level: number;
|
|
10
10
|
tags: Tag[];
|
|
11
11
|
private hook;
|
|
12
|
+
private isDisposed;
|
|
12
13
|
constructor(injector: IInjector);
|
|
13
14
|
setParent(parent: IServiceLocator): this;
|
|
14
15
|
setTags(tags: Tag[]): this;
|
|
@@ -20,4 +21,5 @@ export declare class ServiceLocator implements IServiceLocator, ScopeOptions {
|
|
|
20
21
|
entries(): Array<[ProviderKey, IProvider<any>]>;
|
|
21
22
|
dispose(): void;
|
|
22
23
|
map<T extends IServiceLocator>(transform: (l: IServiceLocator) => T): T;
|
|
24
|
+
private validateLocator;
|
|
23
25
|
}
|
|
@@ -2,6 +2,7 @@ import { isProviderKey } from './IServiceLocator';
|
|
|
2
2
|
import { EmptyServiceLocator } from './EmptyServiceLocator';
|
|
3
3
|
import { emptyHook } from './IInstanceHook';
|
|
4
4
|
import { ProviderRepo } from './ProviderRepo';
|
|
5
|
+
import { LocatorDisposedError } from '../errors/LocatorDisposedError';
|
|
5
6
|
export class ServiceLocator {
|
|
6
7
|
constructor(injector) {
|
|
7
8
|
this.injector = injector;
|
|
@@ -10,6 +11,7 @@ export class ServiceLocator {
|
|
|
10
11
|
this.level = 0;
|
|
11
12
|
this.tags = [];
|
|
12
13
|
this.hook = emptyHook;
|
|
14
|
+
this.isDisposed = false;
|
|
13
15
|
}
|
|
14
16
|
setParent(parent) {
|
|
15
17
|
this.parent = parent;
|
|
@@ -28,9 +30,11 @@ export class ServiceLocator {
|
|
|
28
30
|
return this;
|
|
29
31
|
}
|
|
30
32
|
register(key, provider) {
|
|
33
|
+
this.validateLocator();
|
|
31
34
|
this.providers.set(key, provider);
|
|
32
35
|
}
|
|
33
36
|
resolve(key, ...args) {
|
|
37
|
+
this.validateLocator();
|
|
34
38
|
if (isProviderKey(key)) {
|
|
35
39
|
const provider = this.providers.get(key);
|
|
36
40
|
return (provider === null || provider === void 0 ? void 0 : provider.isValid(this))
|
|
@@ -40,6 +44,7 @@ export class ServiceLocator {
|
|
|
40
44
|
return this.hook.resolve(this.injector.resolve(this, key, ...args));
|
|
41
45
|
}
|
|
42
46
|
createScope(tags = [], parent = this) {
|
|
47
|
+
this.validateLocator();
|
|
43
48
|
const scope = new ServiceLocator(this.injector)
|
|
44
49
|
.setParent(parent)
|
|
45
50
|
.setLevel(this.level + 1)
|
|
@@ -56,6 +61,7 @@ export class ServiceLocator {
|
|
|
56
61
|
return Array.from(new Map([...this.parent.entries(), ...this.providers.entries()]).entries());
|
|
57
62
|
}
|
|
58
63
|
dispose() {
|
|
64
|
+
this.isDisposed = true;
|
|
59
65
|
this.parent = new EmptyServiceLocator();
|
|
60
66
|
this.providers.dispose();
|
|
61
67
|
this.hook.dispose();
|
|
@@ -64,5 +70,10 @@ export class ServiceLocator {
|
|
|
64
70
|
this.parent = transform(this.parent);
|
|
65
71
|
return transform(this);
|
|
66
72
|
}
|
|
73
|
+
validateLocator() {
|
|
74
|
+
if (this.isDisposed) {
|
|
75
|
+
throw new LocatorDisposedError(`Locator is already disposed`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
67
78
|
}
|
|
68
79
|
//# sourceMappingURL=ServiceLocator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,aAAa,EAAe,MAAM,mBAAmB,CAAC;AAGhG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { constructor } from '../../helpers/types';
|
|
2
|
-
import { IProvider, ResolveDependency
|
|
2
|
+
import { IProvider, ResolveDependency } from './IProvider';
|
|
3
3
|
import { Resolveable } from '../IServiceLocator';
|
|
4
4
|
export declare class Provider<T> implements IProvider<T> {
|
|
5
5
|
private readonly resolveDependency;
|
|
@@ -9,5 +9,5 @@ export declare class Provider<T> implements IProvider<T> {
|
|
|
9
9
|
clone(): Provider<T>;
|
|
10
10
|
resolve(locator: Resolveable, ...args: any[]): T;
|
|
11
11
|
dispose(): void;
|
|
12
|
-
isValid(
|
|
12
|
+
isValid(): boolean;
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,QAAQ;IASjB,YAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IARxE,MAAM,CAAC,SAAS,CAAI,KAAqB;QACrC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,KAAQ;QACxB,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAID,KAAK;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,OAAoB,EAAE,GAAG,IAAW;QACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,KAAU,CAAC;IAElB,OAAO
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,QAAQ;IASjB,YAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IARxE,MAAM,CAAC,SAAS,CAAI,KAAqB;QACrC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,KAAQ;QACxB,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAID,KAAK;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,OAAoB,EAAE,GAAG,IAAW;QACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,KAAU,CAAC;IAElB,OAAO;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocatorDisposedError.js","sourceRoot":"","sources":["../../lib/errors/LocatorDisposedError.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAG3C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHnB,SAAI,GAAG,sBAAsB,CAAC;QAK1B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;CACJ"}
|
|
@@ -4,7 +4,6 @@ import { IContainer } from './IContainer';
|
|
|
4
4
|
import { IContainerProvider } from './IContainerProvider';
|
|
5
5
|
import { IInjector } from '../../core/IInjector';
|
|
6
6
|
import { IInstanceHook } from '../../core/IInstanceHook';
|
|
7
|
-
import { constructor } from '../../helpers/types';
|
|
8
7
|
export declare class Container implements IContainer {
|
|
9
8
|
private locator;
|
|
10
9
|
static fromInjector(injector: IInjector): Container;
|
|
@@ -13,6 +12,5 @@ export declare class Container implements IContainer {
|
|
|
13
12
|
createScope(tags?: Tag[]): IContainer;
|
|
14
13
|
register(provider: IContainerProvider<unknown>): this;
|
|
15
14
|
resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
|
|
16
|
-
resolveDecorated<T>(...Constructors: constructor<T>[]): T | undefined;
|
|
17
15
|
dispose(): void;
|
|
18
16
|
}
|
|
@@ -20,13 +20,6 @@ export class Container {
|
|
|
20
20
|
resolve(key, ...args) {
|
|
21
21
|
return this.locator.resolve(key, ...args);
|
|
22
22
|
}
|
|
23
|
-
resolveDecorated(...Constructors) {
|
|
24
|
-
if (Constructors.length === 0) {
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
|
-
const [first, ...rest] = Constructors;
|
|
28
|
-
return this.locator.resolve(first, this.resolveDecorated(...rest));
|
|
29
|
-
}
|
|
30
23
|
dispose() {
|
|
31
24
|
this.locator.dispose();
|
|
32
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/features/container/Container.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/features/container/Container.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,MAAM,OAAO,SAAS;IAKlB,YAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAJhD,MAAM,CAAC,YAAY,CAAC,QAAmB;QACnC,OAAO,IAAI,SAAS,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAID,OAAO,CAAC,IAAmB;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ,CAAC,QAAqC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAI,GAAsB,EAAE,GAAG,IAAW;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACJ"}
|
|
@@ -18,7 +18,6 @@ export class SingletonProvider extends ProviderDecorator {
|
|
|
18
18
|
const instance = this.provider.resolve(locator, ...args);
|
|
19
19
|
this.instance = new Box(instance);
|
|
20
20
|
}
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
22
21
|
return this.instance.value;
|
|
23
22
|
}
|
|
24
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/features/providers/SingletonProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG1E,MAAM,OAAO,iBAAqB,SAAQ,iBAAoB;IAG1D,YAA6B,QAAsB;QAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAc;QAF3C,aAAQ,GAAkB,IAAI,CAAC;IAIvC,CAAC;IAED,KAAK;QACD,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,OAAoB,EAAE,GAAG,IAAW;QACxC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,
|
|
1
|
+
{"version":3,"file":"SingletonProvider.js","sourceRoot":"","sources":["../../../lib/features/providers/SingletonProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG1E,MAAM,OAAO,iBAAqB,SAAQ,iBAAoB;IAG1D,YAA6B,QAAsB;QAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAc;QAF3C,aAAQ,GAAkB,IAAI,CAAC;IAIvC,CAAC;IAED,KAAK;QACD,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,OAAoB,EAAE,GAAG,IAAW;QACxC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAI,QAAQ,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAU,CAAC;IACpC,CAAC;CACJ"}
|
package/esm/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export { createMethodHookDecorator } from './features/instanceHook/decorators';
|
|
|
13
13
|
export { InjectionToken } from './core/IServiceLocator';
|
|
14
14
|
export { ProviderNotFoundError } from './errors/ProviderNotFoundError';
|
|
15
15
|
export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
|
|
16
|
+
export { LocatorDisposedError } from './errors/LocatorDisposedError';
|
|
16
17
|
export { Provider } from './core/provider/Provider';
|
|
17
18
|
export { ArgsProvider, ArgsFn } from './core/provider/ArgsProvider';
|
|
18
19
|
export { IInstanceHook } from './core/IInstanceHook';
|
package/esm/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { MethodsMetadataCollector } from './features/instanceHook/MethodsMetadat
|
|
|
5
5
|
export { createMethodHookDecorator } from './features/instanceHook/decorators';
|
|
6
6
|
export { ProviderNotFoundError } from './errors/ProviderNotFoundError';
|
|
7
7
|
export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
|
|
8
|
+
export { LocatorDisposedError } from './errors/LocatorDisposedError';
|
|
8
9
|
export { Provider } from './core/provider/Provider';
|
|
9
10
|
export { ArgsProvider } from './core/provider/ArgsProvider';
|
|
10
11
|
export { TaggedProvider } from './features/providers/TaggedProvider';
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAI3D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAU,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAErH,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EACH,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAI3D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAU,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAErH,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EACH,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ioc-container",
|
|
3
|
-
"version": "13.0
|
|
3
|
+
"version": "13.2.0",
|
|
4
4
|
"description": "Typescript IoC container",
|
|
5
5
|
"author": "ibabkin <ibabkin@goodgamestudios.com>",
|
|
6
6
|
"homepage": "https://github.com/IgorBabkin/service-locator/tree/master/packages/ts-ioc-container",
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"npm-run-all": "4.1.5",
|
|
46
46
|
"reflect-metadata": "^0.1.13",
|
|
47
47
|
"rimraf": "3.0.2",
|
|
48
|
-
"ts-constructor-injector": "^
|
|
48
|
+
"ts-constructor-injector": "^2.0.0",
|
|
49
49
|
"ts-jest": "27.0.5",
|
|
50
50
|
"typescript": "4.4.3"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "86f72eb37a3a1bf19dc443f3dd480b06d3614224"
|
|
53
53
|
}
|