ts-ioc-container 22.3.6 → 22.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjm/container/AutoMockedContainer.d.ts +2 -2
- package/cjm/container/AutoMockedContainer.js.map +1 -1
- package/cjm/container/Container.d.ts +4 -4
- package/cjm/container/Container.js +2 -2
- package/cjm/container/Container.js.map +1 -1
- package/cjm/container/EmptyContainer.d.ts +3 -3
- package/cjm/container/IContainer.d.ts +10 -4
- package/cjm/container/IContainer.js +5 -0
- package/cjm/container/IContainer.js.map +1 -1
- package/cjm/index.d.ts +5 -3
- package/cjm/index.js +3 -3
- package/cjm/index.js.map +1 -1
- package/cjm/provider/IProvider.d.ts +1 -7
- package/cjm/provider/IProvider.js +0 -5
- package/cjm/provider/IProvider.js.map +1 -1
- package/cjm/provider/ProviderBuilder.d.ts +2 -1
- package/cjm/provider/ProviderBuilder.js.map +1 -1
- package/cjm/provider/ProviderDecorator.d.ts +2 -2
- package/cjm/provider/ProviderRepo.d.ts +5 -4
- package/cjm/provider/ProviderRepo.js.map +1 -1
- package/cjm/provider/TaggedProvider.d.ts +2 -1
- package/cjm/provider/TaggedProvider.js.map +1 -1
- package/cjm/registration/Registration.d.ts +3 -4
- package/cjm/registration/Registration.js +5 -6
- package/cjm/registration/Registration.js.map +1 -1
- package/esm/container/AutoMockedContainer.d.ts +2 -2
- package/esm/container/AutoMockedContainer.js.map +1 -1
- package/esm/container/Container.d.ts +4 -4
- package/esm/container/Container.js +2 -2
- package/esm/container/Container.js.map +1 -1
- package/esm/container/EmptyContainer.d.ts +3 -3
- package/esm/container/IContainer.d.ts +10 -4
- package/esm/container/IContainer.js +3 -1
- package/esm/container/IContainer.js.map +1 -1
- package/esm/index.d.ts +5 -3
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/provider/IProvider.d.ts +1 -7
- package/esm/provider/IProvider.js +1 -3
- package/esm/provider/IProvider.js.map +1 -1
- package/esm/provider/ProviderBuilder.d.ts +2 -1
- package/esm/provider/ProviderBuilder.js.map +1 -1
- package/esm/provider/ProviderDecorator.d.ts +2 -2
- package/esm/provider/ProviderRepo.d.ts +5 -4
- package/esm/provider/ProviderRepo.js.map +1 -1
- package/esm/provider/TaggedProvider.d.ts +2 -1
- package/esm/provider/TaggedProvider.js.map +1 -1
- package/esm/registration/Registration.d.ts +3 -4
- package/esm/registration/Registration.js +6 -7
- package/esm/registration/Registration.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { IContainer, InjectionToken, IProvider,
|
|
1
|
+
import { IContainer, InjectionToken, IProvider, DependencyKey } from '../index';
|
|
2
2
|
export declare abstract class AutoMockedContainer implements IContainer {
|
|
3
3
|
createScope(): IContainer;
|
|
4
4
|
abstract resolve<T>(key: InjectionToken<T>): T;
|
|
5
5
|
abstract dispose(): void;
|
|
6
|
-
getProviders(): Map<
|
|
6
|
+
getProviders(): Map<DependencyKey, IProvider>;
|
|
7
7
|
register(): this;
|
|
8
8
|
getInstances(): unknown[];
|
|
9
9
|
removeScope(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/container/AutoMockedContainer.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/container/AutoMockedContainer.ts"],"names":[],"mappings":";;;AAAA,kCAA2G;AAE3G;IAAA;IA0BA,CAAC;IAzBG,yCAAW,GAAX;QACI,MAAM,IAAI,iCAAyB,EAAE,CAAC;IAC1C,CAAC;IAMD,0CAAY,GAAZ;QACI,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,sCAAQ,GAAR;QACI,MAAM,IAAI,iCAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,0CAAY,GAAZ;QACI,OAAO,EAAE,CAAC;IACd,CAAC;IAED,yCAAW,GAAX,cAAqB,CAAC;IAEtB,iCAAG,GAAH;QACI,MAAM,IAAI,iCAAyB,EAAE,CAAC;IAC1C,CAAC;IACL,0BAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BqB,kDAAmB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { IContainer, IContainerModule, InjectionToken } from './IContainer';
|
|
1
|
+
import { DependencyKey, IContainer, IContainerModule, InjectionToken, Tag, Tagged } from './IContainer';
|
|
2
2
|
import { IInjector } from '../IInjector';
|
|
3
|
-
import { IProvider
|
|
3
|
+
import { IProvider } from '../provider/IProvider';
|
|
4
4
|
export declare class Container implements IContainer, Tagged {
|
|
5
5
|
private readonly injector;
|
|
6
6
|
private readonly providers;
|
|
@@ -13,13 +13,13 @@ export declare class Container implements IContainer, Tagged {
|
|
|
13
13
|
parent?: IContainer;
|
|
14
14
|
tags?: Tag[];
|
|
15
15
|
});
|
|
16
|
-
register(key:
|
|
16
|
+
register(key: DependencyKey, provider: IProvider): this;
|
|
17
17
|
resolve<T>(key: InjectionToken<T>, ...args: unknown[]): T;
|
|
18
18
|
private resolveByProvider;
|
|
19
19
|
private resolveByInjector;
|
|
20
20
|
createScope(tags?: Tag[]): Container;
|
|
21
21
|
dispose(): void;
|
|
22
|
-
getProviders(): Map<
|
|
22
|
+
getProviders(): Map<DependencyKey, IProvider>;
|
|
23
23
|
getInstances(): unknown[];
|
|
24
24
|
removeScope(child: IContainer): void;
|
|
25
25
|
hasTag(tag: Tag): boolean;
|
|
@@ -37,7 +37,7 @@ var __values = (this && this.__values) || function(o) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.Container = void 0;
|
|
40
|
-
var
|
|
40
|
+
var IContainer_1 = require("./IContainer");
|
|
41
41
|
var EmptyContainer_1 = require("./EmptyContainer");
|
|
42
42
|
var ProviderRepo_1 = require("../provider/ProviderRepo");
|
|
43
43
|
var ContainerDisposedError_1 = require("./ContainerDisposedError");
|
|
@@ -64,7 +64,7 @@ var Container = /** @class */ (function () {
|
|
|
64
64
|
args[_i - 1] = arguments[_i];
|
|
65
65
|
}
|
|
66
66
|
this.validateContainer();
|
|
67
|
-
return (0,
|
|
67
|
+
return (0, IContainer_1.isDependencyKey)(key) ? this.resolveByProvider.apply(this, __spreadArray([key], __read(args), false)) : this.resolveByInjector.apply(this, __spreadArray([key], __read(args), false));
|
|
68
68
|
};
|
|
69
69
|
Container.prototype.resolveByProvider = function (key) {
|
|
70
70
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { IContainer, InjectionToken } from './IContainer';
|
|
2
|
-
import { IProvider
|
|
1
|
+
import { DependencyKey, IContainer, InjectionToken } from './IContainer';
|
|
2
|
+
import { IProvider } from '../provider/IProvider';
|
|
3
3
|
export declare class EmptyContainer implements IContainer {
|
|
4
4
|
createScope(): IContainer;
|
|
5
5
|
dispose(): void;
|
|
6
6
|
register(): this;
|
|
7
7
|
resolve<T>(key: InjectionToken<T>): T;
|
|
8
|
-
getProviders(): Map<
|
|
8
|
+
getProviders(): Map<DependencyKey, IProvider>;
|
|
9
9
|
getInstances(): unknown[];
|
|
10
10
|
removeScope(): void;
|
|
11
11
|
add(): this;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import { IProvider
|
|
1
|
+
import { IProvider } from '../provider/IProvider';
|
|
2
2
|
import { constructor } from '../utils';
|
|
3
|
-
export declare type
|
|
3
|
+
export declare type Tag = string;
|
|
4
|
+
export interface Tagged {
|
|
5
|
+
hasTag(tag: Tag): boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare type DependencyKey = string | symbol;
|
|
8
|
+
export declare function isDependencyKey<T>(token: InjectionToken<T>): token is DependencyKey;
|
|
9
|
+
export declare type InjectionToken<T = unknown> = constructor<T> | DependencyKey;
|
|
4
10
|
export interface Resolvable {
|
|
5
11
|
resolve<T>(key: InjectionToken<T>, ...args: unknown[]): T;
|
|
6
12
|
}
|
|
@@ -9,8 +15,8 @@ export interface IContainerModule {
|
|
|
9
15
|
}
|
|
10
16
|
export interface IContainer extends Resolvable {
|
|
11
17
|
createScope(tags?: Tag[]): IContainer;
|
|
12
|
-
register(key:
|
|
13
|
-
getProviders(): Map<
|
|
18
|
+
register(key: DependencyKey, value: IProvider): this;
|
|
19
|
+
getProviders(): Map<DependencyKey, IProvider>;
|
|
14
20
|
removeScope(child: IContainer): void;
|
|
15
21
|
getInstances(): unknown[];
|
|
16
22
|
dispose(): void;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isDependencyKey = void 0;
|
|
4
|
+
function isDependencyKey(token) {
|
|
5
|
+
return ['string', 'symbol'].includes(typeof token);
|
|
6
|
+
}
|
|
7
|
+
exports.isDependencyKey = isDependencyKey;
|
|
3
8
|
//# sourceMappingURL=IContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IContainer.js","sourceRoot":"","sources":["../../lib/container/IContainer.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"IContainer.js","sourceRoot":"","sources":["../../lib/container/IContainer.ts"],"names":[],"mappings":";;;AAWA,SAAgB,eAAe,CAAI,KAAwB;IACvD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AACvD,CAAC;AAFD,0CAEC"}
|
package/cjm/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { IContainer, Resolvable, IContainerModule } from './container/IContainer
|
|
|
3
3
|
export { EmptyContainer } from './container/EmptyContainer';
|
|
4
4
|
export { constructor } from './utils';
|
|
5
5
|
export { Container } from './container/Container';
|
|
6
|
-
export {
|
|
6
|
+
export { ResolveDependency, IProvider } from './provider/IProvider';
|
|
7
7
|
export { IInjector } from './IInjector';
|
|
8
8
|
export { InjectionToken } from './container/IContainer';
|
|
9
9
|
export { ProviderNotFoundError } from './provider/ProviderNotFoundError';
|
|
@@ -12,8 +12,10 @@ export { ContainerDisposedError } from './container/ContainerDisposedError';
|
|
|
12
12
|
export { Provider } from './provider/Provider';
|
|
13
13
|
export { ArgsFn } from './provider/ArgsProvider';
|
|
14
14
|
export { AutoMockedContainer } from './container/AutoMockedContainer';
|
|
15
|
-
export { ProviderKey } from './provider/IProvider';
|
|
16
15
|
export { ProviderBuilder, perTags, asSingleton } from './provider/ProviderBuilder';
|
|
17
|
-
export { isProviderKey } from './provider/IProvider';
|
|
18
16
|
export { forKey, Registration } from './registration/Registration';
|
|
19
17
|
export declare const by: <T>(key: InjectionToken<T>, ...args: unknown[]) => (l: IContainer) => T;
|
|
18
|
+
export { isDependencyKey } from './container/IContainer';
|
|
19
|
+
export { DependencyKey } from './container/IContainer';
|
|
20
|
+
export { Tagged } from './container/IContainer';
|
|
21
|
+
export { Tag } from './container/IContainer';
|
package/cjm/index.js
CHANGED
|
@@ -25,7 +25,7 @@ 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.isDependencyKey = exports.by = exports.Registration = exports.forKey = exports.asSingleton = exports.perTags = exports.ProviderBuilder = exports.AutoMockedContainer = exports.Provider = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.Container = exports.EmptyContainer = void 0;
|
|
29
29
|
var EmptyContainer_1 = require("./container/EmptyContainer");
|
|
30
30
|
Object.defineProperty(exports, "EmptyContainer", { enumerable: true, get: function () { return EmptyContainer_1.EmptyContainer; } });
|
|
31
31
|
var Container_1 = require("./container/Container");
|
|
@@ -44,8 +44,6 @@ var ProviderBuilder_1 = require("./provider/ProviderBuilder");
|
|
|
44
44
|
Object.defineProperty(exports, "ProviderBuilder", { enumerable: true, get: function () { return ProviderBuilder_1.ProviderBuilder; } });
|
|
45
45
|
Object.defineProperty(exports, "perTags", { enumerable: true, get: function () { return ProviderBuilder_1.perTags; } });
|
|
46
46
|
Object.defineProperty(exports, "asSingleton", { enumerable: true, get: function () { return ProviderBuilder_1.asSingleton; } });
|
|
47
|
-
var IProvider_1 = require("./provider/IProvider");
|
|
48
|
-
Object.defineProperty(exports, "isProviderKey", { enumerable: true, get: function () { return IProvider_1.isProviderKey; } });
|
|
49
47
|
var Registration_1 = require("./registration/Registration");
|
|
50
48
|
Object.defineProperty(exports, "forKey", { enumerable: true, get: function () { return Registration_1.forKey; } });
|
|
51
49
|
Object.defineProperty(exports, "Registration", { enumerable: true, get: function () { return Registration_1.Registration; } });
|
|
@@ -59,4 +57,6 @@ var by = function (key) {
|
|
|
59
57
|
};
|
|
60
58
|
};
|
|
61
59
|
exports.by = by;
|
|
60
|
+
var IContainer_1 = require("./container/IContainer");
|
|
61
|
+
Object.defineProperty(exports, "isDependencyKey", { enumerable: true, get: function () { return IContainer_1.isDependencyKey; } });
|
|
62
62
|
//# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAIlB,0EAAyE;AAAhE,8HAAA,qBAAqB,OAAA;AAC9B,yEAAwE;AAA/D,sIAAA,yBAAyB,OAAA;AAClC,6EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAC/B,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,uEAAsE;AAA7D,0HAAA,mBAAmB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAIlB,0EAAyE;AAAhE,8HAAA,qBAAqB,OAAA;AAC9B,yEAAwE;AAA/D,sIAAA,yBAAyB,OAAA;AAClC,6EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAC/B,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,uEAAsE;AAA7D,0HAAA,mBAAmB,OAAA;AAC5B,8DAAmF;AAA1E,kHAAA,eAAe,OAAA;AAAE,0GAAA,OAAO,OAAA;AAAE,8GAAA,WAAW,OAAA;AAC9C,4DAAmE;AAA1D,sGAAA,MAAM,OAAA;AAAE,4GAAA,YAAY,OAAA;AAEtB,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;AACnC,qDAAyD;AAAhD,6GAAA,eAAe,OAAA"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Resolvable, Tagged } from '../container/IContainer';
|
|
2
2
|
export declare type ResolveDependency<T = unknown> = (container: Resolvable, ...args: unknown[]) => T;
|
|
3
|
-
export declare type Tag = string;
|
|
4
|
-
export interface Tagged {
|
|
5
|
-
hasTag(tag: Tag): boolean;
|
|
6
|
-
}
|
|
7
3
|
export interface IProvider<T = unknown> {
|
|
8
4
|
clone(): IProvider<T>;
|
|
9
5
|
resolve(container: Resolvable, ...args: unknown[]): T;
|
|
10
6
|
isValid(filters: Tagged): boolean;
|
|
11
7
|
dispose(): void;
|
|
12
8
|
}
|
|
13
|
-
export declare type ProviderKey = string | symbol;
|
|
14
|
-
export declare function isProviderKey<T>(token: InjectionToken<T>): token is ProviderKey;
|
|
@@ -1,8 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isProviderKey = void 0;
|
|
4
|
-
function isProviderKey(token) {
|
|
5
|
-
return ['string', 'symbol'].includes(typeof token);
|
|
6
|
-
}
|
|
7
|
-
exports.isProviderKey = isProviderKey;
|
|
8
3
|
//# sourceMappingURL=IProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../lib/provider/IProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../lib/provider/IProvider.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { IProvider, ResolveDependency
|
|
1
|
+
import { IProvider, ResolveDependency } from './IProvider';
|
|
2
2
|
import { ArgsFn } from './ArgsProvider';
|
|
3
3
|
import { constructor } from '../utils';
|
|
4
|
+
import { Tag } from '../container/IContainer';
|
|
4
5
|
export declare const perTags: (...tags: Tag[]) => ClassDecorator;
|
|
5
6
|
export declare const asSingleton: (...tags: Tag[]) => ClassDecorator;
|
|
6
7
|
export declare class ProviderBuilder {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/provider/ProviderBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAsD;AACtD,mDAAkD;AAClD,yDAAwD;AAExD,uCAAsC;AACtC,4CAAoD;
|
|
1
|
+
{"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/provider/ProviderBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Resolvable } from '../container/IContainer';
|
|
2
|
-
import { IProvider
|
|
1
|
+
import { Resolvable, Tagged } from '../container/IContainer';
|
|
2
|
+
import { IProvider } from './IProvider';
|
|
3
3
|
export declare abstract class ProviderDecorator<T> implements IProvider<T> {
|
|
4
4
|
private decorated;
|
|
5
5
|
protected constructor(decorated: IProvider<T>);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { IProvider
|
|
1
|
+
import { IProvider } from './IProvider';
|
|
2
|
+
import { DependencyKey } from '../container/IContainer';
|
|
2
3
|
export declare class ProviderRepo {
|
|
3
4
|
private readonly providers;
|
|
4
|
-
add(key:
|
|
5
|
-
find<T>(key:
|
|
6
|
-
merge(providers: Map<
|
|
5
|
+
add(key: DependencyKey, provider: IProvider): this;
|
|
6
|
+
find<T>(key: DependencyKey): IProvider<T> | undefined;
|
|
7
|
+
merge(providers: Map<DependencyKey, IProvider>): Map<DependencyKey, IProvider>;
|
|
7
8
|
dispose(): void;
|
|
8
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderRepo.js","sourceRoot":"","sources":["../../lib/provider/ProviderRepo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ProviderRepo.js","sourceRoot":"","sources":["../../lib/provider/ProviderRepo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;IAAA;QACqB,cAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IA4BrE,CAAC;IA1BG,0BAAG,GAAH,UAAI,GAAkB,EAAE,QAAmB;QACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,2BAAI,GAAJ,UAAQ,GAAkB;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiB,CAAC;IACnD,CAAC;IAED,4BAAK,GAAL,UAAM,SAAwC;;QAC1C,IAAM,GAAG,GAAG,IAAI,GAAG,EAA4B,CAAC;;YAChD,KAA2B,IAAA,KAAA,SAAA,SAAS,CAAC,OAAO,EAAE,CAAA,gBAAA,4BAAE;gBAArC,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;gBAClB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACvB;;;;;;;;;;YACD,KAA2B,IAAA,KAAA,SAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA,gBAAA,4BAAE;gBAA1C,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;gBAClB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACvB;;;;;;;;;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,8BAAO,GAAP;;;YACI,KAAgB,IAAA,KAAA,SAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA,gBAAA,4BAAE;gBAApC,IAAM,CAAC,WAAA;gBACR,CAAC,CAAC,OAAO,EAAE,CAAC;aACf;;;;;;;;;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IACL,mBAAC;AAAD,CAAC,AA7BD,IA6BC;AA7BY,oCAAY"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { IProvider
|
|
1
|
+
import { IProvider } from './IProvider';
|
|
2
2
|
import { ProviderDecorator } from './ProviderDecorator';
|
|
3
|
+
import { Tag, Tagged } from '../container/IContainer';
|
|
3
4
|
export declare class TaggedProvider<T> extends ProviderDecorator<T> {
|
|
4
5
|
private provider;
|
|
5
6
|
private readonly tags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/provider/TaggedProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,yDAAwD;
|
|
1
|
+
{"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/provider/TaggedProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,yDAAwD;AAGxD;IAAuC,kCAAoB;IACvD,wBAAoB,QAAsB,EAAmB,IAAW;QAAxE,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAmB,UAAI,GAAJ,IAAI,CAAO;;IAExE,CAAC;IAED,8BAAK,GAAL;QACI,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,gCAAO,GAAP,UAAQ,OAAe;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IACL,qBAAC;AAAD,CAAC,AAZD,CAAuC,qCAAiB,GAYvD;AAZY,wCAAc"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { ProviderKey, Tag } from '../provider/IProvider';
|
|
2
1
|
import { ArgsFn } from '../provider/ArgsProvider';
|
|
3
|
-
import { IContainer, IContainerModule } from '../container/IContainer';
|
|
2
|
+
import { DependencyKey, IContainer, IContainerModule, Tag } from '../container/IContainer';
|
|
4
3
|
import { ProviderBuilder } from '../provider/ProviderBuilder';
|
|
5
4
|
import { constructor } from '../utils';
|
|
6
|
-
export declare const forKey: (key:
|
|
5
|
+
export declare const forKey: (key: DependencyKey) => ClassDecorator;
|
|
7
6
|
export declare class Registration implements IContainerModule {
|
|
8
7
|
private key;
|
|
9
8
|
private providerBuilder;
|
|
10
9
|
static fromClass<T>(Target: constructor<T>): Registration;
|
|
11
|
-
constructor(key:
|
|
10
|
+
constructor(key: DependencyKey, providerBuilder: ProviderBuilder);
|
|
12
11
|
withArgs(...extraArgs: unknown[]): this;
|
|
13
12
|
withArgsFn(argsFn: ArgsFn): this;
|
|
14
13
|
perTags(...tags: Tag[]): this;
|
|
@@ -29,8 +29,7 @@ exports.Registration = exports.forKey = void 0;
|
|
|
29
29
|
var RegistrationMissingKeyError_1 = require("./RegistrationMissingKeyError");
|
|
30
30
|
var ProviderBuilder_1 = require("../provider/ProviderBuilder");
|
|
31
31
|
var reflection_1 = require("../reflection");
|
|
32
|
-
var
|
|
33
|
-
var forKey = function (key) { return (0, reflection_1.setProp)('provider-key', key); };
|
|
32
|
+
var forKey = function (key) { return (0, reflection_1.setProp)('DependencyKey', key); };
|
|
34
33
|
exports.forKey = forKey;
|
|
35
34
|
var Registration = /** @class */ (function () {
|
|
36
35
|
function Registration(key, providerBuilder) {
|
|
@@ -38,11 +37,11 @@ var Registration = /** @class */ (function () {
|
|
|
38
37
|
this.providerBuilder = providerBuilder;
|
|
39
38
|
}
|
|
40
39
|
Registration.fromClass = function (Target) {
|
|
41
|
-
var
|
|
42
|
-
if (
|
|
43
|
-
throw new RegistrationMissingKeyError_1.RegistrationMissingKeyError("Pls provide
|
|
40
|
+
var dependencyKey = (0, reflection_1.getProp)(Target, 'DependencyKey');
|
|
41
|
+
if (dependencyKey === undefined) {
|
|
42
|
+
throw new RegistrationMissingKeyError_1.RegistrationMissingKeyError("Pls provide dependency key for " + Target.name);
|
|
44
43
|
}
|
|
45
|
-
return new Registration(
|
|
44
|
+
return new Registration(dependencyKey, ProviderBuilder_1.ProviderBuilder.fromClass(Target));
|
|
46
45
|
};
|
|
47
46
|
Registration.prototype.withArgs = function () {
|
|
48
47
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../lib/registration/Registration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../lib/registration/Registration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6EAA4E;AAE5E,+DAA8D;AAE9D,4CAAiD;AAE1C,IAAM,MAAM,GAAG,UAAC,GAAkB,IAAqB,OAAA,IAAA,oBAAO,EAAC,eAAe,EAAE,GAAG,CAAC,EAA7B,CAA6B,CAAC;AAA/E,QAAA,MAAM,UAAyE;AAE5F;IASI,sBAAoB,GAAkB,EAAU,eAAgC;QAA5D,QAAG,GAAH,GAAG,CAAe;QAAU,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAR7E,sBAAS,GAAhB,UAAoB,MAAsB;QACtC,IAAM,aAAa,GAAG,IAAA,oBAAO,EAAgB,MAAM,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,aAAa,KAAK,SAAS,EAAE;YAC7B,MAAM,IAAI,yDAA2B,CAAC,oCAAkC,MAAM,CAAC,IAAM,CAAC,CAAC;SAC1F;QACD,OAAO,IAAI,YAAY,CAAC,aAAa,EAAE,iCAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,CAAC;IAID,+BAAQ,GAAR;;QAAS,mBAAuB;aAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;YAAvB,8BAAuB;;QAC5B,IAAI,CAAC,eAAe,GAAG,CAAA,KAAA,IAAI,CAAC,eAAe,CAAA,CAAC,QAAQ,oCAAI,SAAS,UAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iCAAU,GAAV,UAAW,MAAc;QACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,8BAAO,GAAP;;QAAQ,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,IAAI,CAAC,eAAe,GAAG,CAAA,KAAA,IAAI,CAAC,eAAe,CAAA,CAAC,OAAO,oCAAI,IAAI,UAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAW,GAAX;;QAAY,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACtB,IAAI,CAAC,eAAe,GAAG,CAAA,KAAA,IAAI,CAAC,eAAe,CAAA,CAAC,WAAW,oCAAI,IAAI,UAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,8BAAO,GAAP,UAAQ,SAAqB;QACzB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IACL,mBAAC;AAAD,CAAC,AAlCD,IAkCC;AAlCY,oCAAY"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { IContainer, InjectionToken, IProvider,
|
|
1
|
+
import { IContainer, InjectionToken, IProvider, DependencyKey } from '../index';
|
|
2
2
|
export declare abstract class AutoMockedContainer implements IContainer {
|
|
3
3
|
createScope(): IContainer;
|
|
4
4
|
abstract resolve<T>(key: InjectionToken<T>): T;
|
|
5
5
|
abstract dispose(): void;
|
|
6
|
-
getProviders(): Map<
|
|
6
|
+
getProviders(): Map<DependencyKey, IProvider>;
|
|
7
7
|
register(): this;
|
|
8
8
|
getInstances(): unknown[];
|
|
9
9
|
removeScope(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/container/AutoMockedContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/container/AutoMockedContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,yBAAyB,EAAiB,MAAM,UAAU,CAAC;AAE3G,MAAM,OAAgB,mBAAmB;IACrC,WAAW;QACP,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAMD,YAAY;QACR,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,QAAQ;QACJ,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,WAAW,KAAU,CAAC;IAEtB,GAAG;QACC,MAAM,IAAI,yBAAyB,EAAE,CAAC;IAC1C,CAAC;CACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { IContainer, IContainerModule, InjectionToken } from './IContainer';
|
|
1
|
+
import { DependencyKey, IContainer, IContainerModule, InjectionToken, Tag, Tagged } from './IContainer';
|
|
2
2
|
import { IInjector } from '../IInjector';
|
|
3
|
-
import { IProvider
|
|
3
|
+
import { IProvider } from '../provider/IProvider';
|
|
4
4
|
export declare class Container implements IContainer, Tagged {
|
|
5
5
|
private readonly injector;
|
|
6
6
|
private readonly providers;
|
|
@@ -13,13 +13,13 @@ export declare class Container implements IContainer, Tagged {
|
|
|
13
13
|
parent?: IContainer;
|
|
14
14
|
tags?: Tag[];
|
|
15
15
|
});
|
|
16
|
-
register(key:
|
|
16
|
+
register(key: DependencyKey, provider: IProvider): this;
|
|
17
17
|
resolve<T>(key: InjectionToken<T>, ...args: unknown[]): T;
|
|
18
18
|
private resolveByProvider;
|
|
19
19
|
private resolveByInjector;
|
|
20
20
|
createScope(tags?: Tag[]): Container;
|
|
21
21
|
dispose(): void;
|
|
22
|
-
getProviders(): Map<
|
|
22
|
+
getProviders(): Map<DependencyKey, IProvider>;
|
|
23
23
|
getInstances(): unknown[];
|
|
24
24
|
removeScope(child: IContainer): void;
|
|
25
25
|
hasTag(tag: Tag): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isDependencyKey, } from './IContainer';
|
|
2
2
|
import { EmptyContainer } from './EmptyContainer';
|
|
3
3
|
import { ProviderRepo } from '../provider/ProviderRepo';
|
|
4
4
|
import { ContainerDisposedError } from './ContainerDisposedError';
|
|
@@ -20,7 +20,7 @@ export class Container {
|
|
|
20
20
|
}
|
|
21
21
|
resolve(key, ...args) {
|
|
22
22
|
this.validateContainer();
|
|
23
|
-
return
|
|
23
|
+
return isDependencyKey(key) ? this.resolveByProvider(key, ...args) : this.resolveByInjector(key, ...args);
|
|
24
24
|
}
|
|
25
25
|
resolveByProvider(key, ...args) {
|
|
26
26
|
const provider = this.providers.find(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../lib/container/Container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { IContainer, InjectionToken } from './IContainer';
|
|
2
|
-
import { IProvider
|
|
1
|
+
import { DependencyKey, IContainer, InjectionToken } from './IContainer';
|
|
2
|
+
import { IProvider } from '../provider/IProvider';
|
|
3
3
|
export declare class EmptyContainer implements IContainer {
|
|
4
4
|
createScope(): IContainer;
|
|
5
5
|
dispose(): void;
|
|
6
6
|
register(): this;
|
|
7
7
|
resolve<T>(key: InjectionToken<T>): T;
|
|
8
|
-
getProviders(): Map<
|
|
8
|
+
getProviders(): Map<DependencyKey, IProvider>;
|
|
9
9
|
getInstances(): unknown[];
|
|
10
10
|
removeScope(): void;
|
|
11
11
|
add(): this;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import { IProvider
|
|
1
|
+
import { IProvider } from '../provider/IProvider';
|
|
2
2
|
import { constructor } from '../utils';
|
|
3
|
-
export declare type
|
|
3
|
+
export declare type Tag = string;
|
|
4
|
+
export interface Tagged {
|
|
5
|
+
hasTag(tag: Tag): boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare type DependencyKey = string | symbol;
|
|
8
|
+
export declare function isDependencyKey<T>(token: InjectionToken<T>): token is DependencyKey;
|
|
9
|
+
export declare type InjectionToken<T = unknown> = constructor<T> | DependencyKey;
|
|
4
10
|
export interface Resolvable {
|
|
5
11
|
resolve<T>(key: InjectionToken<T>, ...args: unknown[]): T;
|
|
6
12
|
}
|
|
@@ -9,8 +15,8 @@ export interface IContainerModule {
|
|
|
9
15
|
}
|
|
10
16
|
export interface IContainer extends Resolvable {
|
|
11
17
|
createScope(tags?: Tag[]): IContainer;
|
|
12
|
-
register(key:
|
|
13
|
-
getProviders(): Map<
|
|
18
|
+
register(key: DependencyKey, value: IProvider): this;
|
|
19
|
+
getProviders(): Map<DependencyKey, IProvider>;
|
|
14
20
|
removeScope(child: IContainer): void;
|
|
15
21
|
getInstances(): unknown[];
|
|
16
22
|
dispose(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IContainer.js","sourceRoot":"","sources":["../../lib/container/IContainer.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"IContainer.js","sourceRoot":"","sources":["../../lib/container/IContainer.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,eAAe,CAAI,KAAwB;IACvD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AACvD,CAAC"}
|
package/esm/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { IContainer, Resolvable, IContainerModule } from './container/IContainer
|
|
|
3
3
|
export { EmptyContainer } from './container/EmptyContainer';
|
|
4
4
|
export { constructor } from './utils';
|
|
5
5
|
export { Container } from './container/Container';
|
|
6
|
-
export {
|
|
6
|
+
export { ResolveDependency, IProvider } from './provider/IProvider';
|
|
7
7
|
export { IInjector } from './IInjector';
|
|
8
8
|
export { InjectionToken } from './container/IContainer';
|
|
9
9
|
export { ProviderNotFoundError } from './provider/ProviderNotFoundError';
|
|
@@ -12,8 +12,10 @@ export { ContainerDisposedError } from './container/ContainerDisposedError';
|
|
|
12
12
|
export { Provider } from './provider/Provider';
|
|
13
13
|
export { ArgsFn } from './provider/ArgsProvider';
|
|
14
14
|
export { AutoMockedContainer } from './container/AutoMockedContainer';
|
|
15
|
-
export { ProviderKey } from './provider/IProvider';
|
|
16
15
|
export { ProviderBuilder, perTags, asSingleton } from './provider/ProviderBuilder';
|
|
17
|
-
export { isProviderKey } from './provider/IProvider';
|
|
18
16
|
export { forKey, Registration } from './registration/Registration';
|
|
19
17
|
export declare const by: <T>(key: InjectionToken<T>, ...args: unknown[]) => (l: IContainer) => T;
|
|
18
|
+
export { isDependencyKey } from './container/IContainer';
|
|
19
|
+
export { DependencyKey } from './container/IContainer';
|
|
20
|
+
export { Tagged } from './container/IContainer';
|
|
21
|
+
export { Tag } from './container/IContainer';
|
package/esm/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export { ContainerDisposedError } from './container/ContainerDisposedError';
|
|
|
6
6
|
export { Provider } from './provider/Provider';
|
|
7
7
|
export { AutoMockedContainer } from './container/AutoMockedContainer';
|
|
8
8
|
export { ProviderBuilder, perTags, asSingleton } from './provider/ProviderBuilder';
|
|
9
|
-
export { isProviderKey } from './provider/IProvider';
|
|
10
9
|
export { forKey, Registration } from './registration/Registration';
|
|
11
10
|
export const by = (key, ...args) => (l) => l.resolve(key, ...args);
|
|
11
|
+
export { isDependencyKey } from './container/IContainer';
|
|
12
12
|
//# 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":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,CAAC,MAAM,EAAE,GACX,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,EAAE,CACd,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Resolvable, Tagged } from '../container/IContainer';
|
|
2
2
|
export declare type ResolveDependency<T = unknown> = (container: Resolvable, ...args: unknown[]) => T;
|
|
3
|
-
export declare type Tag = string;
|
|
4
|
-
export interface Tagged {
|
|
5
|
-
hasTag(tag: Tag): boolean;
|
|
6
|
-
}
|
|
7
3
|
export interface IProvider<T = unknown> {
|
|
8
4
|
clone(): IProvider<T>;
|
|
9
5
|
resolve(container: Resolvable, ...args: unknown[]): T;
|
|
10
6
|
isValid(filters: Tagged): boolean;
|
|
11
7
|
dispose(): void;
|
|
12
8
|
}
|
|
13
|
-
export declare type ProviderKey = string | symbol;
|
|
14
|
-
export declare function isProviderKey<T>(token: InjectionToken<T>): token is ProviderKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../lib/provider/IProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../lib/provider/IProvider.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { IProvider, ResolveDependency
|
|
1
|
+
import { IProvider, ResolveDependency } from './IProvider';
|
|
2
2
|
import { ArgsFn } from './ArgsProvider';
|
|
3
3
|
import { constructor } from '../utils';
|
|
4
|
+
import { Tag } from '../container/IContainer';
|
|
4
5
|
export declare const perTags: (...tags: Tag[]) => ClassDecorator;
|
|
5
6
|
export declare const asSingleton: (...tags: Tag[]) => ClassDecorator;
|
|
6
7
|
export declare class ProviderBuilder {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/provider/ProviderBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/provider/ProviderBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAW,EAAkB,EAAE,CACtD,UAAU,CACN,UAAU,EACV,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,EACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACX,CAAC;AAEN,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAW,EAAkB,EAAE,CAC1D,UAAU,CACN,UAAU,EACV,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,EACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACX,CAAC;AAEN,MAAM,OAAO,eAAe;IAcxB,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;IAAG,CAAC;IAb3C,MAAM,CAAC,SAAS,CAAC,MAA4B;;QACzC,MAAM,GAAG,GAA2B,MAAA,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,mCAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,OAAO,GAAG,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAc;QAC3B,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,EAAqB;QAC/B,OAAO,IAAI,eAAe,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAID,QAAQ,CAAC,GAAG,SAAoB;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,IAAW;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,GAAG,IAAW;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAC3D;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Resolvable } from '../container/IContainer';
|
|
2
|
-
import { IProvider
|
|
1
|
+
import { Resolvable, Tagged } from '../container/IContainer';
|
|
2
|
+
import { IProvider } from './IProvider';
|
|
3
3
|
export declare abstract class ProviderDecorator<T> implements IProvider<T> {
|
|
4
4
|
private decorated;
|
|
5
5
|
protected constructor(decorated: IProvider<T>);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { IProvider
|
|
1
|
+
import { IProvider } from './IProvider';
|
|
2
|
+
import { DependencyKey } from '../container/IContainer';
|
|
2
3
|
export declare class ProviderRepo {
|
|
3
4
|
private readonly providers;
|
|
4
|
-
add(key:
|
|
5
|
-
find<T>(key:
|
|
6
|
-
merge(providers: Map<
|
|
5
|
+
add(key: DependencyKey, provider: IProvider): this;
|
|
6
|
+
find<T>(key: DependencyKey): IProvider<T> | undefined;
|
|
7
|
+
merge(providers: Map<DependencyKey, IProvider>): Map<DependencyKey, IProvider>;
|
|
7
8
|
dispose(): void;
|
|
8
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderRepo.js","sourceRoot":"","sources":["../../lib/provider/ProviderRepo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProviderRepo.js","sourceRoot":"","sources":["../../lib/provider/ProviderRepo.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IAAzB;QACqB,cAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IA4BrE,CAAC;IA1BG,GAAG,CAAC,GAAkB,EAAE,QAAmB;QACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAI,GAAkB;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAiB,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,SAAwC;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4B,CAAC;QAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;YAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACvB;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;YACjD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACvB;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE;YACrC,CAAC,CAAC,OAAO,EAAE,CAAC;SACf;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACJ"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { IProvider
|
|
1
|
+
import { IProvider } from './IProvider';
|
|
2
2
|
import { ProviderDecorator } from './ProviderDecorator';
|
|
3
|
+
import { Tag, Tagged } from '../container/IContainer';
|
|
3
4
|
export declare class TaggedProvider<T> extends ProviderDecorator<T> {
|
|
4
5
|
private provider;
|
|
5
6
|
private readonly tags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/provider/TaggedProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/provider/TaggedProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,OAAO,cAAkB,SAAQ,iBAAoB;IACvD,YAAoB,QAAsB,EAAmB,IAAW;QACpE,KAAK,CAAC,QAAQ,CAAC,CAAC;QADA,aAAQ,GAAR,QAAQ,CAAc;QAAmB,SAAI,GAAJ,IAAI,CAAO;IAExE,CAAC;IAED,KAAK;QACD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;CACJ"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { ProviderKey, Tag } from '../provider/IProvider';
|
|
2
1
|
import { ArgsFn } from '../provider/ArgsProvider';
|
|
3
|
-
import { IContainer, IContainerModule } from '../container/IContainer';
|
|
2
|
+
import { DependencyKey, IContainer, IContainerModule, Tag } from '../container/IContainer';
|
|
4
3
|
import { ProviderBuilder } from '../provider/ProviderBuilder';
|
|
5
4
|
import { constructor } from '../utils';
|
|
6
|
-
export declare const forKey: (key:
|
|
5
|
+
export declare const forKey: (key: DependencyKey) => ClassDecorator;
|
|
7
6
|
export declare class Registration implements IContainerModule {
|
|
8
7
|
private key;
|
|
9
8
|
private providerBuilder;
|
|
10
9
|
static fromClass<T>(Target: constructor<T>): Registration;
|
|
11
|
-
constructor(key:
|
|
10
|
+
constructor(key: DependencyKey, providerBuilder: ProviderBuilder);
|
|
12
11
|
withArgs(...extraArgs: unknown[]): this;
|
|
13
12
|
withArgsFn(argsFn: ArgsFn): this;
|
|
14
13
|
perTags(...tags: Tag[]): this;
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { RegistrationMissingKeyError } from './RegistrationMissingKeyError';
|
|
2
2
|
import { ProviderBuilder } from '../provider/ProviderBuilder';
|
|
3
|
-
import { setProp } from '../reflection';
|
|
4
|
-
|
|
5
|
-
export const forKey = (key) => setProp('provider-key', key);
|
|
3
|
+
import { getProp, setProp } from '../reflection';
|
|
4
|
+
export const forKey = (key) => setProp('DependencyKey', key);
|
|
6
5
|
export class Registration {
|
|
7
6
|
constructor(key, providerBuilder) {
|
|
8
7
|
this.key = key;
|
|
9
8
|
this.providerBuilder = providerBuilder;
|
|
10
9
|
}
|
|
11
10
|
static fromClass(Target) {
|
|
12
|
-
const
|
|
13
|
-
if (
|
|
14
|
-
throw new RegistrationMissingKeyError(`Pls provide
|
|
11
|
+
const dependencyKey = getProp(Target, 'DependencyKey');
|
|
12
|
+
if (dependencyKey === undefined) {
|
|
13
|
+
throw new RegistrationMissingKeyError(`Pls provide dependency key for ${Target.name}`);
|
|
15
14
|
}
|
|
16
|
-
return new Registration(
|
|
15
|
+
return new Registration(dependencyKey, ProviderBuilder.fromClass(Target));
|
|
17
16
|
}
|
|
18
17
|
withArgs(...extraArgs) {
|
|
19
18
|
this.providerBuilder = this.providerBuilder.withArgs(...extraArgs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../lib/registration/Registration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../lib/registration/Registration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAkB,EAAkB,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAE5F,MAAM,OAAO,YAAY;IASrB,YAAoB,GAAkB,EAAU,eAAgC;QAA5D,QAAG,GAAH,GAAG,CAAe;QAAU,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IARpF,MAAM,CAAC,SAAS,CAAI,MAAsB;QACtC,MAAM,aAAa,GAAG,OAAO,CAAgB,MAAM,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,aAAa,KAAK,SAAS,EAAE;YAC7B,MAAM,IAAI,2BAA2B,CAAC,kCAAkC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;SAC1F;QACD,OAAO,IAAI,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,CAAC;IAID,QAAQ,CAAC,GAAG,SAAoB;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAc;QACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,IAAW;QAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,GAAG,IAAW;QACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,SAAqB;QACzB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ioc-container",
|
|
3
|
-
"version": "22.
|
|
3
|
+
"version": "22.4.0",
|
|
4
4
|
"description": "Typescript IoC container",
|
|
5
5
|
"author": "ibabkin <igba14@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/IgorBabkin/ts-ioc-container/tree/master/packages/ts-ioc-container",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"ts-jest": "27.0.5",
|
|
49
49
|
"typescript": "4.4.3"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "697c190131f4a2c7bfd9dd83b95b982b7d77605e"
|
|
52
52
|
}
|