ts-ioc-container 14.0.8 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -13
- package/cjm/core/provider/{IProvidersMetadataCollector.d.ts → IProviderReflector.d.ts} +1 -1
- package/cjm/core/provider/{IProvidersMetadataCollector.js → IProviderReflector.js} +1 -1
- package/cjm/core/provider/IProviderReflector.js.map +1 -0
- package/cjm/core/provider/Provider.d.ts +1 -2
- package/cjm/core/provider/Provider.js +8 -9
- package/cjm/core/provider/Provider.js.map +1 -1
- package/{esm/core/provider/ProvidersMetadataCollector.d.ts → cjm/core/provider/ProviderReflector.d.ts} +4 -3
- package/cjm/core/provider/ProviderReflector.js +26 -0
- package/cjm/core/provider/ProviderReflector.js.map +1 -0
- package/cjm/hooks/IMethodReflector.d.ts +3 -0
- package/cjm/hooks/IMethodReflector.js +3 -0
- package/cjm/hooks/IMethodReflector.js.map +1 -0
- package/cjm/hooks/MethodReflector.d.ts +9 -0
- package/cjm/hooks/{MethodsMetadataCollector.js → MethodReflector.js} +18 -11
- package/cjm/hooks/MethodReflector.js.map +1 -0
- package/cjm/index.d.ts +9 -19
- package/cjm/index.js +20 -43
- package/cjm/index.js.map +1 -1
- package/cjm/providers/ArgsProvider.d.ts +2 -2
- package/cjm/providers/ArgsProvider.js.map +1 -1
- package/cjm/providers/LevelProvider.d.ts +1 -2
- package/cjm/providers/LevelProvider.js +8 -9
- package/cjm/providers/LevelProvider.js.map +1 -1
- package/cjm/providers/ProviderBuilder.d.ts +5 -1
- package/cjm/providers/ProviderBuilder.js +11 -0
- package/cjm/providers/ProviderBuilder.js.map +1 -1
- package/cjm/providers/SingletonProvider.d.ts +1 -2
- package/cjm/providers/SingletonProvider.js +7 -8
- package/cjm/providers/SingletonProvider.js.map +1 -1
- package/cjm/providers/TaggedProvider.d.ts +1 -2
- package/cjm/providers/TaggedProvider.js +15 -16
- package/cjm/providers/TaggedProvider.js.map +1 -1
- package/esm/core/provider/{IProvidersMetadataCollector.d.ts → IProviderReflector.d.ts} +1 -1
- package/esm/core/provider/IProviderReflector.js +2 -0
- package/esm/core/provider/IProviderReflector.js.map +1 -0
- package/esm/core/provider/Provider.d.ts +1 -2
- package/esm/core/provider/Provider.js +4 -3
- package/esm/core/provider/Provider.js.map +1 -1
- package/{cjm/core/provider/ProvidersMetadataCollector.d.ts → esm/core/provider/ProviderReflector.d.ts} +4 -3
- package/esm/core/provider/{ProvidersMetadataCollector.js → ProviderReflector.js} +4 -3
- package/esm/core/provider/ProviderReflector.js.map +1 -0
- package/esm/hooks/IMethodReflector.d.ts +3 -0
- package/esm/hooks/IMethodReflector.js +2 -0
- package/esm/hooks/IMethodReflector.js.map +1 -0
- package/esm/hooks/MethodReflector.d.ts +9 -0
- package/esm/hooks/{MethodsMetadataCollector.js → MethodReflector.js} +10 -4
- package/esm/hooks/MethodReflector.js.map +1 -0
- package/esm/index.d.ts +9 -19
- package/esm/index.js +6 -25
- package/esm/index.js.map +1 -1
- package/esm/providers/ArgsProvider.d.ts +2 -2
- package/esm/providers/ArgsProvider.js.map +1 -1
- package/esm/providers/LevelProvider.d.ts +1 -2
- package/esm/providers/LevelProvider.js +4 -3
- package/esm/providers/LevelProvider.js.map +1 -1
- package/esm/providers/ProviderBuilder.d.ts +5 -1
- package/esm/providers/ProviderBuilder.js +11 -0
- package/esm/providers/ProviderBuilder.js.map +1 -1
- package/esm/providers/SingletonProvider.d.ts +1 -2
- package/esm/providers/SingletonProvider.js +4 -3
- package/esm/providers/SingletonProvider.js.map +1 -1
- package/esm/providers/TaggedProvider.d.ts +1 -2
- package/esm/providers/TaggedProvider.js +4 -3
- package/esm/providers/TaggedProvider.js.map +1 -1
- package/package.json +2 -2
- package/cjm/core/provider/IProvidersMetadataCollector.js.map +0 -1
- package/cjm/core/provider/ProvidersMetadataCollector.js +0 -25
- package/cjm/core/provider/ProvidersMetadataCollector.js.map +0 -1
- package/cjm/hooks/IMethodsMetadataCollector.d.ts +0 -5
- package/cjm/hooks/IMethodsMetadataCollector.js +0 -11
- package/cjm/hooks/IMethodsMetadataCollector.js.map +0 -1
- package/cjm/hooks/MethodsMetadataCollector.d.ts +0 -8
- package/cjm/hooks/MethodsMetadataCollector.js.map +0 -1
- package/esm/core/provider/IProvidersMetadataCollector.js +0 -2
- package/esm/core/provider/IProvidersMetadataCollector.js.map +0 -1
- package/esm/core/provider/ProvidersMetadataCollector.js.map +0 -1
- package/esm/hooks/IMethodsMetadataCollector.d.ts +0 -5
- package/esm/hooks/IMethodsMetadataCollector.js +0 -7
- package/esm/hooks/IMethodsMetadataCollector.js.map +0 -1
- package/esm/hooks/MethodsMetadataCollector.d.ts +0 -8
- package/esm/hooks/MethodsMetadataCollector.js.map +0 -1
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ yarn add ts-ioc-container reflect-metadata
|
|
|
40
40
|
How to create new container
|
|
41
41
|
|
|
42
42
|
```typescript
|
|
43
|
-
import { Container,
|
|
43
|
+
import { Container, IInjector, ProviderBuilder } from "ts-ioc-container";
|
|
44
44
|
import { resolve } from 'ts-constructor-injector';
|
|
45
45
|
|
|
46
46
|
const injector: IInjector = {
|
|
@@ -49,20 +49,20 @@ const injector: IInjector = {
|
|
|
49
49
|
},
|
|
50
50
|
};
|
|
51
51
|
const container = new Container(injector);
|
|
52
|
-
container.register('ILogger', fromClass(Logger).build());
|
|
52
|
+
container.register('ILogger', ProviderBuilder.fromClass(Logger).build());
|
|
53
53
|
const logger = container.resolve<ILogger>('ILogger');
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
## ProviderBuilder
|
|
57
57
|
|
|
58
58
|
```typescript
|
|
59
|
-
import { fromClass } from "ts-ioc-container";
|
|
59
|
+
import { fromClass, ProviderBuilder } from "ts-ioc-container";
|
|
60
60
|
|
|
61
61
|
container.register('ILogger', new ProviderBuilder((container, ...args) => new Logger(...args)).build());
|
|
62
|
-
container.register('ILogger1', fromClass(Logger).forKey('ILogger').asSingleton().forLevel(0).build()); // global singleton
|
|
63
|
-
container.register('ILogger2', fromClass(Logger).asSingleton().forLevel(1).build()); // first scope singleton
|
|
64
|
-
container.register('ILogger3', fromClass(Logger).asSingleton().forTags(['tag1', 'tag2']).build()); // singleton for scope with tag1 or tag2
|
|
65
|
-
container.register('ILogger4', fromClass(Logger).withArgs('dev').asSingleton().build()); // singleton in every scope
|
|
62
|
+
container.register('ILogger1', ProviderBuilder.fromClass(Logger).forKey('ILogger').asSingleton().forLevel(0).build()); // global singleton
|
|
63
|
+
container.register('ILogger2', ProviderBuilder.fromClass(Logger).asSingleton().forLevel(1).build()); // first scope singleton
|
|
64
|
+
container.register('ILogger3', ProviderBuilder.fromClass(Logger).asSingleton().forTags(['tag1', 'tag2']).build()); // singleton for scope with tag1 or tag2
|
|
65
|
+
container.register('ILogger4', ProviderBuilder.fromClass(Logger).withArgs('dev').asSingleton().build()); // singleton in every scope
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
## Decorators
|
|
@@ -84,18 +84,19 @@ class Engine {
|
|
|
84
84
|
|
|
85
85
|
```typescript
|
|
86
86
|
import {
|
|
87
|
-
|
|
87
|
+
MethodReflector,
|
|
88
88
|
createMethodHookDecorator,
|
|
89
89
|
Container,
|
|
90
90
|
IInjector,
|
|
91
91
|
ContainerHook,
|
|
92
|
+
ProviderBuilder,
|
|
92
93
|
} from "ts-ioc-container";
|
|
93
94
|
|
|
94
|
-
export const
|
|
95
|
-
export const onConstruct = createMethodHookDecorator(
|
|
95
|
+
export const onConstructReflector = new MethodReflector('OnConstructHook');
|
|
96
|
+
export const onConstruct = onConstructReflector.createMethodHookDecorator();
|
|
96
97
|
|
|
97
|
-
export const
|
|
98
|
-
export const onDispose = createMethodHookDecorator(
|
|
98
|
+
export const onDisposeReflector = new MethodReflector('OnDisposeHook');
|
|
99
|
+
export const onDispose = onDisposeReflector.createMethodHookDecorator();
|
|
99
100
|
|
|
100
101
|
class Logger {
|
|
101
102
|
@onConstruct
|
|
@@ -116,7 +117,7 @@ const injector: IInjector = {
|
|
|
116
117
|
const container = new Container(injector).setHook(new ContainerHook((instance) => {
|
|
117
118
|
onDisposeMetadataCollector.invokeHooksOf(instance);
|
|
118
119
|
}));
|
|
119
|
-
container.register('ILogger', fromClass(Logger).build());
|
|
120
|
+
container.register('ILogger', ProviderBuilder.fromClass(Logger).build());
|
|
120
121
|
const logger = container.resolve<ILogger>('ILogger');
|
|
121
122
|
```
|
|
122
123
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { constructor } from '../utils/types';
|
|
2
2
|
import { ProviderBuilder } from '../../providers/ProviderBuilder';
|
|
3
3
|
export declare type ProviderReducer<T> = (builder: ProviderBuilder<T>) => ProviderBuilder<T>;
|
|
4
|
-
export interface
|
|
4
|
+
export interface IProviderReflector {
|
|
5
5
|
addReducer<T>(target: constructor<T>, reducer: ProviderReducer<T>): void;
|
|
6
6
|
findReducerOrCreate<T>(target: constructor<T>): ProviderReducer<T>;
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IProviderReflector.js","sourceRoot":"","sources":["../../../lib/core/provider/IProviderReflector.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { constructor } from '../utils/types';
|
|
2
2
|
import { IProvider, ProviderKey, ResolveDependency } from './IProvider';
|
|
3
3
|
import { Resolveable } from '../container/IContainer';
|
|
4
|
-
import { IProvidersMetadataCollector } from './IProvidersMetadataCollector';
|
|
5
4
|
export declare class Provider<T> implements IProvider<T> {
|
|
6
5
|
private readonly resolveDependency;
|
|
7
6
|
static fromClass<T>(value: constructor<T>): Provider<T>;
|
|
@@ -15,4 +14,4 @@ export declare class Provider<T> implements IProvider<T> {
|
|
|
15
14
|
isValid(): boolean;
|
|
16
15
|
getKeyOrFail(): ProviderKey;
|
|
17
16
|
}
|
|
18
|
-
export declare const
|
|
17
|
+
export declare const forKey: (key: ProviderKey) => ClassDecorator;
|
|
@@ -25,8 +25,9 @@ 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.
|
|
28
|
+
exports.forKey = exports.Provider = void 0;
|
|
29
29
|
var ProviderHasNoKeyError_1 = require("./ProviderHasNoKeyError");
|
|
30
|
+
var ProviderReflector_1 = require("./ProviderReflector");
|
|
30
31
|
var Provider = /** @class */ (function () {
|
|
31
32
|
function Provider(resolveDependency) {
|
|
32
33
|
this.resolveDependency = resolveDependency;
|
|
@@ -73,14 +74,12 @@ var Provider = /** @class */ (function () {
|
|
|
73
74
|
return Provider;
|
|
74
75
|
}());
|
|
75
76
|
exports.Provider = Provider;
|
|
76
|
-
var
|
|
77
|
-
return function (
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
metadataCollector.addReducer(targetClass, function (builder) { return fn(builder).forKey(key); });
|
|
82
|
-
};
|
|
77
|
+
var forKey = function (key) {
|
|
78
|
+
return function (target) {
|
|
79
|
+
var targetClass = target;
|
|
80
|
+
var fn = ProviderReflector_1.providerReflector.findReducerOrCreate(targetClass);
|
|
81
|
+
ProviderReflector_1.providerReflector.addReducer(targetClass, function (builder) { return fn(builder).forKey(key); });
|
|
83
82
|
};
|
|
84
83
|
};
|
|
85
|
-
exports.
|
|
84
|
+
exports.forKey = forKey;
|
|
86
85
|
//# sourceMappingURL=Provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iEAAgE;
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iEAAgE;AAEhE,yDAAwD;AAExD;IAWI,kBAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IAVjE,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;IAMD,yBAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wBAAK,GAAL;QACI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,6CAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,0BAAO,GAAP,UAAQ,SAAsB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,OAAO,IAAI,CAAC,iBAAiB,OAAtB,IAAI,iBAAmB,SAAS,UAAK,IAAI,WAAE;IACtD,CAAC;IAED,0BAAO,GAAP,cAAiB,CAAC;IAElB,0BAAO,GAAP;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAY,GAAZ;QACI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,6CAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IACL,eAAC;AAAD,CAAC,AAzCD,IAyCC;AAzCY,4BAAQ;AA2Cd,IAAM,MAAM,GACf,UAAC,GAAgB;IACjB,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,qCAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAvB,CAAuB,CAAC,CAAC;IACpF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,MAAM,UAMb"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IProviderReflector, ProviderReducer } from './IProviderReflector';
|
|
2
2
|
import { constructor } from '../utils/types';
|
|
3
|
-
export declare class
|
|
3
|
+
export declare class ProviderReflector implements IProviderReflector {
|
|
4
4
|
private metadataKey;
|
|
5
5
|
private createReducer;
|
|
6
|
-
static create():
|
|
6
|
+
static create(): ProviderReflector;
|
|
7
7
|
constructor(metadataKey: string | symbol, createReducer: () => ProviderReducer<unknown>);
|
|
8
8
|
findReducerOrCreate<T>(target: constructor<T>): ProviderReducer<T>;
|
|
9
9
|
addReducer<T>(target: constructor<T>, reducer: ProviderReducer<T>): void;
|
|
10
10
|
}
|
|
11
|
+
export declare const providerReflector: ProviderReflector;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.providerReflector = exports.ProviderReflector = void 0;
|
|
4
|
+
var others_1 = require("../utils/others");
|
|
5
|
+
var ProviderReflector = /** @class */ (function () {
|
|
6
|
+
function ProviderReflector(metadataKey, createReducer) {
|
|
7
|
+
this.metadataKey = metadataKey;
|
|
8
|
+
this.createReducer = createReducer;
|
|
9
|
+
}
|
|
10
|
+
ProviderReflector.create = function () {
|
|
11
|
+
return new ProviderReflector(Symbol('providerReducer'), function () { return others_1.id; });
|
|
12
|
+
};
|
|
13
|
+
ProviderReflector.prototype.findReducerOrCreate = function (target) {
|
|
14
|
+
if (!Reflect.hasMetadata(this.metadataKey, target)) {
|
|
15
|
+
Reflect.defineMetadata(this.metadataKey, this.createReducer(), target);
|
|
16
|
+
}
|
|
17
|
+
return Reflect.getMetadata(this.metadataKey, target);
|
|
18
|
+
};
|
|
19
|
+
ProviderReflector.prototype.addReducer = function (target, reducer) {
|
|
20
|
+
Reflect.defineMetadata(this.metadataKey, reducer, target);
|
|
21
|
+
};
|
|
22
|
+
return ProviderReflector;
|
|
23
|
+
}());
|
|
24
|
+
exports.ProviderReflector = ProviderReflector;
|
|
25
|
+
exports.providerReflector = ProviderReflector.create();
|
|
26
|
+
//# sourceMappingURL=ProviderReflector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderReflector.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderReflector.ts"],"names":[],"mappings":";;;AAEA,0CAAqC;AAErC;IAKI,2BAAoB,WAA4B,EAAU,aAA6C;QAAnF,gBAAW,GAAX,WAAW,CAAiB;QAAU,kBAAa,GAAb,aAAa,CAAgC;IAAG,CAAC;IAJpG,wBAAM,GAAb;QACI,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,cAAM,OAAA,WAAE,EAAF,CAAE,CAAC,CAAC;IACtE,CAAC;IAID,+CAAmB,GAAnB,UAAuB,MAAsB;QACzC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;YAChD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC;SAC1E;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,sCAAU,GAAV,UAAc,MAAsB,EAAE,OAA2B;QAC7D,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IACL,wBAAC;AAAD,CAAC,AAjBD,IAiBC;AAjBY,8CAAiB;AAmBjB,QAAA,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/IMethodReflector.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IMethodReflector } from './IMethodReflector';
|
|
2
|
+
export declare class MethodReflector implements IMethodReflector {
|
|
3
|
+
readonly hookKey: string | symbol;
|
|
4
|
+
constructor(hookKey: string | symbol);
|
|
5
|
+
private addHook;
|
|
6
|
+
invokeHooksOf<GInstance extends Object>(target: GInstance): void;
|
|
7
|
+
private static getTargetId;
|
|
8
|
+
createMethodHookDecorator(): MethodDecorator;
|
|
9
|
+
}
|
|
@@ -36,21 +36,21 @@ var __values = (this && this.__values) || function(o) {
|
|
|
36
36
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.
|
|
40
|
-
var
|
|
41
|
-
function
|
|
39
|
+
exports.MethodReflector = void 0;
|
|
40
|
+
var MethodReflector = /** @class */ (function () {
|
|
41
|
+
function MethodReflector(hookKey) {
|
|
42
42
|
this.hookKey = hookKey;
|
|
43
43
|
}
|
|
44
44
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
45
|
-
|
|
46
|
-
var targetId =
|
|
45
|
+
MethodReflector.prototype.addHook = function (target, propertyKey) {
|
|
46
|
+
var targetId = MethodReflector.getTargetId(target);
|
|
47
47
|
var hooks = Reflect.getMetadata(this.hookKey, targetId) || [];
|
|
48
48
|
Reflect.defineMetadata(this.hookKey, __spreadArray(__spreadArray([], __read(hooks), false), [propertyKey], false), targetId);
|
|
49
49
|
};
|
|
50
50
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
51
|
-
|
|
51
|
+
MethodReflector.prototype.invokeHooksOf = function (target) {
|
|
52
52
|
var e_1, _a;
|
|
53
|
-
var targetId =
|
|
53
|
+
var targetId = MethodReflector.getTargetId(target);
|
|
54
54
|
var hooks = Reflect.hasMetadata(this.hookKey, targetId)
|
|
55
55
|
? Reflect.getMetadata(this.hookKey, targetId)
|
|
56
56
|
: [];
|
|
@@ -69,10 +69,17 @@ var MethodsMetadataCollector = /** @class */ (function () {
|
|
|
69
69
|
}
|
|
70
70
|
};
|
|
71
71
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
72
|
-
|
|
72
|
+
MethodReflector.getTargetId = function (target) {
|
|
73
73
|
return target.constructor;
|
|
74
74
|
};
|
|
75
|
-
|
|
75
|
+
MethodReflector.prototype.createMethodHookDecorator = function () {
|
|
76
|
+
var _this = this;
|
|
77
|
+
return function (target, propertyKey) {
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
79
|
+
_this.addHook(target, propertyKey);
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
return MethodReflector;
|
|
76
83
|
}());
|
|
77
|
-
exports.
|
|
78
|
-
//# sourceMappingURL=
|
|
84
|
+
exports.MethodReflector = MethodReflector;
|
|
85
|
+
//# sourceMappingURL=MethodReflector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/MethodReflector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;IACI,yBAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IAChD,iCAAO,GAAf,UAA0C,MAAiB,EAAE,WAA4B;QACrF,IAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,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,uCAAa,GAAb,UAAwC,MAAiB;;QACrD,IAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,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,2BAAW,GAA1B,UAA2D,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,mDAAyB,GAAzB;QAAA,iBAKC;QAJG,OAAO,UAAC,MAAM,EAAE,WAAW;YACvB,wDAAwD;YACxD,KAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC;IACN,CAAC;IACL,sBAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,0CAAe"}
|
package/cjm/index.d.ts
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import { constructor } from './core/utils/types';
|
|
2
|
-
import { ProviderBuilder } from './providers/ProviderBuilder';
|
|
3
|
-
import { ResolveDependency } from './core/provider/IProvider';
|
|
4
1
|
import { IContainer, InjectionToken } from './core/container/IContainer';
|
|
5
2
|
export { ContainerHook } from './hooks/ContainerHook';
|
|
6
|
-
export { ProviderReducer } from './core/provider/
|
|
3
|
+
export { ProviderReducer } from './core/provider/IProviderReflector';
|
|
7
4
|
export { IContainer, Resolveable } from './core/container/IContainer';
|
|
8
5
|
export { constructor } from './core/utils/types';
|
|
9
6
|
export { Container } from './core/container/Container';
|
|
10
7
|
export { ScopeOptions, ResolveDependency, Tag, IProvider } from './core/provider/IProvider';
|
|
11
8
|
export { IInjector } from './core/IInjector';
|
|
12
9
|
export { SimpleInjector } from './injectors/SimpleInjector';
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
10
|
+
export { IMethodReflector } from './hooks/IMethodReflector';
|
|
11
|
+
export { MethodReflector } from './hooks/MethodReflector';
|
|
15
12
|
export { InjectionToken } from './core/container/IContainer';
|
|
16
13
|
export { ProviderNotFoundError } from './core/provider/ProviderNotFoundError';
|
|
17
14
|
export { MethodNotImplementedError } from './core/utils/MethodNotImplementedError';
|
|
@@ -21,24 +18,17 @@ export { ArgsProvider, ArgsFn, createArgsFnDecorator } from './providers/ArgsPro
|
|
|
21
18
|
export { IContainerHook } from './core/container/IContainerHook';
|
|
22
19
|
export { TaggedProvider } from './providers/TaggedProvider';
|
|
23
20
|
export { ProxyInjector } from './injectors/ProxyInjector';
|
|
24
|
-
export { LevelProvider,
|
|
21
|
+
export { LevelProvider, perLevel } from './providers/LevelProvider';
|
|
25
22
|
export { IMockRepository } from './automock/IMockRepository';
|
|
26
23
|
export { AutoMockedContainer } from './automock/AutoMockedContainer';
|
|
27
24
|
export { SingletonProvider } from './providers/SingletonProvider';
|
|
28
25
|
export { ProviderBuilder } from './providers/ProviderBuilder';
|
|
29
|
-
export {
|
|
30
|
-
export {
|
|
26
|
+
export { IProviderReflector } from './core/provider/IProviderReflector';
|
|
27
|
+
export { ProviderReflector } from './core/provider/ProviderReflector';
|
|
31
28
|
export { IDisposable } from './core/utils/types';
|
|
32
29
|
export { ProviderKey } from './core/provider/IProvider';
|
|
33
30
|
export { isProviderKey } from './core/provider/IProvider';
|
|
34
|
-
export {
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
37
|
-
export declare const forKey: (key: import("./core/provider/IProvider").ProviderKey) => ClassDecorator;
|
|
38
|
-
export declare const asSingleton: ClassDecorator;
|
|
39
|
-
export declare const perTags: (...tags: string[]) => ClassDecorator;
|
|
40
|
-
export declare function fromClass<T>(value: constructor<T>): ProviderBuilder<T>;
|
|
41
|
-
export declare function fromValue<T>(value: T): ProviderBuilder<T>;
|
|
42
|
-
export declare function fromFn<T>(fn: ResolveDependency<T>): ProviderBuilder<T>;
|
|
43
|
-
export { createMethodHookDecorator } from './hooks/IMethodsMetadataCollector';
|
|
31
|
+
export { perTags } from './providers/TaggedProvider';
|
|
32
|
+
export { asSingleton } from './providers/SingletonProvider';
|
|
33
|
+
export { forKey } from './core/provider/Provider';
|
|
44
34
|
export declare const by: <T>(key: InjectionToken<T>, ...args: unknown[]) => (l: IContainer) => T;
|
package/cjm/index.js
CHANGED
|
@@ -25,72 +25,49 @@ 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.by = exports.
|
|
29
|
-
var Provider_1 = require("./core/provider/Provider");
|
|
30
|
-
var ProvidersMetadataCollector_1 = require("./core/provider/ProvidersMetadataCollector");
|
|
31
|
-
var SingletonProvider_1 = require("./providers/SingletonProvider");
|
|
32
|
-
var TaggedProvider_1 = require("./providers/TaggedProvider");
|
|
33
|
-
var ProviderBuilder_1 = require("./providers/ProviderBuilder");
|
|
28
|
+
exports.by = exports.forKey = exports.asSingleton = exports.perTags = exports.isProviderKey = exports.ProviderReflector = exports.ProviderBuilder = exports.SingletonProvider = exports.AutoMockedContainer = exports.perLevel = exports.LevelProvider = exports.ProxyInjector = exports.TaggedProvider = exports.createArgsFnDecorator = exports.ArgsProvider = exports.Provider = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.MethodReflector = exports.SimpleInjector = exports.Container = exports.ContainerHook = void 0;
|
|
34
29
|
var ContainerHook_1 = require("./hooks/ContainerHook");
|
|
35
30
|
Object.defineProperty(exports, "ContainerHook", { enumerable: true, get: function () { return ContainerHook_1.ContainerHook; } });
|
|
36
31
|
var Container_1 = require("./core/container/Container");
|
|
37
32
|
Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return Container_1.Container; } });
|
|
38
33
|
var SimpleInjector_1 = require("./injectors/SimpleInjector");
|
|
39
34
|
Object.defineProperty(exports, "SimpleInjector", { enumerable: true, get: function () { return SimpleInjector_1.SimpleInjector; } });
|
|
40
|
-
var
|
|
41
|
-
Object.defineProperty(exports, "
|
|
35
|
+
var MethodReflector_1 = require("./hooks/MethodReflector");
|
|
36
|
+
Object.defineProperty(exports, "MethodReflector", { enumerable: true, get: function () { return MethodReflector_1.MethodReflector; } });
|
|
42
37
|
var ProviderNotFoundError_1 = require("./core/provider/ProviderNotFoundError");
|
|
43
38
|
Object.defineProperty(exports, "ProviderNotFoundError", { enumerable: true, get: function () { return ProviderNotFoundError_1.ProviderNotFoundError; } });
|
|
44
39
|
var MethodNotImplementedError_1 = require("./core/utils/MethodNotImplementedError");
|
|
45
40
|
Object.defineProperty(exports, "MethodNotImplementedError", { enumerable: true, get: function () { return MethodNotImplementedError_1.MethodNotImplementedError; } });
|
|
46
41
|
var ContainerDisposedError_1 = require("./core/container/ContainerDisposedError");
|
|
47
42
|
Object.defineProperty(exports, "ContainerDisposedError", { enumerable: true, get: function () { return ContainerDisposedError_1.ContainerDisposedError; } });
|
|
48
|
-
var
|
|
49
|
-
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return
|
|
43
|
+
var Provider_1 = require("./core/provider/Provider");
|
|
44
|
+
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return Provider_1.Provider; } });
|
|
50
45
|
var ArgsProvider_1 = require("./providers/ArgsProvider");
|
|
51
46
|
Object.defineProperty(exports, "ArgsProvider", { enumerable: true, get: function () { return ArgsProvider_1.ArgsProvider; } });
|
|
52
47
|
Object.defineProperty(exports, "createArgsFnDecorator", { enumerable: true, get: function () { return ArgsProvider_1.createArgsFnDecorator; } });
|
|
53
|
-
var
|
|
54
|
-
Object.defineProperty(exports, "TaggedProvider", { enumerable: true, get: function () { return
|
|
48
|
+
var TaggedProvider_1 = require("./providers/TaggedProvider");
|
|
49
|
+
Object.defineProperty(exports, "TaggedProvider", { enumerable: true, get: function () { return TaggedProvider_1.TaggedProvider; } });
|
|
55
50
|
var ProxyInjector_1 = require("./injectors/ProxyInjector");
|
|
56
51
|
Object.defineProperty(exports, "ProxyInjector", { enumerable: true, get: function () { return ProxyInjector_1.ProxyInjector; } });
|
|
57
52
|
var LevelProvider_1 = require("./providers/LevelProvider");
|
|
58
53
|
Object.defineProperty(exports, "LevelProvider", { enumerable: true, get: function () { return LevelProvider_1.LevelProvider; } });
|
|
59
|
-
Object.defineProperty(exports, "
|
|
54
|
+
Object.defineProperty(exports, "perLevel", { enumerable: true, get: function () { return LevelProvider_1.perLevel; } });
|
|
60
55
|
var AutoMockedContainer_1 = require("./automock/AutoMockedContainer");
|
|
61
56
|
Object.defineProperty(exports, "AutoMockedContainer", { enumerable: true, get: function () { return AutoMockedContainer_1.AutoMockedContainer; } });
|
|
62
|
-
var
|
|
63
|
-
Object.defineProperty(exports, "SingletonProvider", { enumerable: true, get: function () { return
|
|
64
|
-
var
|
|
65
|
-
Object.defineProperty(exports, "ProviderBuilder", { enumerable: true, get: function () { return
|
|
66
|
-
var
|
|
67
|
-
Object.defineProperty(exports, "
|
|
57
|
+
var SingletonProvider_1 = require("./providers/SingletonProvider");
|
|
58
|
+
Object.defineProperty(exports, "SingletonProvider", { enumerable: true, get: function () { return SingletonProvider_1.SingletonProvider; } });
|
|
59
|
+
var ProviderBuilder_1 = require("./providers/ProviderBuilder");
|
|
60
|
+
Object.defineProperty(exports, "ProviderBuilder", { enumerable: true, get: function () { return ProviderBuilder_1.ProviderBuilder; } });
|
|
61
|
+
var ProviderReflector_1 = require("./core/provider/ProviderReflector");
|
|
62
|
+
Object.defineProperty(exports, "ProviderReflector", { enumerable: true, get: function () { return ProviderReflector_1.ProviderReflector; } });
|
|
68
63
|
var IProvider_1 = require("./core/provider/IProvider");
|
|
69
64
|
Object.defineProperty(exports, "isProviderKey", { enumerable: true, get: function () { return IProvider_1.isProviderKey; } });
|
|
70
|
-
var
|
|
71
|
-
Object.defineProperty(exports, "
|
|
72
|
-
var
|
|
73
|
-
Object.defineProperty(exports, "
|
|
74
|
-
var
|
|
75
|
-
Object.defineProperty(exports, "
|
|
76
|
-
var providerMetadataCollector = ProvidersMetadataCollector_1.ProvidersMetadataCollector.create();
|
|
77
|
-
exports.forKey = (0, Provider_1.createAddKeyDecorator)(providerMetadataCollector);
|
|
78
|
-
exports.asSingleton = (0, SingletonProvider_1.createSingletonDecorator)(providerMetadataCollector);
|
|
79
|
-
exports.perTags = (0, TaggedProvider_1.createTagsDecorator)(providerMetadataCollector);
|
|
80
|
-
function fromClass(value) {
|
|
81
|
-
return new ProviderBuilder_1.ProviderBuilder(Provider_1.Provider.fromClass(value)).map(providerMetadataCollector.findReducerOrCreate(value));
|
|
82
|
-
}
|
|
83
|
-
exports.fromClass = fromClass;
|
|
84
|
-
function fromValue(value) {
|
|
85
|
-
return new ProviderBuilder_1.ProviderBuilder(Provider_1.Provider.fromValue(value));
|
|
86
|
-
}
|
|
87
|
-
exports.fromValue = fromValue;
|
|
88
|
-
function fromFn(fn) {
|
|
89
|
-
return new ProviderBuilder_1.ProviderBuilder(new Provider_1.Provider(fn));
|
|
90
|
-
}
|
|
91
|
-
exports.fromFn = fromFn;
|
|
92
|
-
var IMethodsMetadataCollector_1 = require("./hooks/IMethodsMetadataCollector");
|
|
93
|
-
Object.defineProperty(exports, "createMethodHookDecorator", { enumerable: true, get: function () { return IMethodsMetadataCollector_1.createMethodHookDecorator; } });
|
|
65
|
+
var TaggedProvider_2 = require("./providers/TaggedProvider");
|
|
66
|
+
Object.defineProperty(exports, "perTags", { enumerable: true, get: function () { return TaggedProvider_2.perTags; } });
|
|
67
|
+
var SingletonProvider_2 = require("./providers/SingletonProvider");
|
|
68
|
+
Object.defineProperty(exports, "asSingleton", { enumerable: true, get: function () { return SingletonProvider_2.asSingleton; } });
|
|
69
|
+
var Provider_2 = require("./core/provider/Provider");
|
|
70
|
+
Object.defineProperty(exports, "forKey", { enumerable: true, get: function () { return Provider_2.forKey; } });
|
|
94
71
|
var by = function (key) {
|
|
95
72
|
var args = [];
|
|
96
73
|
for (var _i = 1; _i < arguments.length; _i++) {
|
package/cjm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AAItB,wDAAuD;AAA9C,sGAAA,SAAS,OAAA;AAGlB,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AAExB,+EAA8E;AAArE,8HAAA,qBAAqB,OAAA;AAC9B,oFAAmF;AAA1E,sIAAA,yBAAyB,OAAA;AAClC,kFAAiF;AAAxE,gIAAA,sBAAsB,OAAA;AAC/B,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,yDAAuF;AAA9E,4GAAA,YAAY,OAAA;AAAU,qHAAA,qBAAqB,OAAA;AAEpD,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AACvB,2DAA0D;AAAjD,8GAAA,aAAa,OAAA;AACtB,2DAAoE;AAA3D,8GAAA,aAAa,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAEhC,sEAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAC5B,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,+DAA8D;AAArD,kHAAA,eAAe,OAAA;AAExB,uEAAsE;AAA7D,sHAAA,iBAAiB,OAAA;AAG1B,uDAA0D;AAAjD,0GAAA,aAAa,OAAA;AACtB,6DAAqD;AAA5C,yGAAA,OAAO,OAAA;AAChB,mEAA4D;AAAnD,gHAAA,WAAW,OAAA;AACpB,qDAAkD;AAAzC,kGAAA,MAAM,OAAA;AAER,IAAM,EAAE,GACX,UAAI,GAAsB;IAAE,cAAkB;SAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;QAAlB,6BAAkB;;IAC9C,OAAA,UAAC,CAAa;QACV,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAY,GAAG,UAAK,IAAI;IAAzB,CAA0B;AAD9B,CAC8B,CAAC;AAHtB,QAAA,EAAE,MAGoB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ProviderDecorator } from '../core/provider/ProviderDecorator';
|
|
2
2
|
import { Resolveable } from '../core/container/IContainer';
|
|
3
3
|
import { IProvider } from '../core/provider/IProvider';
|
|
4
|
-
import {
|
|
4
|
+
import { IProviderReflector } from '../core/provider/IProviderReflector';
|
|
5
5
|
export declare type ArgsFn = (l: Resolveable) => any[];
|
|
6
6
|
export declare class ArgsProvider<T> extends ProviderDecorator<T> {
|
|
7
7
|
private provider;
|
|
@@ -10,4 +10,4 @@ export declare class ArgsProvider<T> extends ProviderDecorator<T> {
|
|
|
10
10
|
resolve(container: Resolveable, ...args: any[]): T;
|
|
11
11
|
clone(): ProviderDecorator<T>;
|
|
12
12
|
}
|
|
13
|
-
export declare const createArgsFnDecorator: (metadataCollector:
|
|
13
|
+
export declare const createArgsFnDecorator: (metadataCollector: IProviderReflector) => (argsFn: ArgsFn) => ClassDecorator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArgsProvider.js","sourceRoot":"","sources":["../../lib/providers/ArgsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wEAAuE;AAQvE;IAAqC,gCAAoB;IACrD,sBAAoB,QAAsB,EAAU,MAAc;QAAlE,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAU,YAAM,GAAN,MAAM,CAAQ;;IAElE,CAAC;IAED,8BAAO,GAAP,UAAQ,SAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,OAAO,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,wCAAC,SAAS,UAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAK,IAAI,WAAE;IAChF,CAAC;IAED,4BAAK,GAAL;QACI,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IACL,mBAAC;AAAD,CAAC,AAZD,CAAqC,qCAAiB,GAYrD;AAZY,oCAAY;AAclB,IAAM,qBAAqB,GAC9B,UAAC,
|
|
1
|
+
{"version":3,"file":"ArgsProvider.js","sourceRoot":"","sources":["../../lib/providers/ArgsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wEAAuE;AAQvE;IAAqC,gCAAoB;IACrD,sBAAoB,QAAsB,EAAU,MAAc;QAAlE,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAU,YAAM,GAAN,MAAM,CAAQ;;IAElE,CAAC;IAED,8BAAO,GAAP,UAAQ,SAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,OAAO,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,wCAAC,SAAS,UAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAK,IAAI,WAAE;IAChF,CAAC;IAED,4BAAK,GAAL;QACI,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IACL,mBAAC;AAAD,CAAC,AAZD,CAAqC,qCAAiB,GAYrD;AAZY,oCAAY;AAclB,IAAM,qBAAqB,GAC9B,UAAC,iBAAqC;IACtC,OAAA,UAAC,MAAc;QACf,OAAA,UAAC,MAAM;YACH,IAAM,WAAW,GAAG,MAAqC,CAAC;YAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAA9B,CAA8B,CAAC,CAAC;QAC3F,CAAC;IAJD,CAIC;AALD,CAKC,CAAC;AAPO,QAAA,qBAAqB,yBAO5B"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { IProvider, ScopeOptions } from '../core/provider/IProvider';
|
|
2
2
|
import { ProviderDecorator } from '../core/provider/ProviderDecorator';
|
|
3
|
-
import { IProvidersMetadataCollector } from '../core/provider/IProvidersMetadataCollector';
|
|
4
3
|
export declare class LevelProvider<T> extends ProviderDecorator<T> {
|
|
5
4
|
private provider;
|
|
6
5
|
private readonly range;
|
|
@@ -8,4 +7,4 @@ export declare class LevelProvider<T> extends ProviderDecorator<T> {
|
|
|
8
7
|
clone(): LevelProvider<T>;
|
|
9
8
|
isValid(filters: ScopeOptions): boolean;
|
|
10
9
|
}
|
|
11
|
-
export declare const
|
|
10
|
+
export declare const perLevel: (value: number) => ClassDecorator;
|
|
@@ -31,8 +31,9 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
31
31
|
return ar;
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.
|
|
34
|
+
exports.perLevel = exports.LevelProvider = void 0;
|
|
35
35
|
var ProviderDecorator_1 = require("../core/provider/ProviderDecorator");
|
|
36
|
+
var ProviderReflector_1 = require("../core/provider/ProviderReflector");
|
|
36
37
|
var LevelProvider = /** @class */ (function (_super) {
|
|
37
38
|
__extends(LevelProvider, _super);
|
|
38
39
|
function LevelProvider(provider, range) {
|
|
@@ -52,14 +53,12 @@ var LevelProvider = /** @class */ (function (_super) {
|
|
|
52
53
|
return LevelProvider;
|
|
53
54
|
}(ProviderDecorator_1.ProviderDecorator));
|
|
54
55
|
exports.LevelProvider = LevelProvider;
|
|
55
|
-
var
|
|
56
|
-
return function (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
metadataCollector.addReducer(targetClass, function (builder) { return fn(builder).forLevel(value); });
|
|
61
|
-
};
|
|
56
|
+
var perLevel = function (value) {
|
|
57
|
+
return function (target) {
|
|
58
|
+
var targetClass = target;
|
|
59
|
+
var fn = ProviderReflector_1.providerReflector.findReducerOrCreate(targetClass);
|
|
60
|
+
ProviderReflector_1.providerReflector.addReducer(targetClass, function (builder) { return fn(builder).forLevel(value); });
|
|
62
61
|
};
|
|
63
62
|
};
|
|
64
|
-
exports.
|
|
63
|
+
exports.perLevel = perLevel;
|
|
65
64
|
//# sourceMappingURL=LevelProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LevelProvider.js","sourceRoot":"","sources":["../../lib/providers/LevelProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuE;
|
|
1
|
+
{"version":3,"file":"LevelProvider.js","sourceRoot":"","sources":["../../lib/providers/LevelProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuE;AAEvE,wEAAuE;AAEvE;IAAsC,iCAAoB;IACtD,uBAAoB,QAAsB,EAAmB,KAAuB;QAApF,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAmB,WAAK,GAAL,KAAK,CAAkB;;IAEpF,CAAC;IAED,6BAAK,GAAL;QACI,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,+BAAO,GAAP,UAAQ,OAAqB;QACjB,IAAA,KAAK,GAAK,OAAO,MAAZ,CAAa;QACpB,IAAA,KAAA,OAAa,IAAI,CAAC,KAAK,IAAA,EAAtB,IAAI,QAAA,EAAE,EAAE,QAAc,CAAC;QAC9B,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;IACL,oBAAC;AAAD,CAAC,AAdD,CAAsC,qCAAiB,GActD;AAdY,sCAAa;AAgBnB,IAAM,QAAQ,GACjB,UAAC,KAAa;IACd,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,qCAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA3B,CAA2B,CAAC,CAAC;IACxF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,QAAQ,YAMf"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { IProvider, ProviderKey, Tag } from '../core/provider/IProvider';
|
|
2
|
-
import { ProviderReducer } from '../core/provider/
|
|
2
|
+
import { ProviderReducer } from '../core/provider/IProviderReflector';
|
|
3
3
|
import { ArgsFn } from './ArgsProvider';
|
|
4
|
+
import { constructor } from '../core/utils/types';
|
|
4
5
|
export declare class ProviderBuilder<T> {
|
|
5
6
|
private provider;
|
|
7
|
+
static fromClass<T>(value: constructor<T>): ProviderBuilder<T>;
|
|
8
|
+
static fromValue<T>(value: T): ProviderBuilder<T>;
|
|
9
|
+
static fromFn<T>(fn: (...args: any[]) => T): ProviderBuilder<T>;
|
|
6
10
|
constructor(provider: IProvider<T>);
|
|
7
11
|
withArgs(...extraArgs: any[]): this;
|
|
8
12
|
withArgsFn(argsFn: ArgsFn): this;
|
|
@@ -5,10 +5,21 @@ var SingletonProvider_1 = require("./SingletonProvider");
|
|
|
5
5
|
var TaggedProvider_1 = require("./TaggedProvider");
|
|
6
6
|
var LevelProvider_1 = require("./LevelProvider");
|
|
7
7
|
var ArgsProvider_1 = require("./ArgsProvider");
|
|
8
|
+
var Provider_1 = require("../core/provider/Provider");
|
|
9
|
+
var ProviderReflector_1 = require("../core/provider/ProviderReflector");
|
|
8
10
|
var ProviderBuilder = /** @class */ (function () {
|
|
9
11
|
function ProviderBuilder(provider) {
|
|
10
12
|
this.provider = provider;
|
|
11
13
|
}
|
|
14
|
+
ProviderBuilder.fromClass = function (value) {
|
|
15
|
+
return new ProviderBuilder(Provider_1.Provider.fromClass(value)).map(ProviderReflector_1.providerReflector.findReducerOrCreate(value));
|
|
16
|
+
};
|
|
17
|
+
ProviderBuilder.fromValue = function (value) {
|
|
18
|
+
return new ProviderBuilder(Provider_1.Provider.fromValue(value));
|
|
19
|
+
};
|
|
20
|
+
ProviderBuilder.fromFn = function (fn) {
|
|
21
|
+
return new ProviderBuilder(new Provider_1.Provider(fn));
|
|
22
|
+
};
|
|
12
23
|
ProviderBuilder.prototype.withArgs = function () {
|
|
13
24
|
var extraArgs = [];
|
|
14
25
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/providers/ProviderBuilder.ts"],"names":[],"mappings":";;;AACA,yDAAwD;AACxD,mDAAkD;AAClD,iDAAgD;AAEhD,+CAAsD;
|
|
1
|
+
{"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/providers/ProviderBuilder.ts"],"names":[],"mappings":";;;AACA,yDAAwD;AACxD,mDAAkD;AAClD,iDAAgD;AAEhD,+CAAsD;AACtD,sDAAqD;AAErD,wEAAuE;AAEvE;IAaI,yBAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAZvC,yBAAS,GAAhB,UAAoB,KAAqB;QACrC,OAAO,IAAI,eAAe,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,qCAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5G,CAAC;IAEM,yBAAS,GAAhB,UAAoB,KAAQ;QACxB,OAAO,IAAI,eAAe,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,sBAAM,GAAb,UAAiB,EAAyB;QACtC,OAAO,IAAI,eAAe,CAAC,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAID,kCAAQ,GAAR;QAAS,mBAAmB;aAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;YAAnB,8BAAmB;;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oCAAU,GAAV,UAAW,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6BAAG,GAAH,UAAI,OAA2B;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,iCAAO,GAAP;QAAQ,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAQ,GAAR,UAAS,KAAa;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gCAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAK,GAAL;QACI,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACL,sBAAC;AAAD,CAAC,AApDD,IAoDC;AApDY,0CAAe"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Resolveable } from '../core/container/IContainer';
|
|
2
2
|
import { ProviderDecorator } from '../core/provider/ProviderDecorator';
|
|
3
3
|
import { IProvider } from '../core/provider/IProvider';
|
|
4
|
-
import { IProvidersMetadataCollector } from '../core/provider/IProvidersMetadataCollector';
|
|
5
4
|
export declare class SingletonProvider<T> extends ProviderDecorator<T> {
|
|
6
5
|
private readonly provider;
|
|
7
6
|
private instance;
|
|
@@ -10,4 +9,4 @@ export declare class SingletonProvider<T> extends ProviderDecorator<T> {
|
|
|
10
9
|
dispose(): void;
|
|
11
10
|
resolve(container: Resolveable, ...args: any[]): T;
|
|
12
11
|
}
|
|
13
|
-
export declare const
|
|
12
|
+
export declare const asSingleton: ClassDecorator;
|