ts-ioc-container 10.2.0 → 10.3.3
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 +1 -0
- package/cjm/core/IInjector.d.ts +2 -3
- package/cjm/core/IInstanceHook.d.ts +2 -1
- package/cjm/core/IInstanceHook.js +4 -2
- package/cjm/core/IInstanceHook.js.map +1 -1
- package/cjm/core/ServiceLocator.d.ts +0 -1
- package/cjm/core/ServiceLocator.js +2 -7
- package/cjm/core/ServiceLocator.js.map +1 -1
- package/cjm/features/instanceHook/{decorators/IMethodsMetadataCollector.d.ts → IMethodsMetadataCollector.d.ts} +0 -0
- package/cjm/features/instanceHook/{decorators/IMethodsMetadataCollector.js → IMethodsMetadataCollector.js} +0 -0
- package/cjm/features/instanceHook/IMethodsMetadataCollector.js.map +1 -0
- package/cjm/features/instanceHook/{decorators/MethodsMetadataCollector.d.ts → MethodsMetadataCollector.d.ts} +0 -0
- package/cjm/features/instanceHook/{decorators/MethodsMetadataCollector.js → MethodsMetadataCollector.js} +0 -0
- package/cjm/features/instanceHook/MethodsMetadataCollector.js.map +1 -0
- package/cjm/features/instanceHook/{decorators/decorators.d.ts → decorators.d.ts} +0 -0
- package/cjm/features/instanceHook/{decorators/decorators.js → decorators.js} +0 -0
- package/cjm/features/instanceHook/decorators.js.map +1 -0
- package/cjm/features/ioc/IocInjector.d.ts +5 -7
- package/cjm/features/ioc/IocInjector.js +28 -8
- package/cjm/features/ioc/IocInjector.js.map +1 -1
- package/cjm/features/proxy/ProxyInjector.d.ts +0 -2
- package/cjm/features/proxy/ProxyInjector.js +0 -4
- package/cjm/features/proxy/ProxyInjector.js.map +1 -1
- package/cjm/features/simple/SimpleInjector.d.ts +0 -2
- package/cjm/features/simple/SimpleInjector.js +0 -4
- package/cjm/features/simple/SimpleInjector.js.map +1 -1
- package/cjm/helpers/utils.d.ts +1 -0
- package/cjm/helpers/utils.js +9 -1
- package/cjm/helpers/utils.js.map +1 -1
- package/cjm/index.d.ts +5 -7
- package/cjm/index.js +13 -14
- package/cjm/index.js.map +1 -1
- package/esm/core/IInjector.d.ts +2 -3
- package/esm/core/IInstanceHook.d.ts +2 -1
- package/esm/core/IInstanceHook.js +4 -2
- package/esm/core/IInstanceHook.js.map +1 -1
- package/esm/core/ServiceLocator.d.ts +0 -1
- package/esm/core/ServiceLocator.js +2 -7
- package/esm/core/ServiceLocator.js.map +1 -1
- package/esm/features/instanceHook/{decorators/IMethodsMetadataCollector.d.ts → IMethodsMetadataCollector.d.ts} +0 -0
- package/esm/features/instanceHook/{decorators/IMethodsMetadataCollector.js → IMethodsMetadataCollector.js} +0 -0
- package/esm/features/instanceHook/IMethodsMetadataCollector.js.map +1 -0
- package/esm/features/instanceHook/{decorators/MethodsMetadataCollector.d.ts → MethodsMetadataCollector.d.ts} +0 -0
- package/esm/features/instanceHook/{decorators/MethodsMetadataCollector.js → MethodsMetadataCollector.js} +0 -0
- package/esm/features/instanceHook/MethodsMetadataCollector.js.map +1 -0
- package/esm/features/instanceHook/{decorators/decorators.d.ts → decorators.d.ts} +0 -0
- package/esm/features/instanceHook/{decorators/decorators.js → decorators.js} +0 -0
- package/esm/features/instanceHook/decorators.js.map +1 -0
- package/esm/features/ioc/IocInjector.d.ts +5 -7
- package/esm/features/ioc/IocInjector.js +16 -8
- package/esm/features/ioc/IocInjector.js.map +1 -1
- package/esm/features/proxy/ProxyInjector.d.ts +0 -2
- package/esm/features/proxy/ProxyInjector.js +0 -4
- package/esm/features/proxy/ProxyInjector.js.map +1 -1
- package/esm/features/simple/SimpleInjector.d.ts +0 -2
- package/esm/features/simple/SimpleInjector.js +0 -4
- package/esm/features/simple/SimpleInjector.js.map +1 -1
- package/esm/helpers/utils.d.ts +1 -0
- package/esm/helpers/utils.js +3 -0
- package/esm/helpers/utils.js.map +1 -1
- package/esm/index.d.ts +5 -7
- package/esm/index.js +4 -5
- package/esm/index.js.map +1 -1
- package/package.json +2 -2
- package/cjm/features/instanceHook/decorators/IMethodsMetadataCollector.js.map +0 -1
- package/cjm/features/instanceHook/decorators/MethodsMetadataCollector.js.map +0 -1
- package/cjm/features/instanceHook/decorators/decorators.js.map +0 -1
- package/cjm/features/ioc/IInjectMetadataCollector.d.ts +0 -5
- package/cjm/features/ioc/IInjectMetadataCollector.js +0 -3
- package/cjm/features/ioc/IInjectMetadataCollector.js.map +0 -1
- package/cjm/features/ioc/decorators/InjectMetadataCollector.d.ts +0 -9
- package/cjm/features/ioc/decorators/InjectMetadataCollector.js +0 -22
- package/cjm/features/ioc/decorators/InjectMetadataCollector.js.map +0 -1
- package/cjm/features/ioc/decorators/decorators.d.ts +0 -8
- package/cjm/features/ioc/decorators/decorators.js +0 -46
- package/cjm/features/ioc/decorators/decorators.js.map +0 -1
- package/esm/features/instanceHook/decorators/IMethodsMetadataCollector.js.map +0 -1
- package/esm/features/instanceHook/decorators/MethodsMetadataCollector.js.map +0 -1
- package/esm/features/instanceHook/decorators/decorators.js.map +0 -1
- package/esm/features/ioc/IInjectMetadataCollector.d.ts +0 -5
- package/esm/features/ioc/IInjectMetadataCollector.js +0 -2
- package/esm/features/ioc/IInjectMetadataCollector.js.map +0 -1
- package/esm/features/ioc/decorators/InjectMetadataCollector.d.ts +0 -9
- package/esm/features/ioc/decorators/InjectMetadataCollector.js +0 -17
- package/esm/features/ioc/decorators/InjectMetadataCollector.js.map +0 -1
- package/esm/features/ioc/decorators/decorators.d.ts +0 -8
- package/esm/features/ioc/decorators/decorators.js +0 -10
- package/esm/features/ioc/decorators/decorators.js.map +0 -1
package/README.md
CHANGED
package/cjm/core/IInjector.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { constructor
|
|
1
|
+
import { constructor } from '../helpers/types';
|
|
2
2
|
import { IServiceLocator } from './IServiceLocator';
|
|
3
|
-
export interface IInjector
|
|
3
|
+
export interface IInjector {
|
|
4
4
|
resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
|
|
5
|
-
clone(): IInjector;
|
|
6
5
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.emptyHook = void 0;
|
|
4
|
+
var utils_1 = require("../helpers/utils");
|
|
4
5
|
exports.emptyHook = {
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
onResolve: utils_1.id,
|
|
7
|
+
onConstruct: utils_1.id,
|
|
8
|
+
onDispose: function () { },
|
|
7
9
|
};
|
|
8
10
|
//# sourceMappingURL=IInstanceHook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IInstanceHook.js","sourceRoot":"","sources":["../../lib/core/IInstanceHook.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"IInstanceHook.js","sourceRoot":"","sources":["../../lib/core/IInstanceHook.ts"],"names":[],"mappings":";;;AAAA,0CAAsC;AAUzB,QAAA,SAAS,GAAkB;IACpC,SAAS,EAAE,UAAE;IACb,WAAW,EAAE,UAAE;IACf,SAAS,EAAT,cAAmB,CAAC;CACvB,CAAC"}
|
|
@@ -18,6 +18,5 @@ export declare class ServiceLocator implements IServiceLocator {
|
|
|
18
18
|
createScope(tags?: Tag[], parent?: IServiceLocator): ServiceLocator;
|
|
19
19
|
entries(): Array<[ProviderKey, IProvider<any>]>;
|
|
20
20
|
dispose(): void;
|
|
21
|
-
setHook(hook: IInstanceHook): this;
|
|
22
21
|
private onResolve;
|
|
23
22
|
}
|
|
@@ -90,7 +90,7 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
90
90
|
var e_1, _a;
|
|
91
91
|
if (tags === void 0) { tags = []; }
|
|
92
92
|
if (parent === void 0) { parent = this; }
|
|
93
|
-
var scope = new ServiceLocator(parent, this.injector
|
|
93
|
+
var scope = new ServiceLocator(parent, this.injector, this.level + 1, tags, this.hook);
|
|
94
94
|
try {
|
|
95
95
|
for (var _b = __values(parent.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
96
96
|
var _d = __read(_c.value, 2), key = _d[0], provider = _d[1];
|
|
@@ -115,7 +115,6 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
115
115
|
ServiceLocator.prototype.dispose = function () {
|
|
116
116
|
var e_2, _a, e_3, _b;
|
|
117
117
|
this.parent = new EmptyServiceLocator_1.EmptyServiceLocator();
|
|
118
|
-
this.injector.dispose();
|
|
119
118
|
try {
|
|
120
119
|
for (var _c = __values(this.providers.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
121
120
|
var p = _d.value;
|
|
@@ -145,16 +144,12 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
145
144
|
}
|
|
146
145
|
this.instances.clear();
|
|
147
146
|
};
|
|
148
|
-
ServiceLocator.prototype.setHook = function (hook) {
|
|
149
|
-
this.hook = hook;
|
|
150
|
-
return this;
|
|
151
|
-
};
|
|
152
147
|
ServiceLocator.prototype.onResolve = function (instance) {
|
|
153
148
|
if (!this.instances.has(instance)) {
|
|
154
149
|
this.instances.add(instance);
|
|
155
150
|
this.hook.onConstruct(instance);
|
|
156
151
|
}
|
|
157
|
-
return instance;
|
|
152
|
+
return this.hook.onResolve(instance);
|
|
158
153
|
};
|
|
159
154
|
return ServiceLocator;
|
|
160
155
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAiH;AAGjH,iEAAgE;AAChE,6DAA4D;AAC5D,iDAA2D;AAE3D;IAQI,wBACY,MAAuB,EACd,QAAmB,EAC3B,KAAiB,EACjB,IAAgB,EACjB,IAA+B;QAF9B,sBAAA,EAAA,SAAiB;QACjB,qBAAA,EAAA,SAAgB;QACjB,qBAAA,EAAA,OAAsB,yBAAS;QAJ/B,WAAM,GAAN,MAAM,CAAiB;QACd,aAAQ,GAAR,QAAQ,CAAW;QAC3B,UAAK,GAAL,KAAK,CAAY;QACjB,SAAI,GAAJ,IAAI,CAAY;QACjB,SAAI,GAAJ,IAAI,CAA2B;QARnC,cAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QACb,cAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAQjE,CAAC;IAbG,2BAAY,GAAnB,UAAoB,QAAmB;QACnC,OAAO,IAAI,cAAc,CAAC,IAAI,yCAAmB,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAaD,iCAAQ,GAAR,UAAS,GAAgB,EAAE,QAA4B,EAAE,OAAsC;QAAtC,wBAAA,EAAA,YAAsC;QAC3F,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/C,MAAM,IAAI,qCAAiB,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,gCAAO,GAAP,UAAW,GAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC7C,IAAI,IAAA,+BAAa,EAAC,GAAG,CAAC,EAAE;YACpB,IAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAI,GAAG,CAAC,CAAC;YAChD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,OAAhB,QAAQ,iBAAS,IAAI,UAAK,IAAI,WAAE,CAAC,CAAC,CAAC,CAAA,KAAA,IAAI,CAAC,MAAM,CAAA,CAAC,OAAO,0BAAI,GAAG,UAAK,IAAI,UAAC,CAAC;SAC5G;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,0BAAI,IAAI,EAAE,GAAG,UAAK,IAAI,WAAE,CAAC;IACxE,CAAC;IAEO,0CAAiB,GAAzB,UAA6B,GAAgB;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC;SACpB;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiB,CAAC;QAEzD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,oCAAW,GAAX,UAAY,IAAgB,EAAE,MAA8B;;QAAhD,qBAAA,EAAA,SAAgB;QAAE,uBAAA,EAAA,aAA8B;QACxD,IAAM,KAAK,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMethodsMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/IMethodsMetadataCollector.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodsMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/MethodsMetadataCollector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;IACI,kCAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IACxD,0CAAO,GAAP,UAAkC,MAAiB,EAAE,WAA4B;QAC7E,IAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,yCAAM,KAAK,YAAE,WAAW,WAAG,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,gDAAa,GAAb,UAAwC,MAAiB;;QACrD,IAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;;YAET,KAAyB,IAAA,UAAA,SAAA,KAAK,CAAA,4BAAA,+CAAE;gBAA3B,IAAM,UAAU,kBAAA;gBAChB,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;aACjC;;;;;;;;;IACL,CAAC;IAED,wDAAwD;IACzC,oCAAW,GAA1B,UAA2D,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IACL,+BAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,4DAAwB"}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/decorators.ts"],"names":[],"mappings":";;;AAEA,SAAgB,yBAAyB,CAAC,QAAmC;IACzE,OAAO,UAAC,MAAM,EAAE,WAAW;QACvB,wDAAwD;QACxD,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC;AALD,8DAKC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { constructor } from '../../helpers/types';
|
|
2
|
-
import { IServiceLocator } from '../../core/IServiceLocator';
|
|
2
|
+
import { InjectionToken, IServiceLocator } from '../../core/IServiceLocator';
|
|
3
3
|
import { IInjector } from '../../core/IInjector';
|
|
4
|
-
import {
|
|
4
|
+
import { InjectFn } from './InjectFn';
|
|
5
5
|
export declare class IocInjector implements IInjector {
|
|
6
|
-
|
|
7
|
-
constructor(metadataCollector: IInjectMetadataCollector);
|
|
8
|
-
resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
|
|
9
|
-
clone(): IInjector;
|
|
10
|
-
dispose(): void;
|
|
6
|
+
resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: unknown[]): T;
|
|
11
7
|
}
|
|
8
|
+
export declare const injectFn: <T>(injectionFn: InjectFn<T>) => ParameterDecorator;
|
|
9
|
+
export declare const inject: <T>(token: InjectionToken<T>, ...args: unknown[]) => ParameterDecorator;
|
|
@@ -25,26 +25,46 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
25
25
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
26
|
};
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.IocInjector = void 0;
|
|
28
|
+
exports.inject = exports.injectFn = exports.IocInjector = void 0;
|
|
29
29
|
var utils_1 = require("../../helpers/utils");
|
|
30
|
+
var METADATA_KEY = Symbol.for('IocInjector');
|
|
31
|
+
function getInjectionFns(target) {
|
|
32
|
+
var _a;
|
|
33
|
+
return (_a = Reflect.getOwnMetadata(METADATA_KEY, target)) !== null && _a !== void 0 ? _a : [];
|
|
34
|
+
}
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
36
|
+
function addMetadata(target, parameterIndex, injectionFn) {
|
|
37
|
+
var metadata = getInjectionFns(target);
|
|
38
|
+
metadata[parameterIndex] = injectionFn;
|
|
39
|
+
Reflect.defineMetadata(METADATA_KEY, metadata, target);
|
|
40
|
+
}
|
|
30
41
|
var IocInjector = /** @class */ (function () {
|
|
31
|
-
function IocInjector(
|
|
32
|
-
this.metadataCollector = metadataCollector;
|
|
42
|
+
function IocInjector() {
|
|
33
43
|
}
|
|
34
44
|
IocInjector.prototype.resolve = function (locator, value) {
|
|
35
45
|
var deps = [];
|
|
36
46
|
for (var _i = 2; _i < arguments.length; _i++) {
|
|
37
47
|
deps[_i - 2] = arguments[_i];
|
|
38
48
|
}
|
|
39
|
-
var injectionFns =
|
|
49
|
+
var injectionFns = getInjectionFns(value);
|
|
40
50
|
var args = (0, utils_1.merge)(injectionFns, deps.map(utils_1.constant)).map(function (fn) { return fn(locator); });
|
|
41
51
|
return new (value.bind.apply(value, __spreadArray([void 0], __read(args), false)))();
|
|
42
52
|
};
|
|
43
|
-
IocInjector.prototype.clone = function () {
|
|
44
|
-
return new IocInjector(this.metadataCollector);
|
|
45
|
-
};
|
|
46
|
-
IocInjector.prototype.dispose = function () { };
|
|
47
53
|
return IocInjector;
|
|
48
54
|
}());
|
|
49
55
|
exports.IocInjector = IocInjector;
|
|
56
|
+
var injectFn = function (injectionFn) {
|
|
57
|
+
return function (target, propertyKey, parameterIndex) {
|
|
58
|
+
addMetadata(target, parameterIndex, injectionFn);
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
exports.injectFn = injectFn;
|
|
62
|
+
var inject = function (token) {
|
|
63
|
+
var args = [];
|
|
64
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
65
|
+
args[_i - 1] = arguments[_i];
|
|
66
|
+
}
|
|
67
|
+
return (0, exports.injectFn)(function (l) { return l.resolve.apply(l, __spreadArray([token], __read(args), false)); });
|
|
68
|
+
};
|
|
69
|
+
exports.inject = inject;
|
|
50
70
|
//# sourceMappingURL=IocInjector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,6CAAsD;AAGtD;
|
|
1
|
+
{"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,6CAAsD;AAGtD,IAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAE/C,SAAS,eAAe,CAAI,MAAS;;IACjC,OAAO,MAAA,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;AAC9D,CAAC;AAED,wDAAwD;AACxD,SAAS,WAAW,CAAI,MAAS,EAAE,cAAsB,EAAE,WAA8B;IACrF,IAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;IACvC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED;IAAA;IAMA,CAAC;IALG,6BAAO,GAAP,UAAW,OAAwB,EAAE,KAAqB;QAAE,cAAkB;aAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;YAAlB,6BAAkB;;QAC1E,IAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAM,IAAI,GAAG,IAAA,aAAK,EAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,EAAX,CAAW,CAAC,CAAC;QAC9E,YAAW,KAAK,YAAL,KAAK,iCAAI,IAAI,cAAE;IAC9B,CAAC;IACL,kBAAC;AAAD,CAAC,AAND,IAMC;AANY,kCAAW;AAQjB,IAAM,QAAQ,GACjB,UAAI,WAAwB;IAC5B,OAAA,UAAC,MAAM,EAAE,WAAW,EAAE,cAAc;QAChC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;AAFD,CAEC,CAAC;AAJO,QAAA,QAAQ,YAIf;AAEC,IAAM,MAAM,GAAG,UAAI,KAAwB;IAAE,cAAkB;SAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;QAAlB,6BAAkB;;IAClE,OAAA,IAAA,gBAAQ,EAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAS,KAAK,UAAK,IAAI,YAAxB,CAAyB,CAAC;AAA1C,CAA0C,CAAC;AADlC,QAAA,MAAM,UAC4B"}
|
|
@@ -3,6 +3,4 @@ import { IServiceLocator, ProviderKey } from '../../core/IServiceLocator';
|
|
|
3
3
|
import { constructor } from '../../helpers/types';
|
|
4
4
|
export declare class ProxyInjector implements IInjector {
|
|
5
5
|
resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: Record<ProviderKey, unknown>[]): T;
|
|
6
|
-
clone(): IInjector;
|
|
7
|
-
dispose(): void;
|
|
8
6
|
}
|
|
@@ -30,10 +30,6 @@ var ProxyInjector = /** @class */ (function () {
|
|
|
30
30
|
},
|
|
31
31
|
}));
|
|
32
32
|
};
|
|
33
|
-
ProxyInjector.prototype.clone = function () {
|
|
34
|
-
return new ProxyInjector();
|
|
35
|
-
};
|
|
36
|
-
ProxyInjector.prototype.dispose = function () { };
|
|
37
33
|
return ProxyInjector;
|
|
38
34
|
}());
|
|
39
35
|
exports.ProxyInjector = ProxyInjector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyInjector.js","sourceRoot":"","sources":["../../../lib/features/proxy/ProxyInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA;IAAA;
|
|
1
|
+
{"version":3,"file":"ProxyInjector.js","sourceRoot":"","sources":["../../../lib/features/proxy/ProxyInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA;IAAA;IAcA,CAAC;IAbG,wDAAwD;IACxD,+BAAO,GAAP,UAAW,OAAwB,EAAE,KAAqB;QAAE,cAAuC;aAAvC,UAAuC,EAAvC,qBAAuC,EAAvC,IAAuC;YAAvC,6BAAuC;;QAC/F,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAE,IAAK,OAAA,uBAAM,GAAG,GAAK,EAAE,EAAG,EAAnB,CAAmB,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,KAAK,CACZ,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,wDAAwD;YACxD,GAAG,EAAH,UAAI,MAAuB,EAAE,IAAiB;gBAC1C,iDAAiD;gBACjD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;IACL,oBAAC;AAAD,CAAC,AAdD,IAcC;AAdY,sCAAa"}
|
|
@@ -3,6 +3,4 @@ import { IServiceLocator } from '../../core/IServiceLocator';
|
|
|
3
3
|
import { IInjector } from '../../core/IInjector';
|
|
4
4
|
export declare class SimpleInjector implements IInjector {
|
|
5
5
|
resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
|
|
6
|
-
clone(): IInjector;
|
|
7
|
-
dispose(): void;
|
|
8
6
|
}
|
|
@@ -36,10 +36,6 @@ var SimpleInjector = /** @class */ (function () {
|
|
|
36
36
|
}
|
|
37
37
|
return new (value.bind.apply(value, __spreadArray([void 0, locator], __read(deps), false)))();
|
|
38
38
|
};
|
|
39
|
-
SimpleInjector.prototype.clone = function () {
|
|
40
|
-
return new SimpleInjector();
|
|
41
|
-
};
|
|
42
|
-
SimpleInjector.prototype.dispose = function () { };
|
|
43
39
|
return SimpleInjector;
|
|
44
40
|
}());
|
|
45
41
|
exports.SimpleInjector = SimpleInjector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleInjector.js","sourceRoot":"","sources":["../../../lib/features/simple/SimpleInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;IAAA;
|
|
1
|
+
{"version":3,"file":"SimpleInjector.js","sourceRoot":"","sources":["../../../lib/features/simple/SimpleInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;IAAA;IAIA,CAAC;IAHG,gCAAO,GAAP,UAAW,OAAwB,EAAE,KAAqB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACtE,YAAW,KAAK,YAAL,KAAK,yBAAC,OAAO,UAAK,IAAI,cAAE;IACvC,CAAC;IACL,qBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,wCAAc"}
|
package/cjm/helpers/utils.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare function merge<T>(baseArr: (T | undefined)[], insertArr: T[]): T[];
|
|
2
2
|
export declare const constant: <T>(value: T) => () => T;
|
|
3
3
|
export declare const id: <T>(value: T) => T;
|
|
4
|
+
export declare function composeClassDecorators(...decorators: ClassDecorator[]): ClassDecorator;
|
package/cjm/helpers/utils.js
CHANGED
|
@@ -16,7 +16,7 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
16
16
|
return ar;
|
|
17
17
|
};
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.id = exports.constant = exports.merge = void 0;
|
|
19
|
+
exports.composeClassDecorators = exports.id = exports.constant = exports.merge = void 0;
|
|
20
20
|
function merge(baseArr, insertArr) {
|
|
21
21
|
if (baseArr.length === 0) {
|
|
22
22
|
return insertArr;
|
|
@@ -39,4 +39,12 @@ var constant = function (value) {
|
|
|
39
39
|
exports.constant = constant;
|
|
40
40
|
var id = function (value) { return value; };
|
|
41
41
|
exports.id = id;
|
|
42
|
+
function composeClassDecorators() {
|
|
43
|
+
var decorators = [];
|
|
44
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
45
|
+
decorators[_i] = arguments[_i];
|
|
46
|
+
}
|
|
47
|
+
return function (target) { return decorators.forEach(function (it) { return it(target); }); };
|
|
48
|
+
}
|
|
49
|
+
exports.composeClassDecorators = composeClassDecorators;
|
|
42
50
|
//# sourceMappingURL=utils.js.map
|
package/cjm/helpers/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/helpers/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAAgB,KAAK,CAAI,OAA0B,EAAE,SAAc;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,OAAc,CAAC;KACzB;IACK,IAAA,KAAA,OAAuB,OAAO,CAAA,EAA7B,EAAE,QAAA,EAAK,WAAW,cAAW,CAAC;IAC/B,IAAA,KAAA,OAAyB,SAAS,CAAA,EAAjC,EAAE,QAAA,EAAK,aAAa,cAAa,CAAC;IACzC,OAAO,EAAE,KAAK,SAAS;QACnB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAbD,sBAaC;AAEM,IAAM,QAAQ,GACjB,UAAI,KAAQ;IACZ,OAAA;QACI,OAAA,KAAK;IAAL,CAAK;AADT,CACS,CAAC;AAHD,QAAA,QAAQ,YAGP;AAEP,IAAM,EAAE,GAAG,UAAI,KAAQ,IAAK,OAAA,KAAK,EAAL,CAAK,CAAC;AAA5B,QAAA,EAAE,MAA0B"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/helpers/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAAgB,KAAK,CAAI,OAA0B,EAAE,SAAc;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,OAAc,CAAC;KACzB;IACK,IAAA,KAAA,OAAuB,OAAO,CAAA,EAA7B,EAAE,QAAA,EAAK,WAAW,cAAW,CAAC;IAC/B,IAAA,KAAA,OAAyB,SAAS,CAAA,EAAjC,EAAE,QAAA,EAAK,aAAa,cAAa,CAAC;IACzC,OAAO,EAAE,KAAK,SAAS;QACnB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAbD,sBAaC;AAEM,IAAM,QAAQ,GACjB,UAAI,KAAQ;IACZ,OAAA;QACI,OAAA,KAAK;IAAL,CAAK;AADT,CACS,CAAC;AAHD,QAAA,QAAQ,YAGP;AAEP,IAAM,EAAE,GAAG,UAAI,KAAQ,IAAK,OAAA,KAAK,EAAL,CAAK,CAAC;AAA5B,QAAA,EAAE,MAA0B;AAEzC,SAAgB,sBAAsB;IAAC,oBAA+B;SAA/B,UAA+B,EAA/B,qBAA+B,EAA/B,IAA+B;QAA/B,+BAA+B;;IAClE,OAAO,UAAC,MAAM,IAAK,OAAA,UAAU,CAAC,OAAO,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,MAAM,CAAC,EAAV,CAAU,CAAC,EAAtC,CAAsC,CAAC;AAC9D,CAAC;AAFD,wDAEC"}
|
package/cjm/index.d.ts
CHANGED
|
@@ -6,13 +6,10 @@ export { IContainer } from './core/IContainer';
|
|
|
6
6
|
export { ScopeOptions, ResolveDependency, Tag, IProvider, IKeyedProvider } from './core/provider/IProvider';
|
|
7
7
|
export { IInjector } from './core/IInjector';
|
|
8
8
|
export { SimpleInjector } from './features/simple/SimpleInjector';
|
|
9
|
-
export { IocInjector } from './features/ioc/IocInjector';
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export { createMethodHookDecorator } from './features/instanceHook/decorators/decorators';
|
|
14
|
-
export { createInjectDecorator, createInjectFnDecorator } from './features/ioc/decorators/decorators';
|
|
15
|
-
export { InjectMetadataCollector } from './features/ioc/decorators/InjectMetadataCollector';
|
|
9
|
+
export { IocInjector, injectFn, inject } from './features/ioc/IocInjector';
|
|
10
|
+
export { IMethodsMetadataCollector } from './features/instanceHook/IMethodsMetadataCollector';
|
|
11
|
+
export { MethodsMetadataCollector } from './features/instanceHook/MethodsMetadataCollector';
|
|
12
|
+
export { createMethodHookDecorator } from './features/instanceHook/decorators';
|
|
16
13
|
export { InjectionToken } from './core/IServiceLocator';
|
|
17
14
|
export { ProviderNotFoundError } from './errors/ProviderNotFoundError';
|
|
18
15
|
export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
|
|
@@ -34,3 +31,4 @@ export { IDisposable } from './helpers/types';
|
|
|
34
31
|
export { isProviderKey, RegisterOptions } from './core/IServiceLocator';
|
|
35
32
|
export { ProviderKey } from './core/IServiceLocator';
|
|
36
33
|
export { ContainerBuilder } from './core/ContainerBuilder';
|
|
34
|
+
export { composeClassDecorators } from './helpers/utils';
|
package/cjm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ContainerBuilder = exports.isProviderKey = exports.createAddKeysDecorator = exports.createArgsFnDecorator = exports.createTagsDecorator = exports.createSingletonDecorator = exports.createLevelDecorator = exports.ProvidersMetadataCollector = 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.
|
|
3
|
+
exports.composeClassDecorators = exports.ContainerBuilder = exports.isProviderKey = exports.createAddKeysDecorator = exports.createArgsFnDecorator = exports.createTagsDecorator = exports.createSingletonDecorator = exports.createLevelDecorator = exports.ProvidersMetadataCollector = 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.inject = exports.injectFn = exports.IocInjector = 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("./core/Container");
|
|
@@ -9,15 +9,12 @@ var SimpleInjector_1 = require("./features/simple/SimpleInjector");
|
|
|
9
9
|
Object.defineProperty(exports, "SimpleInjector", { enumerable: true, get: function () { return SimpleInjector_1.SimpleInjector; } });
|
|
10
10
|
var IocInjector_1 = require("./features/ioc/IocInjector");
|
|
11
11
|
Object.defineProperty(exports, "IocInjector", { enumerable: true, get: function () { return IocInjector_1.IocInjector; } });
|
|
12
|
-
|
|
12
|
+
Object.defineProperty(exports, "injectFn", { enumerable: true, get: function () { return IocInjector_1.injectFn; } });
|
|
13
|
+
Object.defineProperty(exports, "inject", { enumerable: true, get: function () { return IocInjector_1.inject; } });
|
|
14
|
+
var MethodsMetadataCollector_1 = require("./features/instanceHook/MethodsMetadataCollector");
|
|
13
15
|
Object.defineProperty(exports, "MethodsMetadataCollector", { enumerable: true, get: function () { return MethodsMetadataCollector_1.MethodsMetadataCollector; } });
|
|
14
|
-
var decorators_1 = require("./features/instanceHook/decorators
|
|
16
|
+
var decorators_1 = require("./features/instanceHook/decorators");
|
|
15
17
|
Object.defineProperty(exports, "createMethodHookDecorator", { enumerable: true, get: function () { return decorators_1.createMethodHookDecorator; } });
|
|
16
|
-
var decorators_2 = require("./features/ioc/decorators/decorators");
|
|
17
|
-
Object.defineProperty(exports, "createInjectDecorator", { enumerable: true, get: function () { return decorators_2.createInjectDecorator; } });
|
|
18
|
-
Object.defineProperty(exports, "createInjectFnDecorator", { enumerable: true, get: function () { return decorators_2.createInjectFnDecorator; } });
|
|
19
|
-
var InjectMetadataCollector_1 = require("./features/ioc/decorators/InjectMetadataCollector");
|
|
20
|
-
Object.defineProperty(exports, "InjectMetadataCollector", { enumerable: true, get: function () { return InjectMetadataCollector_1.InjectMetadataCollector; } });
|
|
21
18
|
var ProviderNotFoundError_1 = require("./errors/ProviderNotFoundError");
|
|
22
19
|
Object.defineProperty(exports, "ProviderNotFoundError", { enumerable: true, get: function () { return ProviderNotFoundError_1.ProviderNotFoundError; } });
|
|
23
20
|
var MethodNotImplementedError_1 = require("./errors/MethodNotImplementedError");
|
|
@@ -43,14 +40,16 @@ Object.defineProperty(exports, "fromFn", { enumerable: true, get: function () {
|
|
|
43
40
|
Object.defineProperty(exports, "fromValue", { enumerable: true, get: function () { return ProviderBuilder_1.fromValue; } });
|
|
44
41
|
var ProvidersMetadataCollector_1 = require("./features/scope/ProvidersMetadataCollector");
|
|
45
42
|
Object.defineProperty(exports, "ProvidersMetadataCollector", { enumerable: true, get: function () { return ProvidersMetadataCollector_1.ProvidersMetadataCollector; } });
|
|
46
|
-
var
|
|
47
|
-
Object.defineProperty(exports, "createLevelDecorator", { enumerable: true, get: function () { return
|
|
48
|
-
Object.defineProperty(exports, "createSingletonDecorator", { enumerable: true, get: function () { return
|
|
49
|
-
Object.defineProperty(exports, "createTagsDecorator", { enumerable: true, get: function () { return
|
|
50
|
-
Object.defineProperty(exports, "createArgsFnDecorator", { enumerable: true, get: function () { return
|
|
51
|
-
Object.defineProperty(exports, "createAddKeysDecorator", { enumerable: true, get: function () { return
|
|
43
|
+
var decorators_2 = require("./features/scope/decorators");
|
|
44
|
+
Object.defineProperty(exports, "createLevelDecorator", { enumerable: true, get: function () { return decorators_2.createLevelDecorator; } });
|
|
45
|
+
Object.defineProperty(exports, "createSingletonDecorator", { enumerable: true, get: function () { return decorators_2.createSingletonDecorator; } });
|
|
46
|
+
Object.defineProperty(exports, "createTagsDecorator", { enumerable: true, get: function () { return decorators_2.createTagsDecorator; } });
|
|
47
|
+
Object.defineProperty(exports, "createArgsFnDecorator", { enumerable: true, get: function () { return decorators_2.createArgsFnDecorator; } });
|
|
48
|
+
Object.defineProperty(exports, "createAddKeysDecorator", { enumerable: true, get: function () { return decorators_2.createAddKeysDecorator; } });
|
|
52
49
|
var IServiceLocator_1 = require("./core/IServiceLocator");
|
|
53
50
|
Object.defineProperty(exports, "isProviderKey", { enumerable: true, get: function () { return IServiceLocator_1.isProviderKey; } });
|
|
54
51
|
var ContainerBuilder_1 = require("./core/ContainerBuilder");
|
|
55
52
|
Object.defineProperty(exports, "ContainerBuilder", { enumerable: true, get: function () { return ContainerBuilder_1.ContainerBuilder; } });
|
|
53
|
+
var utils_1 = require("./helpers/utils");
|
|
54
|
+
Object.defineProperty(exports, "composeClassDecorators", { enumerable: true, get: function () { return utils_1.composeClassDecorators; } });
|
|
56
55
|
//# sourceMappingURL=index.js.map
|
package/cjm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAEA,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AACvB,8CAA6C;AAApC,sGAAA,SAAS,OAAA;AAIlB,mEAAkE;AAAzD,gHAAA,cAAc,OAAA;AACvB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAEA,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AACvB,8CAA6C;AAApC,sGAAA,SAAS,OAAA;AAIlB,mEAAkE;AAAzD,gHAAA,cAAc,OAAA;AACvB,0DAA2E;AAAlE,0GAAA,WAAW,OAAA;AAAE,uGAAA,QAAQ,OAAA;AAAE,qGAAA,MAAM,OAAA;AAEtC,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;AAElC,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,6DAAoE;AAA3D,4GAAA,YAAY,OAAA;AAErB,kEAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,gEAA+D;AAAtD,8GAAA,aAAa,OAAA;AACtB,gEAA+D;AAAtD,8GAAA,aAAa,OAAA;AAEtB,6EAA4E;AAAnE,4HAAA,oBAAoB,OAAA;AAC7B,wEAAuE;AAA9D,sHAAA,iBAAiB,OAAA;AAC1B,8DAA2F;AAAlF,kHAAA,eAAe,OAAA;AAAE,4GAAA,SAAS,OAAA;AAAE,yGAAA,MAAM,OAAA;AAAE,4GAAA,SAAS,OAAA;AAEtD,0FAAyF;AAAhF,wIAAA,0BAA0B,OAAA;AACnC,0DAMqC;AALjC,kHAAA,oBAAoB,OAAA;AACpB,sHAAA,wBAAwB,OAAA;AACxB,iHAAA,mBAAmB,OAAA;AACnB,mHAAA,qBAAqB,OAAA;AACrB,oHAAA,sBAAsB,OAAA;AAG1B,0DAAwE;AAA/D,gHAAA,aAAa,OAAA;AAEtB,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,yCAAyD;AAAhD,+GAAA,sBAAsB,OAAA"}
|
package/esm/core/IInjector.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { constructor
|
|
1
|
+
import { constructor } from '../helpers/types';
|
|
2
2
|
import { IServiceLocator } from './IServiceLocator';
|
|
3
|
-
export interface IInjector
|
|
3
|
+
export interface IInjector {
|
|
4
4
|
resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
|
|
5
|
-
clone(): IInjector;
|
|
6
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IInstanceHook.js","sourceRoot":"","sources":["../../lib/core/IInstanceHook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IInstanceHook.js","sourceRoot":"","sources":["../../lib/core/IInstanceHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAUtC,MAAM,CAAC,MAAM,SAAS,GAAkB;IACpC,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,SAAS,KAAU,CAAC;CACvB,CAAC"}
|
|
@@ -18,6 +18,5 @@ export declare class ServiceLocator implements IServiceLocator {
|
|
|
18
18
|
createScope(tags?: Tag[], parent?: IServiceLocator): ServiceLocator;
|
|
19
19
|
entries(): Array<[ProviderKey, IProvider<any>]>;
|
|
20
20
|
dispose(): void;
|
|
21
|
-
setHook(hook: IInstanceHook): this;
|
|
22
21
|
private onResolve;
|
|
23
22
|
}
|
|
@@ -39,7 +39,7 @@ export class ServiceLocator {
|
|
|
39
39
|
return provider;
|
|
40
40
|
}
|
|
41
41
|
createScope(tags = [], parent = this) {
|
|
42
|
-
const scope = new ServiceLocator(parent, this.injector
|
|
42
|
+
const scope = new ServiceLocator(parent, this.injector, this.level + 1, tags, this.hook);
|
|
43
43
|
for (const [key, provider] of parent.entries()) {
|
|
44
44
|
if (provider.isValid(scope)) {
|
|
45
45
|
scope.register(key, provider.clone());
|
|
@@ -53,7 +53,6 @@ export class ServiceLocator {
|
|
|
53
53
|
}
|
|
54
54
|
dispose() {
|
|
55
55
|
this.parent = new EmptyServiceLocator();
|
|
56
|
-
this.injector.dispose();
|
|
57
56
|
for (const p of this.providers.values()) {
|
|
58
57
|
p.dispose();
|
|
59
58
|
}
|
|
@@ -63,16 +62,12 @@ export class ServiceLocator {
|
|
|
63
62
|
}
|
|
64
63
|
this.instances.clear();
|
|
65
64
|
}
|
|
66
|
-
setHook(hook) {
|
|
67
|
-
this.hook = hook;
|
|
68
|
-
return this;
|
|
69
|
-
}
|
|
70
65
|
onResolve(instance) {
|
|
71
66
|
if (!this.instances.has(instance)) {
|
|
72
67
|
this.instances.add(instance);
|
|
73
68
|
this.hook.onConstruct(instance);
|
|
74
69
|
}
|
|
75
|
-
return instance;
|
|
70
|
+
return this.hook.onResolve(instance);
|
|
76
71
|
}
|
|
77
72
|
}
|
|
78
73
|
//# sourceMappingURL=ServiceLocator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,aAAa,EAAgC,MAAM,mBAAmB,CAAC;AAGjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAE3D,MAAM,OAAO,cAAc;IAQvB,YACY,MAAuB,EACd,QAAmB,EAC3B,QAAgB,CAAC,EACjB,OAAc,EAAE,EACjB,OAAsB,SAAS;QAJ/B,WAAM,GAAN,MAAM,CAAiB;QACd,aAAQ,GAAR,QAAQ,CAAW;QAC3B,UAAK,GAAL,KAAK,CAAY;QACjB,SAAI,GAAJ,IAAI,CAAY;QACjB,SAAI,GAAJ,IAAI,CAA2B;QARnC,cAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QACb,cAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAQjE,CAAC;IAbJ,MAAM,CAAC,YAAY,CAAC,QAAmB;QACnC,OAAO,IAAI,cAAc,CAAC,IAAI,mBAAmB,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAaD,QAAQ,CAAC,GAAgB,EAAE,QAA4B,EAAE,UAAoC,EAAE;QAC3F,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/C,MAAM,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAI,GAAsB,EAAE,GAAG,IAAW;QAC7C,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAI,GAAG,CAAC,CAAC;YAChD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;SAC5G;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAI,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC;IAEO,iBAAiB,CAAI,GAAgB;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiB,CAAC;QAEzD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,OAAc,EAAE,EAAE,SAA0B,IAAI;QACxD,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMethodsMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/IMethodsMetadataCollector.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodsMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/MethodsMetadataCollector.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,wBAAwB;IACjC,YAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IACxD,OAAO,CAA2B,MAAiB,EAAE,WAA4B;QAC7E,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,aAAa,CAA2B,MAAiB;QACrD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;QAET,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE;YAC3B,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;SACjC;IACL,CAAC;IAED,wDAAwD;IAChD,MAAM,CAAC,WAAW,CAAiC,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;CACJ"}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../lib/features/instanceHook/decorators.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,QAAmC;IACzE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC3B,wDAAwD;QACxD,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { constructor } from '../../helpers/types';
|
|
2
|
-
import { IServiceLocator } from '../../core/IServiceLocator';
|
|
2
|
+
import { InjectionToken, IServiceLocator } from '../../core/IServiceLocator';
|
|
3
3
|
import { IInjector } from '../../core/IInjector';
|
|
4
|
-
import {
|
|
4
|
+
import { InjectFn } from './InjectFn';
|
|
5
5
|
export declare class IocInjector implements IInjector {
|
|
6
|
-
|
|
7
|
-
constructor(metadataCollector: IInjectMetadataCollector);
|
|
8
|
-
resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
|
|
9
|
-
clone(): IInjector;
|
|
10
|
-
dispose(): void;
|
|
6
|
+
resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: unknown[]): T;
|
|
11
7
|
}
|
|
8
|
+
export declare const injectFn: <T>(injectionFn: InjectFn<T>) => ParameterDecorator;
|
|
9
|
+
export declare const inject: <T>(token: InjectionToken<T>, ...args: unknown[]) => ParameterDecorator;
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import { constant, merge } from '../../helpers/utils';
|
|
2
|
+
const METADATA_KEY = Symbol.for('IocInjector');
|
|
3
|
+
function getInjectionFns(target) {
|
|
4
|
+
var _a;
|
|
5
|
+
return (_a = Reflect.getOwnMetadata(METADATA_KEY, target)) !== null && _a !== void 0 ? _a : [];
|
|
6
|
+
}
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
8
|
+
function addMetadata(target, parameterIndex, injectionFn) {
|
|
9
|
+
const metadata = getInjectionFns(target);
|
|
10
|
+
metadata[parameterIndex] = injectionFn;
|
|
11
|
+
Reflect.defineMetadata(METADATA_KEY, metadata, target);
|
|
12
|
+
}
|
|
2
13
|
export class IocInjector {
|
|
3
|
-
constructor(metadataCollector) {
|
|
4
|
-
this.metadataCollector = metadataCollector;
|
|
5
|
-
}
|
|
6
14
|
resolve(locator, value, ...deps) {
|
|
7
|
-
const injectionFns =
|
|
15
|
+
const injectionFns = getInjectionFns(value);
|
|
8
16
|
const args = merge(injectionFns, deps.map(constant)).map((fn) => fn(locator));
|
|
9
17
|
return new value(...args);
|
|
10
18
|
}
|
|
11
|
-
clone() {
|
|
12
|
-
return new IocInjector(this.metadataCollector);
|
|
13
|
-
}
|
|
14
|
-
dispose() { }
|
|
15
19
|
}
|
|
20
|
+
export const injectFn = (injectionFn) => (target, propertyKey, parameterIndex) => {
|
|
21
|
+
addMetadata(target, parameterIndex, injectionFn);
|
|
22
|
+
};
|
|
23
|
+
export const inject = (token, ...args) => injectFn((l) => l.resolve(token, ...args));
|
|
16
24
|
//# sourceMappingURL=IocInjector.js.map
|
|
@@ -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,qBAAqB,CAAC;AAGtD,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"IocInjector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IocInjector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAE/C,SAAS,eAAe,CAAI,MAAS;;IACjC,OAAO,MAAA,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;AAC9D,CAAC;AAED,wDAAwD;AACxD,SAAS,WAAW,CAAI,MAAS,EAAE,cAAsB,EAAE,WAA8B;IACrF,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;IACvC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,OAAO,WAAW;IACpB,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAe;QAC1E,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,QAAQ,GACjB,CAAI,WAAwB,EAAsB,EAAE,CACpD,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;IACpC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;AACrD,CAAC,CAAC;AAEN,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,KAAwB,EAAE,GAAG,IAAe,EAAsB,EAAE,CAC1F,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -3,6 +3,4 @@ import { IServiceLocator, ProviderKey } from '../../core/IServiceLocator';
|
|
|
3
3
|
import { constructor } from '../../helpers/types';
|
|
4
4
|
export declare class ProxyInjector implements IInjector {
|
|
5
5
|
resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: Record<ProviderKey, unknown>[]): T;
|
|
6
|
-
clone(): IInjector;
|
|
7
|
-
dispose(): void;
|
|
8
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyInjector.js","sourceRoot":"","sources":["../../../lib/features/proxy/ProxyInjector.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAa;IACtB,wDAAwD;IACxD,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAoC;QAC/F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,iCAAM,GAAG,GAAK,EAAE,EAAG,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,KAAK,CACZ,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,wDAAwD;YACxD,GAAG,CAAC,MAAuB,EAAE,IAAiB;gBAC1C,iDAAiD;gBACjD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;
|
|
1
|
+
{"version":3,"file":"ProxyInjector.js","sourceRoot":"","sources":["../../../lib/features/proxy/ProxyInjector.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAa;IACtB,wDAAwD;IACxD,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAoC;QAC/F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,iCAAM,GAAG,GAAK,EAAE,EAAG,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,KAAK,CACZ,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,wDAAwD;YACxD,GAAG,CAAC,MAAuB,EAAE,IAAiB;gBAC1C,iDAAiD;gBACjD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -3,6 +3,4 @@ import { IServiceLocator } from '../../core/IServiceLocator';
|
|
|
3
3
|
import { IInjector } from '../../core/IInjector';
|
|
4
4
|
export declare class SimpleInjector implements IInjector {
|
|
5
5
|
resolve<T>(locator: IServiceLocator, value: constructor<T>, ...deps: any[]): T;
|
|
6
|
-
clone(): IInjector;
|
|
7
|
-
dispose(): void;
|
|
8
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleInjector.js","sourceRoot":"","sources":["../../../lib/features/simple/SimpleInjector.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,cAAc;IACvB,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAW;QACtE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;
|
|
1
|
+
{"version":3,"file":"SimpleInjector.js","sourceRoot":"","sources":["../../../lib/features/simple/SimpleInjector.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,cAAc;IACvB,OAAO,CAAI,OAAwB,EAAE,KAAqB,EAAE,GAAG,IAAW;QACtE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ"}
|
package/esm/helpers/utils.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare function merge<T>(baseArr: (T | undefined)[], insertArr: T[]): T[];
|
|
2
2
|
export declare const constant: <T>(value: T) => () => T;
|
|
3
3
|
export declare const id: <T>(value: T) => T;
|
|
4
|
+
export declare function composeClassDecorators(...decorators: ClassDecorator[]): ClassDecorator;
|
package/esm/helpers/utils.js
CHANGED
|
@@ -13,4 +13,7 @@ export function merge(baseArr, insertArr) {
|
|
|
13
13
|
}
|
|
14
14
|
export const constant = (value) => () => value;
|
|
15
15
|
export const id = (value) => value;
|
|
16
|
+
export function composeClassDecorators(...decorators) {
|
|
17
|
+
return (target) => decorators.forEach((it) => it(target));
|
|
18
|
+
}
|
|
16
19
|
//# sourceMappingURL=utils.js.map
|
package/esm/helpers/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/helpers/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAI,OAA0B,EAAE,SAAc;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,OAAc,CAAC;KACzB;IACD,MAAM,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,KAAK,SAAS;QACnB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GACjB,CAAI,KAAQ,EAAE,EAAE,CAChB,GAAG,EAAE,CACD,KAAK,CAAC;AAEd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,KAAQ,EAAE,EAAE,CAAC,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/helpers/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAI,OAA0B,EAAE,SAAc;IAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,OAAc,CAAC;KACzB;IACD,MAAM,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,KAAK,SAAS;QACnB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GACjB,CAAI,KAAQ,EAAE,EAAE,CAChB,GAAG,EAAE,CACD,KAAK,CAAC;AAEd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,KAAQ,EAAE,EAAE,CAAC,KAAK,CAAC;AAEzC,MAAM,UAAU,sBAAsB,CAAC,GAAG,UAA4B;IAClE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,CAAC"}
|
package/esm/index.d.ts
CHANGED
|
@@ -6,13 +6,10 @@ export { IContainer } from './core/IContainer';
|
|
|
6
6
|
export { ScopeOptions, ResolveDependency, Tag, IProvider, IKeyedProvider } from './core/provider/IProvider';
|
|
7
7
|
export { IInjector } from './core/IInjector';
|
|
8
8
|
export { SimpleInjector } from './features/simple/SimpleInjector';
|
|
9
|
-
export { IocInjector } from './features/ioc/IocInjector';
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export { createMethodHookDecorator } from './features/instanceHook/decorators/decorators';
|
|
14
|
-
export { createInjectDecorator, createInjectFnDecorator } from './features/ioc/decorators/decorators';
|
|
15
|
-
export { InjectMetadataCollector } from './features/ioc/decorators/InjectMetadataCollector';
|
|
9
|
+
export { IocInjector, injectFn, inject } from './features/ioc/IocInjector';
|
|
10
|
+
export { IMethodsMetadataCollector } from './features/instanceHook/IMethodsMetadataCollector';
|
|
11
|
+
export { MethodsMetadataCollector } from './features/instanceHook/MethodsMetadataCollector';
|
|
12
|
+
export { createMethodHookDecorator } from './features/instanceHook/decorators';
|
|
16
13
|
export { InjectionToken } from './core/IServiceLocator';
|
|
17
14
|
export { ProviderNotFoundError } from './errors/ProviderNotFoundError';
|
|
18
15
|
export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
|
|
@@ -34,3 +31,4 @@ export { IDisposable } from './helpers/types';
|
|
|
34
31
|
export { isProviderKey, RegisterOptions } from './core/IServiceLocator';
|
|
35
32
|
export { ProviderKey } from './core/IServiceLocator';
|
|
36
33
|
export { ContainerBuilder } from './core/ContainerBuilder';
|
|
34
|
+
export { composeClassDecorators } from './helpers/utils';
|
package/esm/index.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
export { ServiceLocator } from './core/ServiceLocator';
|
|
2
2
|
export { Container } from './core/Container';
|
|
3
3
|
export { SimpleInjector } from './features/simple/SimpleInjector';
|
|
4
|
-
export { IocInjector } from './features/ioc/IocInjector';
|
|
5
|
-
export { MethodsMetadataCollector } from './features/instanceHook/
|
|
6
|
-
export { createMethodHookDecorator } from './features/instanceHook/decorators
|
|
7
|
-
export { createInjectDecorator, createInjectFnDecorator } from './features/ioc/decorators/decorators';
|
|
8
|
-
export { InjectMetadataCollector } from './features/ioc/decorators/InjectMetadataCollector';
|
|
4
|
+
export { IocInjector, injectFn, inject } from './features/ioc/IocInjector';
|
|
5
|
+
export { MethodsMetadataCollector } from './features/instanceHook/MethodsMetadataCollector';
|
|
6
|
+
export { createMethodHookDecorator } from './features/instanceHook/decorators';
|
|
9
7
|
export { ProviderNotFoundError } from './errors/ProviderNotFoundError';
|
|
10
8
|
export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
|
|
11
9
|
export { Provider } from './core/provider/Provider';
|
|
@@ -20,4 +18,5 @@ export { ProvidersMetadataCollector } from './features/scope/ProvidersMetadataCo
|
|
|
20
18
|
export { createLevelDecorator, createSingletonDecorator, createTagsDecorator, createArgsFnDecorator, createAddKeysDecorator, } from './features/scope/decorators';
|
|
21
19
|
export { isProviderKey } from './core/IServiceLocator';
|
|
22
20
|
export { ContainerBuilder } from './core/ContainerBuilder';
|
|
21
|
+
export { composeClassDecorators } from './helpers/utils';
|
|
23
22
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAE3E,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;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAU,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EACH,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ioc-container",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.3.3",
|
|
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",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"ts-jest": "27.0.5",
|
|
49
49
|
"typescript": "4.4.3"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "149234df785ec46cac43142cec60faab3bdfb0e1",
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"reflect-metadata": "^0.1.13"
|
|
54
54
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IMethodsMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/IMethodsMetadataCollector.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MethodsMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/MethodsMetadataCollector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;IACI,kCAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IACxD,0CAAO,GAAP,UAAkC,MAAiB,EAAE,WAA4B;QAC7E,IAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,yCAAM,KAAK,YAAE,WAAW,WAAG,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,gDAAa,GAAb,UAAwC,MAAiB;;QACrD,IAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;;YAET,KAAyB,IAAA,UAAA,SAAA,KAAK,CAAA,4BAAA,+CAAE;gBAA3B,IAAM,UAAU,kBAAA;gBAChB,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;aACjC;;;;;;;;;IACL,CAAC;IAED,wDAAwD;IACzC,oCAAW,GAA1B,UAA2D,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IACL,+BAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,4DAAwB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/decorators.ts"],"names":[],"mappings":";;;AAEA,SAAgB,yBAAyB,CAAC,QAAmC;IACzE,OAAO,UAAC,MAAM,EAAE,WAAW;QACvB,wDAAwD;QACxD,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC;AALD,8DAKC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IInjectMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IInjectMetadataCollector.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
import { IInjectMetadataCollector } from '../IInjectMetadataCollector';
|
|
3
|
-
import { InjectFn } from '../InjectFn';
|
|
4
|
-
export declare class InjectMetadataCollector implements IInjectMetadataCollector {
|
|
5
|
-
private readonly metadataKey;
|
|
6
|
-
constructor(metadataKey: string | symbol);
|
|
7
|
-
addMetadata<T>(target: T, parameterIndex: number, injectionFn: InjectFn<any>): void;
|
|
8
|
-
getInjectionFns<T>(target: T): InjectFn<any>[];
|
|
9
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InjectMetadataCollector = void 0;
|
|
4
|
-
require("reflect-metadata");
|
|
5
|
-
var InjectMetadataCollector = /** @class */ (function () {
|
|
6
|
-
function InjectMetadataCollector(metadataKey) {
|
|
7
|
-
this.metadataKey = metadataKey;
|
|
8
|
-
}
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
10
|
-
InjectMetadataCollector.prototype.addMetadata = function (target, parameterIndex, injectionFn) {
|
|
11
|
-
var metadata = this.getInjectionFns(target);
|
|
12
|
-
metadata[parameterIndex] = injectionFn;
|
|
13
|
-
Reflect.defineMetadata(this.metadataKey, metadata, target);
|
|
14
|
-
};
|
|
15
|
-
InjectMetadataCollector.prototype.getInjectionFns = function (target) {
|
|
16
|
-
var _a;
|
|
17
|
-
return (_a = Reflect.getOwnMetadata(this.metadataKey, target)) !== null && _a !== void 0 ? _a : [];
|
|
18
|
-
};
|
|
19
|
-
return InjectMetadataCollector;
|
|
20
|
-
}());
|
|
21
|
-
exports.InjectMetadataCollector = InjectMetadataCollector;
|
|
22
|
-
//# sourceMappingURL=InjectMetadataCollector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InjectMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/ioc/decorators/InjectMetadataCollector.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAI1B;IACI,iCAA6B,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;IAAG,CAAC;IAE7D,wDAAwD;IACxD,6CAAW,GAAX,UAAe,MAAS,EAAE,cAAsB,EAAE,WAA0B;QACxE,IAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9C,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;QACvC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,iDAAe,GAAf,UAAmB,MAAS;;QACxB,OAAO,MAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;IAClE,CAAC;IACL,8BAAC;AAAD,CAAC,AAbD,IAaC;AAbY,0DAAuB"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { InjectFn } from '../InjectFn';
|
|
2
|
-
import { InjectionToken } from '../../../core/IServiceLocator';
|
|
3
|
-
import { IInjectMetadataCollector } from '../IInjectMetadataCollector';
|
|
4
|
-
export declare type InjectFnDecorator = <T>(injectionFn: InjectFn<T>) => ParameterDecorator;
|
|
5
|
-
export declare function createInjectFnDecorator(metadata: IInjectMetadataCollector): InjectFnDecorator;
|
|
6
|
-
declare type InjectDecorator = <T>(token: InjectionToken<T>, ...args: any[]) => ParameterDecorator;
|
|
7
|
-
export declare function createInjectDecorator(metadata: IInjectMetadataCollector): InjectDecorator;
|
|
8
|
-
export {};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
-
if (ar || !(i in from)) {
|
|
21
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
-
ar[i] = from[i];
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
-
};
|
|
27
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.createInjectDecorator = exports.createInjectFnDecorator = void 0;
|
|
29
|
-
function createInjectFnDecorator(metadata) {
|
|
30
|
-
return function (injectionFn) { return function (target, propertyKey, parameterIndex) {
|
|
31
|
-
metadata.addMetadata(target, parameterIndex, injectionFn);
|
|
32
|
-
}; };
|
|
33
|
-
}
|
|
34
|
-
exports.createInjectFnDecorator = createInjectFnDecorator;
|
|
35
|
-
function createInjectDecorator(metadata) {
|
|
36
|
-
var decorator = createInjectFnDecorator(metadata);
|
|
37
|
-
return function (token) {
|
|
38
|
-
var args = [];
|
|
39
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
40
|
-
args[_i - 1] = arguments[_i];
|
|
41
|
-
}
|
|
42
|
-
return decorator(function (l) { return l.resolve.apply(l, __spreadArray([token], __read(args), false)); });
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
exports.createInjectDecorator = createInjectDecorator;
|
|
46
|
-
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../lib/features/ioc/decorators/decorators.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAgB,uBAAuB,CAAC,QAAkC;IACtE,OAAO,UAAC,WAAW,IAAK,OAAA,UAAC,MAAM,EAAE,WAAW,EAAE,cAAc;QACxD,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC,EAFuB,CAEvB,CAAC;AACN,CAAC;AAJD,0DAIC;AAGD,SAAgB,qBAAqB,CAAC,QAAkC;IACpE,IAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,UAAI,KAAwB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAAK,OAAA,SAAS,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAS,KAAK,UAAK,IAAI,YAAxB,CAAyB,CAAC;IAA3C,CAA2C,CAAC;AACxG,CAAC;AAHD,sDAGC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IMethodsMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/IMethodsMetadataCollector.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MethodsMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/MethodsMetadataCollector.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,wBAAwB;IACjC,YAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IACxD,OAAO,CAA2B,MAAiB,EAAE,WAA4B;QAC7E,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,aAAa,CAA2B,MAAiB;QACrD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;QAET,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE;YAC3B,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;SACjC;IACL,CAAC;IAED,wDAAwD;IAChD,MAAM,CAAC,WAAW,CAAiC,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../lib/features/instanceHook/decorators/decorators.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,QAAmC;IACzE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC3B,wDAAwD;QACxD,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IInjectMetadataCollector.js","sourceRoot":"","sources":["../../../lib/features/ioc/IInjectMetadataCollector.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
import { IInjectMetadataCollector } from '../IInjectMetadataCollector';
|
|
3
|
-
import { InjectFn } from '../InjectFn';
|
|
4
|
-
export declare class InjectMetadataCollector implements IInjectMetadataCollector {
|
|
5
|
-
private readonly metadataKey;
|
|
6
|
-
constructor(metadataKey: string | symbol);
|
|
7
|
-
addMetadata<T>(target: T, parameterIndex: number, injectionFn: InjectFn<any>): void;
|
|
8
|
-
getInjectionFns<T>(target: T): InjectFn<any>[];
|
|
9
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
export class InjectMetadataCollector {
|
|
3
|
-
constructor(metadataKey) {
|
|
4
|
-
this.metadataKey = metadataKey;
|
|
5
|
-
}
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
7
|
-
addMetadata(target, parameterIndex, injectionFn) {
|
|
8
|
-
const metadata = this.getInjectionFns(target);
|
|
9
|
-
metadata[parameterIndex] = injectionFn;
|
|
10
|
-
Reflect.defineMetadata(this.metadataKey, metadata, target);
|
|
11
|
-
}
|
|
12
|
-
getInjectionFns(target) {
|
|
13
|
-
var _a;
|
|
14
|
-
return (_a = Reflect.getOwnMetadata(this.metadataKey, target)) !== null && _a !== void 0 ? _a : [];
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=InjectMetadataCollector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InjectMetadataCollector.js","sourceRoot":"","sources":["../../../../lib/features/ioc/decorators/InjectMetadataCollector.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,MAAM,OAAO,uBAAuB;IAChC,YAA6B,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;IAAG,CAAC;IAE7D,wDAAwD;IACxD,WAAW,CAAI,MAAS,EAAE,cAAsB,EAAE,WAA0B;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9C,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;QACvC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe,CAAI,MAAS;;QACxB,OAAO,MAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;IAClE,CAAC;CACJ"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { InjectFn } from '../InjectFn';
|
|
2
|
-
import { InjectionToken } from '../../../core/IServiceLocator';
|
|
3
|
-
import { IInjectMetadataCollector } from '../IInjectMetadataCollector';
|
|
4
|
-
export declare type InjectFnDecorator = <T>(injectionFn: InjectFn<T>) => ParameterDecorator;
|
|
5
|
-
export declare function createInjectFnDecorator(metadata: IInjectMetadataCollector): InjectFnDecorator;
|
|
6
|
-
declare type InjectDecorator = <T>(token: InjectionToken<T>, ...args: any[]) => ParameterDecorator;
|
|
7
|
-
export declare function createInjectDecorator(metadata: IInjectMetadataCollector): InjectDecorator;
|
|
8
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function createInjectFnDecorator(metadata) {
|
|
2
|
-
return (injectionFn) => (target, propertyKey, parameterIndex) => {
|
|
3
|
-
metadata.addMetadata(target, parameterIndex, injectionFn);
|
|
4
|
-
};
|
|
5
|
-
}
|
|
6
|
-
export function createInjectDecorator(metadata) {
|
|
7
|
-
const decorator = createInjectFnDecorator(metadata);
|
|
8
|
-
return (token, ...args) => decorator((l) => l.resolve(token, ...args));
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../lib/features/ioc/decorators/decorators.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,uBAAuB,CAAC,QAAkC;IACtE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;QAC5D,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC,CAAC;AACN,CAAC;AAGD,MAAM,UAAU,qBAAqB,CAAC,QAAkC;IACpE,MAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAI,KAAwB,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACxG,CAAC"}
|