ts-ioc-container 11.0.5 → 12.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjm/core/EmptyServiceLocator.d.ts +3 -0
- package/cjm/core/EmptyServiceLocator.js +6 -0
- package/cjm/core/EmptyServiceLocator.js.map +1 -1
- package/cjm/core/IInstanceHook.d.ts +5 -4
- package/cjm/core/IInstanceHook.js +3 -3
- package/cjm/core/IInstanceHook.js.map +1 -1
- package/cjm/core/IServiceLocator.d.ts +4 -2
- package/cjm/core/IServiceLocator.js.map +1 -1
- package/cjm/core/ProviderRepo.d.ts +9 -0
- package/cjm/core/ProviderRepo.js +48 -0
- package/cjm/core/ProviderRepo.js.map +1 -0
- package/cjm/core/ServiceLocator.d.ts +12 -11
- package/cjm/core/ServiceLocator.js +39 -68
- package/cjm/core/ServiceLocator.js.map +1 -1
- package/cjm/core/provider/ArgsProvider.d.ts +2 -2
- package/cjm/core/provider/ArgsProvider.js.map +1 -1
- package/cjm/core/provider/IProvider.d.ts +1 -6
- package/cjm/core/provider/Provider.d.ts +4 -7
- package/cjm/core/provider/Provider.js +2 -14
- package/cjm/core/provider/Provider.js.map +1 -1
- package/cjm/core/provider/ProviderDecorator.d.ts +5 -7
- package/cjm/core/provider/ProviderDecorator.js +3 -12
- package/cjm/core/provider/ProviderDecorator.js.map +1 -1
- package/cjm/features/container/Container.d.ts +16 -0
- package/cjm/{core → features/container}/Container.js +10 -31
- package/cjm/features/container/Container.js.map +1 -0
- package/cjm/features/container/ContainerProvider.d.ts +9 -0
- package/cjm/features/container/ContainerProvider.js +44 -0
- package/cjm/features/container/ContainerProvider.js.map +1 -0
- package/cjm/features/container/IContainer.d.ts +8 -0
- package/cjm/{core → features/container}/IContainer.js +0 -0
- package/cjm/features/container/IContainer.js.map +1 -0
- package/cjm/features/container/IContainerProvider.d.ts +4 -0
- package/cjm/features/container/IContainerProvider.js +3 -0
- package/cjm/features/container/IContainerProvider.js.map +1 -0
- package/{esm/features/scope → cjm/features/container}/IProvidersMetadataCollector.d.ts +2 -2
- package/cjm/features/{scope → container}/IProvidersMetadataCollector.js +0 -0
- package/cjm/features/container/IProvidersMetadataCollector.js.map +1 -0
- package/cjm/features/container/ProviderBuilder.d.ts +22 -0
- package/cjm/features/{ProviderBuilder.js → container/ProviderBuilder.js} +11 -36
- package/cjm/features/container/ProviderBuilder.js.map +1 -0
- package/cjm/features/{scope → container}/ProvidersMetadataCollector.d.ts +0 -0
- package/cjm/features/{scope → container}/ProvidersMetadataCollector.js +1 -1
- package/cjm/features/container/ProvidersMetadataCollector.js.map +1 -0
- package/cjm/features/{scope → container}/decorators.d.ts +0 -0
- package/cjm/features/{scope → container}/decorators.js +9 -10
- package/cjm/features/container/decorators.js.map +1 -0
- package/cjm/features/{proxy → injectors}/ProxyInjector.d.ts +0 -0
- package/cjm/features/{proxy → injectors}/ProxyInjector.js +0 -0
- package/cjm/features/injectors/ProxyInjector.js.map +1 -0
- package/cjm/features/{simple → injectors}/SimpleInjector.d.ts +0 -0
- package/cjm/features/{simple → injectors}/SimpleInjector.js +0 -0
- package/cjm/features/injectors/SimpleInjector.js.map +1 -0
- package/cjm/features/instanceHook/InstanceHook.d.ts +11 -0
- package/cjm/features/instanceHook/InstanceHook.js +52 -0
- package/cjm/features/instanceHook/InstanceHook.js.map +1 -0
- package/cjm/features/mock/MockedServiceLocator.d.ts +3 -2
- package/cjm/features/mock/MockedServiceLocator.js +7 -3
- package/cjm/features/mock/MockedServiceLocator.js.map +1 -1
- package/cjm/features/{scope → providers}/LevelProvider.d.ts +2 -2
- package/cjm/features/{scope → providers}/LevelProvider.js +0 -0
- package/cjm/features/providers/LevelProvider.js.map +1 -0
- package/{esm/features/scope → cjm/features/providers}/SingletonProvider.d.ts +2 -2
- package/cjm/features/{scope → providers}/SingletonProvider.js +0 -0
- package/cjm/features/providers/SingletonProvider.js.map +1 -0
- package/cjm/features/{scope → providers}/TaggedProvider.d.ts +2 -2
- package/cjm/features/{scope → providers}/TaggedProvider.js +0 -0
- package/cjm/features/providers/TaggedProvider.js.map +1 -0
- package/cjm/helpers/utils.d.ts +1 -0
- package/cjm/helpers/utils.js +3 -1
- package/cjm/helpers/utils.js.map +1 -1
- package/cjm/index.d.ts +13 -14
- package/cjm/index.js +10 -12
- package/cjm/index.js.map +1 -1
- package/esm/core/EmptyServiceLocator.d.ts +3 -0
- package/esm/core/EmptyServiceLocator.js +6 -0
- package/esm/core/EmptyServiceLocator.js.map +1 -1
- package/esm/core/IInstanceHook.d.ts +5 -4
- package/esm/core/IInstanceHook.js +4 -4
- package/esm/core/IInstanceHook.js.map +1 -1
- package/esm/core/IServiceLocator.d.ts +4 -2
- package/esm/core/IServiceLocator.js.map +1 -1
- package/esm/core/ProviderRepo.d.ts +9 -0
- package/esm/core/ProviderRepo.js +21 -0
- package/esm/core/ProviderRepo.js.map +1 -0
- package/esm/core/ServiceLocator.d.ts +12 -11
- package/esm/core/ServiceLocator.js +38 -43
- package/esm/core/ServiceLocator.js.map +1 -1
- package/esm/core/provider/ArgsProvider.d.ts +2 -2
- package/esm/core/provider/ArgsProvider.js.map +1 -1
- package/esm/core/provider/IProvider.d.ts +1 -6
- package/esm/core/provider/Provider.d.ts +4 -7
- package/esm/core/provider/Provider.js +2 -9
- package/esm/core/provider/Provider.js.map +1 -1
- package/esm/core/provider/ProviderDecorator.d.ts +5 -7
- package/esm/core/provider/ProviderDecorator.js +3 -7
- package/esm/core/provider/ProviderDecorator.js.map +1 -1
- package/esm/features/container/Container.d.ts +16 -0
- package/esm/features/container/Container.js +27 -0
- package/esm/features/container/Container.js.map +1 -0
- package/esm/features/container/ContainerProvider.d.ts +9 -0
- package/esm/features/container/ContainerProvider.js +16 -0
- package/esm/features/container/ContainerProvider.js.map +1 -0
- package/esm/features/container/IContainer.d.ts +8 -0
- package/esm/{core → features/container}/IContainer.js +0 -0
- package/esm/features/container/IContainer.js.map +1 -0
- package/esm/features/container/IContainerProvider.d.ts +4 -0
- package/esm/features/container/IContainerProvider.js +2 -0
- package/esm/features/container/IContainerProvider.js.map +1 -0
- package/{cjm/features/scope → esm/features/container}/IProvidersMetadataCollector.d.ts +2 -2
- package/esm/features/{scope → container}/IProvidersMetadataCollector.js +0 -0
- package/esm/features/container/IProvidersMetadataCollector.js.map +1 -0
- package/esm/features/container/ProviderBuilder.d.ts +22 -0
- package/esm/features/{ProviderBuilder.js → container/ProviderBuilder.js} +11 -10
- package/esm/features/container/ProviderBuilder.js.map +1 -0
- package/esm/features/{scope → container}/ProvidersMetadataCollector.d.ts +0 -0
- package/esm/features/{scope → container}/ProvidersMetadataCollector.js +1 -1
- package/esm/features/container/ProvidersMetadataCollector.js.map +1 -0
- package/esm/features/{scope → container}/decorators.d.ts +0 -0
- package/esm/features/{scope → container}/decorators.js +5 -9
- package/esm/features/container/decorators.js.map +1 -0
- package/esm/features/{proxy → injectors}/ProxyInjector.d.ts +0 -0
- package/esm/features/{proxy → injectors}/ProxyInjector.js +0 -0
- package/esm/features/injectors/ProxyInjector.js.map +1 -0
- package/esm/features/{simple → injectors}/SimpleInjector.d.ts +0 -0
- package/esm/features/{simple → injectors}/SimpleInjector.js +0 -0
- package/esm/features/injectors/SimpleInjector.js.map +1 -0
- package/esm/features/instanceHook/InstanceHook.d.ts +11 -0
- package/esm/features/instanceHook/InstanceHook.js +24 -0
- package/esm/features/instanceHook/InstanceHook.js.map +1 -0
- package/esm/features/mock/MockedServiceLocator.d.ts +3 -2
- package/esm/features/mock/MockedServiceLocator.js +7 -4
- package/esm/features/mock/MockedServiceLocator.js.map +1 -1
- package/esm/features/{scope → providers}/LevelProvider.d.ts +2 -2
- package/esm/features/{scope → providers}/LevelProvider.js +0 -0
- package/esm/features/providers/LevelProvider.js.map +1 -0
- package/{cjm/features/scope → esm/features/providers}/SingletonProvider.d.ts +2 -2
- package/esm/features/{scope → providers}/SingletonProvider.js +0 -0
- package/esm/features/providers/SingletonProvider.js.map +1 -0
- package/esm/features/{scope → providers}/TaggedProvider.d.ts +2 -2
- package/esm/features/{scope → providers}/TaggedProvider.js +0 -0
- package/esm/features/providers/TaggedProvider.js.map +1 -0
- package/esm/helpers/utils.d.ts +1 -0
- package/esm/helpers/utils.js +1 -0
- package/esm/helpers/utils.js.map +1 -1
- package/esm/index.d.ts +13 -14
- package/esm/index.js +9 -10
- package/esm/index.js.map +1 -1
- package/package.json +3 -3
- package/cjm/core/Container.d.ts +0 -11
- package/cjm/core/Container.js.map +0 -1
- package/cjm/core/ContainerBuilder.d.ts +0 -18
- package/cjm/core/ContainerBuilder.js +0 -42
- package/cjm/core/ContainerBuilder.js.map +0 -1
- package/cjm/core/IContainer.d.ts +0 -7
- package/cjm/core/IContainer.js.map +0 -1
- package/cjm/errors/ProviderKeyIsBusy.d.ts +0 -5
- package/cjm/errors/ProviderKeyIsBusy.js +0 -30
- package/cjm/errors/ProviderKeyIsBusy.js.map +0 -1
- package/cjm/features/ProviderBuilder.d.ts +0 -20
- package/cjm/features/ProviderBuilder.js.map +0 -1
- package/cjm/features/proxy/ProxyInjector.js.map +0 -1
- package/cjm/features/scope/IProvidersMetadataCollector.js.map +0 -1
- package/cjm/features/scope/LevelProvider.js.map +0 -1
- package/cjm/features/scope/ProvidersMetadataCollector.js.map +0 -1
- package/cjm/features/scope/SingletonProvider.js.map +0 -1
- package/cjm/features/scope/TaggedProvider.js.map +0 -1
- package/cjm/features/scope/decorators.js.map +0 -1
- package/cjm/features/simple/SimpleInjector.js.map +0 -1
- package/esm/core/Container.d.ts +0 -11
- package/esm/core/Container.js +0 -26
- package/esm/core/Container.js.map +0 -1
- package/esm/core/ContainerBuilder.d.ts +0 -18
- package/esm/core/ContainerBuilder.js +0 -33
- package/esm/core/ContainerBuilder.js.map +0 -1
- package/esm/core/IContainer.d.ts +0 -7
- package/esm/core/IContainer.js.map +0 -1
- package/esm/errors/ProviderKeyIsBusy.d.ts +0 -5
- package/esm/errors/ProviderKeyIsBusy.js +0 -8
- package/esm/errors/ProviderKeyIsBusy.js.map +0 -1
- package/esm/features/ProviderBuilder.d.ts +0 -20
- package/esm/features/ProviderBuilder.js.map +0 -1
- package/esm/features/proxy/ProxyInjector.js.map +0 -1
- package/esm/features/scope/IProvidersMetadataCollector.js.map +0 -1
- package/esm/features/scope/LevelProvider.js.map +0 -1
- package/esm/features/scope/ProvidersMetadataCollector.js.map +0 -1
- package/esm/features/scope/SingletonProvider.js.map +0 -1
- package/esm/features/scope/TaggedProvider.js.map +0 -1
- package/esm/features/scope/decorators.js.map +0 -1
- package/esm/features/simple/SimpleInjector.js.map +0 -1
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { InjectionToken, IServiceLocator, ProviderKey } from './IServiceLocator';
|
|
2
2
|
import { IProvider } from './provider/IProvider';
|
|
3
|
+
import { IInstanceHook } from "./IInstanceHook";
|
|
3
4
|
export declare class EmptyServiceLocator implements IServiceLocator {
|
|
4
5
|
createScope(): IServiceLocator;
|
|
5
6
|
dispose(): void;
|
|
6
7
|
register(): this;
|
|
7
8
|
resolve<T>(key: InjectionToken<T>): T;
|
|
8
9
|
entries(): Array<[ProviderKey, IProvider<any>]>;
|
|
10
|
+
has(key: ProviderKey): boolean;
|
|
11
|
+
setHook(hook: IInstanceHook): this;
|
|
9
12
|
}
|
|
@@ -21,6 +21,12 @@ var EmptyServiceLocator = /** @class */ (function () {
|
|
|
21
21
|
EmptyServiceLocator.prototype.entries = function () {
|
|
22
22
|
return [];
|
|
23
23
|
};
|
|
24
|
+
EmptyServiceLocator.prototype.has = function (key) {
|
|
25
|
+
return false;
|
|
26
|
+
};
|
|
27
|
+
EmptyServiceLocator.prototype.setHook = function (hook) {
|
|
28
|
+
throw new MethodNotImplementedError_1.MethodNotImplementedError();
|
|
29
|
+
};
|
|
24
30
|
return EmptyServiceLocator;
|
|
25
31
|
}());
|
|
26
32
|
exports.EmptyServiceLocator = EmptyServiceLocator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyServiceLocator.js","sourceRoot":"","sources":["../../lib/core/EmptyServiceLocator.ts"],"names":[],"mappings":";;;AACA,iFAAgF;AAChF,yEAAwE;
|
|
1
|
+
{"version":3,"file":"EmptyServiceLocator.js","sourceRoot":"","sources":["../../lib/core/EmptyServiceLocator.ts"],"names":[],"mappings":";;;AACA,iFAAgF;AAChF,yEAAwE;AAIxE;IAAA;IA4BA,CAAC;IA3BG,yCAAW,GAAX;QACI,MAAM,IAAI,qDAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,qCAAO,GAAP;QACI,MAAM,IAAI,qDAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,sCAAQ,GAAR;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qCAAO,GAAP,UAAW,GAAsB;QAC7B,MAAM,IAAI,6CAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,qCAAO,GAAP;QACI,OAAO,EAAE,CAAC;IACd,CAAC;IAED,iCAAG,GAAH,UAAI,GAAgB;QAChB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,qCAAO,GAAP,UAAQ,IAAmB;QACvB,MAAM,IAAI,qDAAyB,EAAE,CAAC;IAC1C,CAAC;IACL,0BAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BY,kDAAmB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { IDisposable } from '../helpers/types';
|
|
2
|
+
export interface IInstanceHook extends IDisposable {
|
|
3
|
+
resolve<T>(instance: T): T;
|
|
4
|
+
dispose(): void;
|
|
5
|
+
clone(): IInstanceHook;
|
|
5
6
|
}
|
|
6
7
|
export declare const emptyHook: IInstanceHook;
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.emptyHook = void 0;
|
|
4
4
|
var utils_1 = require("../helpers/utils");
|
|
5
5
|
exports.emptyHook = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
resolve: utils_1.id,
|
|
7
|
+
dispose: utils_1.noop,
|
|
8
|
+
clone: function () { return exports.emptyHook; },
|
|
9
9
|
};
|
|
10
10
|
//# sourceMappingURL=IInstanceHook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IInstanceHook.js","sourceRoot":"","sources":["../../lib/core/IInstanceHook.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"IInstanceHook.js","sourceRoot":"","sources":["../../lib/core/IInstanceHook.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAW/B,QAAA,SAAS,GAAkB;IACpC,OAAO,EAAE,UAAE;IACX,OAAO,EAAE,YAAI;IACb,KAAK,EAAE,cAAM,OAAA,iBAAS,EAAT,CAAS;CACzB,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { IProvider, Tag } from './provider/IProvider';
|
|
2
2
|
import { constructor, IDisposable } from '../helpers/types';
|
|
3
|
+
import { IInstanceHook } from './IInstanceHook';
|
|
3
4
|
export declare type RegisterOptions = {
|
|
4
|
-
|
|
5
|
+
override: boolean;
|
|
5
6
|
};
|
|
6
7
|
export declare type ProviderKey = string | symbol;
|
|
7
8
|
export declare function isProviderKey<T>(token: InjectionToken<T>): token is ProviderKey;
|
|
@@ -11,6 +12,7 @@ export interface Resolveable {
|
|
|
11
12
|
}
|
|
12
13
|
export interface IServiceLocator extends IDisposable, Resolveable {
|
|
13
14
|
createScope(tags?: Tag[], parent?: IServiceLocator): IServiceLocator;
|
|
14
|
-
register(key: ProviderKey, provider: IProvider<unknown
|
|
15
|
+
register(key: ProviderKey, provider: IProvider<unknown>): void;
|
|
15
16
|
entries(): Array<[ProviderKey, IProvider<any>]>;
|
|
17
|
+
setHook(hook: IInstanceHook): this;
|
|
16
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IServiceLocator.js","sourceRoot":"","sources":["../../lib/core/IServiceLocator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"IServiceLocator.js","sourceRoot":"","sources":["../../lib/core/IServiceLocator.ts"],"names":[],"mappings":";;;AASA,SAAgB,aAAa,CAAI,KAAwB;IACrD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AACvD,CAAC;AAFD,sCAEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ProviderKey } from './IServiceLocator';
|
|
2
|
+
import { IProvider } from './provider/IProvider';
|
|
3
|
+
export declare class ProviderRepo {
|
|
4
|
+
private readonly providers;
|
|
5
|
+
set(key: ProviderKey, provider: IProvider<unknown>): void;
|
|
6
|
+
get<T>(key: ProviderKey): IProvider<T> | undefined;
|
|
7
|
+
entries(): Array<[ProviderKey, IProvider<any>]>;
|
|
8
|
+
dispose(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __values = (this && this.__values) || function(o) {
|
|
3
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
+
if (m) return m.call(o);
|
|
5
|
+
if (o && typeof o.length === "number") return {
|
|
6
|
+
next: function () {
|
|
7
|
+
if (o && i >= o.length) o = void 0;
|
|
8
|
+
return { value: o && o[i++], done: !o };
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.ProviderRepo = void 0;
|
|
15
|
+
var ProviderRepo = /** @class */ (function () {
|
|
16
|
+
function ProviderRepo() {
|
|
17
|
+
this.providers = new Map();
|
|
18
|
+
}
|
|
19
|
+
ProviderRepo.prototype.set = function (key, provider) {
|
|
20
|
+
this.providers.set(key, provider);
|
|
21
|
+
};
|
|
22
|
+
ProviderRepo.prototype.get = function (key) {
|
|
23
|
+
return this.providers.get(key);
|
|
24
|
+
};
|
|
25
|
+
ProviderRepo.prototype.entries = function () {
|
|
26
|
+
return Array.from(this.providers.entries());
|
|
27
|
+
};
|
|
28
|
+
ProviderRepo.prototype.dispose = function () {
|
|
29
|
+
var e_1, _a;
|
|
30
|
+
try {
|
|
31
|
+
for (var _b = __values(this.providers.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
32
|
+
var p = _c.value;
|
|
33
|
+
p.dispose();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
37
|
+
finally {
|
|
38
|
+
try {
|
|
39
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
40
|
+
}
|
|
41
|
+
finally { if (e_1) throw e_1.error; }
|
|
42
|
+
}
|
|
43
|
+
this.providers.clear();
|
|
44
|
+
};
|
|
45
|
+
return ProviderRepo;
|
|
46
|
+
}());
|
|
47
|
+
exports.ProviderRepo = ProviderRepo;
|
|
48
|
+
//# sourceMappingURL=ProviderRepo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderRepo.js","sourceRoot":"","sources":["../../lib/core/ProviderRepo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA;IAAA;QACqB,cAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAoBxE,CAAC;IAlBG,0BAAG,GAAH,UAAI,GAAgB,EAAE,QAA4B;QAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,0BAAG,GAAH,UAAO,GAAgB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,8BAAO,GAAP;QACI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,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,AArBD,IAqBC;AArBY,oCAAY"}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { InjectionToken, IServiceLocator, ProviderKey
|
|
1
|
+
import { InjectionToken, IServiceLocator, ProviderKey } from './IServiceLocator';
|
|
2
2
|
import { IInjector } from './IInjector';
|
|
3
3
|
import { IProvider, Tag } from './provider/IProvider';
|
|
4
4
|
import { IInstanceHook } from './IInstanceHook';
|
|
5
5
|
export declare class ServiceLocator implements IServiceLocator {
|
|
6
|
-
private parent;
|
|
7
6
|
private readonly injector;
|
|
8
|
-
readonly level: number;
|
|
9
|
-
readonly tags: Tag[];
|
|
10
|
-
private hook;
|
|
11
|
-
static fromInjector(injector: IInjector): ServiceLocator;
|
|
12
|
-
private instances;
|
|
13
7
|
private readonly providers;
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
private parent;
|
|
9
|
+
level: number;
|
|
10
|
+
tags: Tag[];
|
|
11
|
+
private hook;
|
|
12
|
+
constructor(injector: IInjector);
|
|
13
|
+
setParent(parent: IServiceLocator): this;
|
|
14
|
+
setTags(tags: Tag[]): this;
|
|
15
|
+
setLevel(level?: number): this;
|
|
16
|
+
setHook(hook: IInstanceHook): this;
|
|
17
|
+
register(key: ProviderKey, provider: IProvider<unknown>): void;
|
|
16
18
|
resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
|
|
17
|
-
private findValidProvider;
|
|
18
19
|
createScope(tags?: Tag[], parent?: IServiceLocator): ServiceLocator;
|
|
19
20
|
entries(): Array<[ProviderKey, IProvider<any>]>;
|
|
20
21
|
dispose(): void;
|
|
21
|
-
|
|
22
|
+
map<T extends IServiceLocator>(transform: (l: IServiceLocator) => T): T;
|
|
22
23
|
}
|
|
@@ -38,30 +38,36 @@ var __values = (this && this.__values) || function(o) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.ServiceLocator = void 0;
|
|
40
40
|
var IServiceLocator_1 = require("./IServiceLocator");
|
|
41
|
-
var ProviderKeyIsBusy_1 = require("../errors/ProviderKeyIsBusy");
|
|
42
41
|
var EmptyServiceLocator_1 = require("./EmptyServiceLocator");
|
|
43
42
|
var IInstanceHook_1 = require("./IInstanceHook");
|
|
43
|
+
var ProviderRepo_1 = require("./ProviderRepo");
|
|
44
44
|
var ServiceLocator = /** @class */ (function () {
|
|
45
|
-
function ServiceLocator(
|
|
46
|
-
if (level === void 0) { level = 0; }
|
|
47
|
-
if (tags === void 0) { tags = []; }
|
|
48
|
-
if (hook === void 0) { hook = IInstanceHook_1.emptyHook; }
|
|
49
|
-
this.parent = parent;
|
|
45
|
+
function ServiceLocator(injector) {
|
|
50
46
|
this.injector = injector;
|
|
51
|
-
this.
|
|
47
|
+
this.providers = new ProviderRepo_1.ProviderRepo();
|
|
48
|
+
this.parent = new EmptyServiceLocator_1.EmptyServiceLocator();
|
|
49
|
+
this.level = 0;
|
|
50
|
+
this.tags = [];
|
|
51
|
+
this.hook = IInstanceHook_1.emptyHook;
|
|
52
|
+
}
|
|
53
|
+
ServiceLocator.prototype.setParent = function (parent) {
|
|
54
|
+
this.parent = parent;
|
|
55
|
+
return this;
|
|
56
|
+
};
|
|
57
|
+
ServiceLocator.prototype.setTags = function (tags) {
|
|
52
58
|
this.tags = tags;
|
|
59
|
+
return this;
|
|
60
|
+
};
|
|
61
|
+
ServiceLocator.prototype.setLevel = function (level) {
|
|
62
|
+
if (level === void 0) { level = 0; }
|
|
63
|
+
this.level = level;
|
|
64
|
+
return this;
|
|
65
|
+
};
|
|
66
|
+
ServiceLocator.prototype.setHook = function (hook) {
|
|
53
67
|
this.hook = hook;
|
|
54
|
-
this
|
|
55
|
-
this.providers = new Map();
|
|
56
|
-
}
|
|
57
|
-
ServiceLocator.fromInjector = function (injector) {
|
|
58
|
-
return new ServiceLocator(new EmptyServiceLocator_1.EmptyServiceLocator(), injector);
|
|
68
|
+
return this;
|
|
59
69
|
};
|
|
60
|
-
ServiceLocator.prototype.register = function (key, provider
|
|
61
|
-
if (options === void 0) { options = {}; }
|
|
62
|
-
if (options.noOverride && this.providers.has(key)) {
|
|
63
|
-
throw new ProviderKeyIsBusy_1.ProviderKeyIsBusy(key);
|
|
64
|
-
}
|
|
70
|
+
ServiceLocator.prototype.register = function (key, provider) {
|
|
65
71
|
this.providers.set(key, provider);
|
|
66
72
|
};
|
|
67
73
|
ServiceLocator.prototype.resolve = function (key) {
|
|
@@ -71,26 +77,22 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
71
77
|
args[_i - 1] = arguments[_i];
|
|
72
78
|
}
|
|
73
79
|
if ((0, IServiceLocator_1.isProviderKey)(key)) {
|
|
74
|
-
var provider = this.
|
|
75
|
-
return provider
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
};
|
|
79
|
-
ServiceLocator.prototype.findValidProvider = function (key) {
|
|
80
|
-
if (!this.providers.has(key)) {
|
|
81
|
-
return undefined;
|
|
80
|
+
var provider = this.providers.get(key);
|
|
81
|
+
return (provider === null || provider === void 0 ? void 0 : provider.isValid(this))
|
|
82
|
+
? this.hook.resolve(provider.resolve.apply(provider, __spreadArray([this], __read(args), false)))
|
|
83
|
+
: (_a = this.parent).resolve.apply(_a, __spreadArray([key], __read(args), false));
|
|
82
84
|
}
|
|
83
|
-
|
|
84
|
-
if (!provider.isValid(this)) {
|
|
85
|
-
return undefined;
|
|
86
|
-
}
|
|
87
|
-
return provider;
|
|
85
|
+
return this.hook.resolve((_b = this.injector).resolve.apply(_b, __spreadArray([this, key], __read(args), false)));
|
|
88
86
|
};
|
|
89
87
|
ServiceLocator.prototype.createScope = function (tags, parent) {
|
|
90
88
|
var e_1, _a;
|
|
91
89
|
if (tags === void 0) { tags = []; }
|
|
92
90
|
if (parent === void 0) { parent = this; }
|
|
93
|
-
var scope = new ServiceLocator(
|
|
91
|
+
var scope = new ServiceLocator(this.injector)
|
|
92
|
+
.setParent(parent)
|
|
93
|
+
.setLevel(this.level + 1)
|
|
94
|
+
.setTags(tags)
|
|
95
|
+
.setHook(this.hook.clone());
|
|
94
96
|
try {
|
|
95
97
|
for (var _b = __values(parent.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
96
98
|
var _d = __read(_c.value, 2), key = _d[0], provider = _d[1];
|
|
@@ -109,47 +111,16 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
109
111
|
return scope;
|
|
110
112
|
};
|
|
111
113
|
ServiceLocator.prototype.entries = function () {
|
|
112
|
-
|
|
113
|
-
return Array.from(new Map(__spreadArray(__spreadArray([], __read(this.parent.entries()), false), __read(localProviders), false)).entries());
|
|
114
|
+
return Array.from(new Map(__spreadArray(__spreadArray([], __read(this.parent.entries()), false), __read(this.providers.entries()), false)).entries());
|
|
114
115
|
};
|
|
115
116
|
ServiceLocator.prototype.dispose = function () {
|
|
116
|
-
var e_2, _a, e_3, _b;
|
|
117
117
|
this.parent = new EmptyServiceLocator_1.EmptyServiceLocator();
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
var p = _d.value;
|
|
121
|
-
p.dispose();
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
125
|
-
finally {
|
|
126
|
-
try {
|
|
127
|
-
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
128
|
-
}
|
|
129
|
-
finally { if (e_2) throw e_2.error; }
|
|
130
|
-
}
|
|
131
|
-
this.providers.clear();
|
|
132
|
-
try {
|
|
133
|
-
for (var _e = __values(this.instances), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
134
|
-
var it_1 = _f.value;
|
|
135
|
-
this.hook.onDispose(it_1);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
139
|
-
finally {
|
|
140
|
-
try {
|
|
141
|
-
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
142
|
-
}
|
|
143
|
-
finally { if (e_3) throw e_3.error; }
|
|
144
|
-
}
|
|
145
|
-
this.instances.clear();
|
|
118
|
+
this.providers.dispose();
|
|
119
|
+
this.hook.dispose();
|
|
146
120
|
};
|
|
147
|
-
ServiceLocator.prototype.
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
this.hook.onConstruct(instance);
|
|
151
|
-
}
|
|
152
|
-
return this.hook.onResolve(instance);
|
|
121
|
+
ServiceLocator.prototype.map = function (transform) {
|
|
122
|
+
this.parent = transform(this.parent);
|
|
123
|
+
return transform(this);
|
|
153
124
|
};
|
|
154
125
|
return ServiceLocator;
|
|
155
126
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ServiceLocator.js","sourceRoot":"","sources":["../../lib/core/ServiceLocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ProviderDecorator } from './ProviderDecorator';
|
|
2
|
-
import { IKeyedProvider } from './IProvider';
|
|
3
2
|
import { Resolveable } from '../IServiceLocator';
|
|
3
|
+
import { IProvider } from "./IProvider";
|
|
4
4
|
export declare type ArgsFn = (l: Resolveable) => any[];
|
|
5
5
|
export declare class ArgsProvider<T> extends ProviderDecorator<T> {
|
|
6
6
|
private provider;
|
|
7
7
|
private argsFn;
|
|
8
|
-
constructor(provider:
|
|
8
|
+
constructor(provider: IProvider<T>, argsFn: ArgsFn);
|
|
9
9
|
resolve(locator: Resolveable, ...args: any[]): T;
|
|
10
10
|
clone(): ProviderDecorator<T>;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArgsProvider.js","sourceRoot":"","sources":["../../../lib/core/provider/ArgsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ArgsProvider.js","sourceRoot":"","sources":["../../../lib/core/provider/ArgsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAsD;AAMtD;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,OAAoB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACxC,OAAO,CAAA,KAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,OAAO,wCAAC,OAAO,UAAK,IAAI,kBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAE;IAC5E,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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Resolveable } from '../IServiceLocator';
|
|
2
2
|
import { IDisposable } from '../../helpers/types';
|
|
3
3
|
export declare type ResolveDependency<T> = (locator: Resolveable, ...args: any[]) => T;
|
|
4
4
|
export declare type Tag = string | symbol;
|
|
@@ -11,8 +11,3 @@ export interface IProvider<T> extends IDisposable {
|
|
|
11
11
|
resolve(locator: Resolveable, ...args: any[]): T;
|
|
12
12
|
isValid(filters: ScopeOptions): boolean;
|
|
13
13
|
}
|
|
14
|
-
export interface IKeyedProvider<T> extends IProvider<T> {
|
|
15
|
-
clone(): IKeyedProvider<T>;
|
|
16
|
-
getKeys(): ProviderKey[];
|
|
17
|
-
addKeys(...keys: ProviderKey[]): this;
|
|
18
|
-
}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import { constructor } from '../../helpers/types';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
export declare class Provider<T> implements
|
|
2
|
+
import { IProvider, ResolveDependency, ScopeOptions } from './IProvider';
|
|
3
|
+
import { Resolveable } from '../IServiceLocator';
|
|
4
|
+
export declare class Provider<T> implements IProvider<T> {
|
|
5
5
|
private readonly resolveDependency;
|
|
6
6
|
static fromClass<T>(value: constructor<T>): Provider<T>;
|
|
7
7
|
static fromValue<T>(value: T): Provider<T>;
|
|
8
|
-
private keys;
|
|
9
8
|
constructor(resolveDependency: ResolveDependency<T>);
|
|
10
|
-
clone():
|
|
9
|
+
clone(): Provider<T>;
|
|
11
10
|
resolve(locator: Resolveable, ...args: any[]): T;
|
|
12
11
|
dispose(): void;
|
|
13
12
|
isValid(filters: ScopeOptions): boolean;
|
|
14
|
-
addKeys(...keys: ProviderKey[]): this;
|
|
15
|
-
getKeys(): ProviderKey[];
|
|
16
13
|
}
|
|
@@ -29,7 +29,6 @@ exports.Provider = void 0;
|
|
|
29
29
|
var Provider = /** @class */ (function () {
|
|
30
30
|
function Provider(resolveDependency) {
|
|
31
31
|
this.resolveDependency = resolveDependency;
|
|
32
|
-
this.keys = [];
|
|
33
32
|
}
|
|
34
33
|
Provider.fromClass = function (value) {
|
|
35
34
|
return new Provider(function (l) {
|
|
@@ -53,22 +52,11 @@ var Provider = /** @class */ (function () {
|
|
|
53
52
|
}
|
|
54
53
|
return this.resolveDependency.apply(this, __spreadArray([locator], __read(args), false));
|
|
55
54
|
};
|
|
56
|
-
Provider.prototype.dispose = function () {
|
|
55
|
+
Provider.prototype.dispose = function () {
|
|
56
|
+
};
|
|
57
57
|
Provider.prototype.isValid = function (filters) {
|
|
58
58
|
return true;
|
|
59
59
|
};
|
|
60
|
-
Provider.prototype.addKeys = function () {
|
|
61
|
-
var _a;
|
|
62
|
-
var keys = [];
|
|
63
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
64
|
-
keys[_i] = arguments[_i];
|
|
65
|
-
}
|
|
66
|
-
(_a = this.keys).push.apply(_a, __spreadArray([], __read(keys), false));
|
|
67
|
-
return this;
|
|
68
|
-
};
|
|
69
|
-
Provider.prototype.getKeys = function () {
|
|
70
|
-
return this.keys;
|
|
71
|
-
};
|
|
72
60
|
return Provider;
|
|
73
61
|
}());
|
|
74
62
|
exports.Provider = Provider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;IASI,kBAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IACpE,CAAC;IATM,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;IAKD,wBAAK,GAAL;QACI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,0BAAO,GAAP,UAAQ,OAAoB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACxC,OAAO,IAAI,CAAC,iBAAiB,OAAtB,IAAI,iBAAmB,OAAO,UAAK,IAAI,WAAE;IACpD,CAAC;IAED,0BAAO,GAAP;IACA,CAAC;IAED,0BAAO,GAAP,UAAQ,OAAqB;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IACL,eAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,4BAAQ"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export declare abstract class ProviderDecorator<T> implements
|
|
1
|
+
import { Resolveable } from '../IServiceLocator';
|
|
2
|
+
import { IProvider, ScopeOptions } from './IProvider';
|
|
3
|
+
export declare abstract class ProviderDecorator<T> implements IProvider<T> {
|
|
4
4
|
private decorated;
|
|
5
|
-
constructor(decorated:
|
|
6
|
-
|
|
5
|
+
constructor(decorated: IProvider<T>);
|
|
6
|
+
clone(): IProvider<T>;
|
|
7
7
|
dispose(): void;
|
|
8
8
|
isValid(filters: ScopeOptions): boolean;
|
|
9
9
|
resolve(locator: Resolveable, ...args: any[]): T;
|
|
10
|
-
addKeys(...keys: ProviderKey[]): this;
|
|
11
|
-
getKeys(): ProviderKey[];
|
|
12
10
|
}
|
|
@@ -30,6 +30,9 @@ var ProviderDecorator = /** @class */ (function () {
|
|
|
30
30
|
function ProviderDecorator(decorated) {
|
|
31
31
|
this.decorated = decorated;
|
|
32
32
|
}
|
|
33
|
+
ProviderDecorator.prototype.clone = function () {
|
|
34
|
+
return this.decorated.clone();
|
|
35
|
+
};
|
|
33
36
|
ProviderDecorator.prototype.dispose = function () {
|
|
34
37
|
this.decorated.dispose();
|
|
35
38
|
};
|
|
@@ -44,18 +47,6 @@ var ProviderDecorator = /** @class */ (function () {
|
|
|
44
47
|
}
|
|
45
48
|
return (_a = this.decorated).resolve.apply(_a, __spreadArray([locator], __read(args), false));
|
|
46
49
|
};
|
|
47
|
-
ProviderDecorator.prototype.addKeys = function () {
|
|
48
|
-
var _a;
|
|
49
|
-
var keys = [];
|
|
50
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
51
|
-
keys[_i] = arguments[_i];
|
|
52
|
-
}
|
|
53
|
-
(_a = this.decorated).addKeys.apply(_a, __spreadArray([], __read(keys), false));
|
|
54
|
-
return this;
|
|
55
|
-
};
|
|
56
|
-
ProviderDecorator.prototype.getKeys = function () {
|
|
57
|
-
return this.decorated.getKeys();
|
|
58
|
-
};
|
|
59
50
|
return ProviderDecorator;
|
|
60
51
|
}());
|
|
61
52
|
exports.ProviderDecorator = ProviderDecorator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderDecorator.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderDecorator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;IACI,2BAAoB,
|
|
1
|
+
{"version":3,"file":"ProviderDecorator.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderDecorator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;IACI,2BAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAE/C,iCAAK,GAAL;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,mCAAO,GAAP,UAAQ,OAAqB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,mCAAO,GAAP,UAAQ,OAAoB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACxC,OAAO,CAAA,KAAA,IAAI,CAAC,SAAS,CAAA,CAAC,OAAO,0BAAC,OAAO,UAAK,IAAI,WAAE;IACpD,CAAC;IACL,wBAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBqB,8CAAiB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Tag } from '../../core/provider/IProvider';
|
|
2
|
+
import { InjectionToken, IServiceLocator } from '../../core/IServiceLocator';
|
|
3
|
+
import { IContainer } from './IContainer';
|
|
4
|
+
import { IContainerProvider } from './IContainerProvider';
|
|
5
|
+
import { IInjector } from '../../core/IInjector';
|
|
6
|
+
import { IInstanceHook } from '../../core/IInstanceHook';
|
|
7
|
+
export declare class Container implements IContainer {
|
|
8
|
+
private locator;
|
|
9
|
+
static fromInjector(injector: IInjector): Container;
|
|
10
|
+
constructor(locator: IServiceLocator);
|
|
11
|
+
setHook(hook: IInstanceHook): this;
|
|
12
|
+
createScope(tags?: Tag[]): IContainer;
|
|
13
|
+
register(provider: IContainerProvider<unknown>): this;
|
|
14
|
+
resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
|
|
15
|
+
dispose(): void;
|
|
16
|
+
}
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __values = (this && this.__values) || function(o) {
|
|
3
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
-
if (m) return m.call(o);
|
|
5
|
-
if (o && typeof o.length === "number") return {
|
|
6
|
-
next: function () {
|
|
7
|
-
if (o && i >= o.length) o = void 0;
|
|
8
|
-
return { value: o && o[i++], done: !o };
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
-
};
|
|
13
2
|
var __read = (this && this.__read) || function (o, n) {
|
|
14
3
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
4
|
if (!m) return o;
|
|
@@ -37,33 +26,23 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
37
26
|
};
|
|
38
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
28
|
exports.Container = void 0;
|
|
40
|
-
var
|
|
29
|
+
var ServiceLocator_1 = require("../../core/ServiceLocator");
|
|
41
30
|
var Container = /** @class */ (function () {
|
|
42
31
|
function Container(locator) {
|
|
43
32
|
this.locator = locator;
|
|
44
33
|
}
|
|
34
|
+
Container.fromInjector = function (injector) {
|
|
35
|
+
return new Container(new ServiceLocator_1.ServiceLocator(injector));
|
|
36
|
+
};
|
|
37
|
+
Container.prototype.setHook = function (hook) {
|
|
38
|
+
this.locator.setHook(hook);
|
|
39
|
+
return this;
|
|
40
|
+
};
|
|
45
41
|
Container.prototype.createScope = function (tags) {
|
|
46
42
|
return new Container(this.locator.createScope(tags));
|
|
47
43
|
};
|
|
48
|
-
Container.prototype.register = function (provider
|
|
49
|
-
|
|
50
|
-
var keys = provider.getKeys();
|
|
51
|
-
if (keys.length === 0) {
|
|
52
|
-
throw new NoRegistrationKeysProvided_1.NoRegistrationKeysProvided();
|
|
53
|
-
}
|
|
54
|
-
try {
|
|
55
|
-
for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
|
|
56
|
-
var key = keys_1_1.value;
|
|
57
|
-
this.locator.register(key, provider, options);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
61
|
-
finally {
|
|
62
|
-
try {
|
|
63
|
-
if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
|
|
64
|
-
}
|
|
65
|
-
finally { if (e_1) throw e_1.error; }
|
|
66
|
-
}
|
|
44
|
+
Container.prototype.register = function (provider) {
|
|
45
|
+
provider.appendTo(this.locator);
|
|
67
46
|
return this;
|
|
68
47
|
};
|
|
69
48
|
Container.prototype.resolve = function (key) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/features/container/Container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,4DAA2D;AAG3D;IAKI,mBAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAJzC,sBAAY,GAAnB,UAAoB,QAAmB;QACnC,OAAO,IAAI,SAAS,CAAC,IAAI,+BAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAID,2BAAO,GAAP,UAAQ,IAAmB;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAW,GAAX,UAAY,IAAY;QACpB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,4BAAQ,GAAR,UAAS,QAAqC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,2BAAO,GAAP,UAAW,GAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC7C,OAAO,CAAA,KAAA,IAAI,CAAC,OAAO,CAAA,CAAC,OAAO,0BAAC,GAAG,UAAK,IAAI,WAAE;IAC9C,CAAC;IAED,2BAAO,GAAP;QACI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACL,gBAAC;AAAD,CAAC,AA5BD,IA4BC;AA5BY,8BAAS"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IServiceLocator, ProviderKey } from '../../core/IServiceLocator';
|
|
2
|
+
import { IProvider } from '../../core/provider/IProvider';
|
|
3
|
+
import { IContainerProvider } from './IContainerProvider';
|
|
4
|
+
export declare class ContainerProvider<T> implements IContainerProvider<T> {
|
|
5
|
+
private provider;
|
|
6
|
+
private keys;
|
|
7
|
+
constructor(provider: IProvider<T>, keys?: Set<ProviderKey>);
|
|
8
|
+
appendTo(locator: IServiceLocator): void;
|
|
9
|
+
}
|