@art-ws/di 1.0.4 → 2.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/dist/es/index.d.ts +2 -0
- package/dist/es/index.js +2 -0
- package/dist/es/injector.d.ts +19 -0
- package/dist/es/injector.js +74 -0
- package/dist/es/types.d.ts +17 -0
- package/dist/es/types.js +9 -0
- package/package.json +22 -61
- package/dist/decorators.d.ts +0 -8
- package/dist/decorators.d.ts.map +0 -1
- package/dist/decorators.js +0 -43
- package/dist/decorators.js.map +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -11
- package/dist/index.js.map +0 -1
- package/dist/injector-ref.d.ts +0 -27
- package/dist/injector-ref.d.ts.map +0 -1
- package/dist/injector-ref.js +0 -120
- package/dist/injector-ref.js.map +0 -1
- package/dist/node-platform.d.ts +0 -3
- package/dist/node-platform.d.ts.map +0 -1
- package/dist/node-platform.js +0 -19
- package/dist/node-platform.js.map +0 -1
- package/dist/re-export.d.ts +0 -2
- package/dist/re-export.d.ts.map +0 -1
- package/dist/re-export.js +0 -5
- package/dist/re-export.js.map +0 -1
- package/dist/registry.d.ts +0 -38
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -175
- package/dist/registry.js.map +0 -1
- package/dist/types.d.ts +0 -45
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -34
- package/dist/types.js.map +0 -1
package/dist/es/index.js
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
import type { Func, Provider, Token } from "./types.js";
|
2
|
+
export type InjectorInstance = InstanceType<typeof Injector>;
|
3
|
+
export declare class Injector {
|
4
|
+
#private;
|
5
|
+
static root: Injector;
|
6
|
+
static onScope: (injector: Injector) => void;
|
7
|
+
parent: Injector | null;
|
8
|
+
addFactory<T>(token: Token<T>, factory?: Func<T>): void;
|
9
|
+
addValue<T>(token: Token<T>, value: T): void;
|
10
|
+
addProviders(providers?: Provider[]): this;
|
11
|
+
get<T>(token: Token<T>): T;
|
12
|
+
runScope<T>(fn: Func<T>, options?: Partial<{
|
13
|
+
providers: Provider[];
|
14
|
+
onEnd: (o: {
|
15
|
+
injector: Injector;
|
16
|
+
}) => void;
|
17
|
+
}>): Promise<T>;
|
18
|
+
}
|
19
|
+
export declare function inject<T>(token: Token<T>): T;
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import { AsyncLocalStorage } from "async_hooks";
|
2
|
+
import { InjectionToken } from "./types.js";
|
3
|
+
const asyncLocalStorage = new AsyncLocalStorage();
|
4
|
+
export class Injector {
|
5
|
+
static root;
|
6
|
+
static onScope;
|
7
|
+
parent = null;
|
8
|
+
#instances = new Map();
|
9
|
+
#factories = new Map();
|
10
|
+
addFactory(token, factory) {
|
11
|
+
if (token instanceof InjectionToken) {
|
12
|
+
if (token.factory) {
|
13
|
+
factory = token.factory;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
else {
|
17
|
+
if (!factory && typeof token === "function") {
|
18
|
+
factory = () => new token();
|
19
|
+
}
|
20
|
+
}
|
21
|
+
this.#factories.set(token, factory);
|
22
|
+
}
|
23
|
+
addValue(token, value) {
|
24
|
+
this.addFactory(token, () => value);
|
25
|
+
}
|
26
|
+
addProviders(providers) {
|
27
|
+
if (Array.isArray(providers)) {
|
28
|
+
for (const { token, factory } of providers) {
|
29
|
+
this.addFactory(token, factory);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
return this;
|
33
|
+
}
|
34
|
+
get(token) {
|
35
|
+
if (!token)
|
36
|
+
throw new Error(`Token not defined`);
|
37
|
+
let instance = undefined;
|
38
|
+
if (this.parent) {
|
39
|
+
instance = this.parent.get(token);
|
40
|
+
}
|
41
|
+
if (typeof instance === "undefined") {
|
42
|
+
instance = this.#instances.get(token);
|
43
|
+
}
|
44
|
+
if (typeof instance === "undefined") {
|
45
|
+
const factory = this.#factories.get(token);
|
46
|
+
if (typeof factory === "function") {
|
47
|
+
instance = factory();
|
48
|
+
this.#instances.set(token, instance);
|
49
|
+
}
|
50
|
+
}
|
51
|
+
return instance;
|
52
|
+
}
|
53
|
+
async runScope(fn, options) {
|
54
|
+
const injector = new Injector();
|
55
|
+
injector.parent = this;
|
56
|
+
injector.addProviders(options?.providers);
|
57
|
+
Injector.onScope?.(injector);
|
58
|
+
return asyncLocalStorage.run({ injector }, async () => {
|
59
|
+
try {
|
60
|
+
return await fn();
|
61
|
+
}
|
62
|
+
finally {
|
63
|
+
options?.onEnd?.({ injector });
|
64
|
+
}
|
65
|
+
});
|
66
|
+
}
|
67
|
+
}
|
68
|
+
export function inject(token) {
|
69
|
+
const context = asyncLocalStorage.getStore();
|
70
|
+
const injector = context?.injector || Injector.root;
|
71
|
+
if (!injector)
|
72
|
+
throw new Error(`No injector found`);
|
73
|
+
return injector.get(token);
|
74
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
export type Func<T = unknown> = () => T;
|
2
|
+
export declare class InjectionToken<T = unknown> {
|
3
|
+
readonly name: string;
|
4
|
+
factory?: (() => T) | undefined;
|
5
|
+
constructor(name: string, factory?: (() => T) | undefined);
|
6
|
+
}
|
7
|
+
export interface AbstractType<T> extends Function {
|
8
|
+
prototype: T;
|
9
|
+
}
|
10
|
+
export interface Type<T> extends Function {
|
11
|
+
new (...args: unknown[]): T;
|
12
|
+
}
|
13
|
+
export type Token<T = unknown> = string | Symbol | Type<T> | AbstractType<T> | InjectionToken<T>;
|
14
|
+
export type Provider<T = unknown> = {
|
15
|
+
token: Token<T>;
|
16
|
+
factory: Func<T>;
|
17
|
+
};
|
package/dist/es/types.js
ADDED
package/package.json
CHANGED
@@ -1,68 +1,29 @@
|
|
1
1
|
{
|
2
2
|
"name": "@art-ws/di",
|
3
|
-
"version": "
|
4
|
-
"description": "Dependency
|
3
|
+
"version": "2.0.0",
|
4
|
+
"description": "Dependency injection for TypeScript",
|
5
5
|
"license": "UNLICENSED",
|
6
|
-
"
|
7
|
-
"
|
8
|
-
"
|
9
|
-
|
10
|
-
"watch": "tsc --watch",
|
11
|
-
"clean": "rimraf dist coverage *.tgz *.tsbuildinfo *.log",
|
12
|
-
"lint": "eslint --fix --ext .ts .",
|
13
|
-
"test": "jest",
|
14
|
-
"fmt": "prettier --write .",
|
15
|
-
"pack": "pnpm pack",
|
16
|
-
"link": "pnpm link",
|
17
|
-
"unlink": "pnpm unlink",
|
18
|
-
"ncu": "pnpx ncu",
|
19
|
-
"upgrade": "pnpx ncu -u",
|
20
|
-
"madge": "pnpx madge --circular --extensions ts .",
|
21
|
-
"cti": "pnpx cti -n -b -v ./src"
|
22
|
-
},
|
6
|
+
"author": "art-ws Team",
|
7
|
+
"type": "module",
|
8
|
+
"main": "./dist/es/index.js",
|
9
|
+
"types": "dist/es",
|
23
10
|
"files": [
|
24
|
-
"dist"
|
11
|
+
"./dist/*"
|
25
12
|
],
|
26
|
-
"keywords": [
|
27
|
-
"lib"
|
28
|
-
],
|
29
|
-
"engines": {
|
30
|
-
"node": ">=14"
|
31
|
-
},
|
32
|
-
"dependencies": {
|
33
|
-
"reflect-metadata": "0.1.13",
|
34
|
-
"injection-js": "2.4.0",
|
35
|
-
"tslib": "2.1.0"
|
36
|
-
},
|
37
13
|
"devDependencies": {
|
38
|
-
"@
|
39
|
-
"
|
40
|
-
"
|
41
|
-
"
|
42
|
-
"
|
43
|
-
"@art-ws/
|
44
|
-
|
45
|
-
|
46
|
-
"
|
47
|
-
"
|
48
|
-
"
|
49
|
-
"
|
50
|
-
"
|
51
|
-
"
|
52
|
-
"jest": "26.6.3",
|
53
|
-
"ts-jest": "26.5.1",
|
54
|
-
"@types/jest": "26.0.20",
|
55
|
-
"jest-standard-reporter": "2.0.0",
|
56
|
-
"chai": "4.3.0",
|
57
|
-
"@types/chai": "4.2.15",
|
58
|
-
"eslint-config-standard-with-typescript": "20.0.0",
|
59
|
-
"eslint-config-prettier": "7.2.0",
|
60
|
-
"@art-ws/prettier": "latest",
|
61
|
-
"@art-ws/package-base": "latest",
|
62
|
-
"@art-ws/package-template": "latest",
|
63
|
-
"prettier": "2.2.1",
|
64
|
-
"madge": "4.0.0",
|
65
|
-
"npm-check-updates": "11.1.1",
|
66
|
-
"create-ts-index": "1.13.6"
|
14
|
+
"@types/node": "24.0.3",
|
15
|
+
"eslint": "9.29.0",
|
16
|
+
"typescript": "5.6.2",
|
17
|
+
"vitest": "3.2.4",
|
18
|
+
"@art-ws/config-eslint": "2.0.0",
|
19
|
+
"@art-ws/config-ts": "2.0.0"
|
20
|
+
},
|
21
|
+
"scripts": {
|
22
|
+
"build": "tsc",
|
23
|
+
"clean": "rm -rf node_modules && rm -rf dist",
|
24
|
+
"lint": "eslint .",
|
25
|
+
"test": "vitest run",
|
26
|
+
"test:watch": "vitest",
|
27
|
+
"watch": "tsc --watch"
|
67
28
|
}
|
68
|
-
}
|
29
|
+
}
|
package/dist/decorators.d.ts
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
import "reflect-metadata";
|
2
|
-
import { DIModuleOptions, DITypeOptions } from "./types";
|
3
|
-
export declare function DIModule(options?: Partial<DIModuleOptions>): ClassDecorator;
|
4
|
-
export declare function Autowire(options: DITypeOptions): ClassDecorator;
|
5
|
-
export declare function Singleton(options?: Partial<DITypeOptions>): ClassDecorator;
|
6
|
-
export declare function Service(options?: Partial<DITypeOptions>): ClassDecorator;
|
7
|
-
export declare function Transient(options?: Partial<DITypeOptions>): ClassDecorator;
|
8
|
-
//# sourceMappingURL=decorators.d.ts.map
|
package/dist/decorators.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAA;AAMzB,OAAO,EACL,eAAe,EAEf,aAAa,EAEd,MAAM,SAAS,CAAA;AAEhB,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,cAAc,CAQ3E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAM/D;AAED,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,cAAc,CAI1E;AAED,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,cAAc,CAIxE;AAED,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,cAAc,CAI1E"}
|
package/dist/decorators.js
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.Transient = exports.Service = exports.Singleton = exports.Autowire = exports.DIModule = void 0;
|
4
|
-
require("reflect-metadata");
|
5
|
-
const registry_1 = require("./registry");
|
6
|
-
const types_1 = require("./types");
|
7
|
-
function DIModule(options) {
|
8
|
-
const o = options ?? {};
|
9
|
-
o.scope = o.scope || types_1.DIScope.SINGLETON;
|
10
|
-
return ((token) => {
|
11
|
-
Reflect.defineMetadata(registry_1.METADATA_DI_MODULE_OPTIONS, o, token);
|
12
|
-
registry_1.DIRegistry.current.registerModule(token);
|
13
|
-
return token;
|
14
|
-
});
|
15
|
-
}
|
16
|
-
exports.DIModule = DIModule;
|
17
|
-
function Autowire(options) {
|
18
|
-
const o = (options ?? {});
|
19
|
-
return ((cls) => {
|
20
|
-
Reflect.defineMetadata(registry_1.METADATA_DI_TYPE_OPTIONS, o, cls);
|
21
|
-
registry_1.DIRegistry.current.registerProviders(o.scope, [cls]);
|
22
|
-
});
|
23
|
-
}
|
24
|
-
exports.Autowire = Autowire;
|
25
|
-
function Singleton(options) {
|
26
|
-
const o = options ?? {};
|
27
|
-
o.scope = types_1.DIScope.SINGLETON;
|
28
|
-
return Autowire(o);
|
29
|
-
}
|
30
|
-
exports.Singleton = Singleton;
|
31
|
-
function Service(options) {
|
32
|
-
const o = options || {};
|
33
|
-
o.scope = o.scope ?? types_1.DIScope.REQUEST;
|
34
|
-
return Autowire(options);
|
35
|
-
}
|
36
|
-
exports.Service = Service;
|
37
|
-
function Transient(options) {
|
38
|
-
const o = options || {};
|
39
|
-
o.scope = o.scope ?? types_1.DIScope.TRANSIENT;
|
40
|
-
return Autowire(options);
|
41
|
-
}
|
42
|
-
exports.Transient = Transient;
|
43
|
-
//# sourceMappingURL=decorators.js.map
|
package/dist/decorators.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;;AACA,4BAAyB;AACzB,yCAImB;AACnB,mCAKgB;AAEhB,SAAgB,QAAQ,CAAC,OAAkC;IACzD,MAAM,CAAC,GAAG,OAAO,IAAI,EAAE,CAAA;IACvB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,eAAK,CAAC,SAAS,CAAA;IACpC,OAAO,CAAC,CAAC,KAAqB,EAAE,EAAE;QAChC,OAAO,CAAC,cAAc,CAAC,qCAA0B,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAC5D,qBAAU,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACxC,OAAO,KAAK,CAAA;IACd,CAAC,CAAmB,CAAA;AACtB,CAAC;AARD,4BAQC;AAED,SAAgB,QAAQ,CAAC,OAAsB;IAC7C,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAkB,CAAA;IAC1C,OAAO,CAAC,CAAC,GAAmB,EAAE,EAAE;QAC9B,OAAO,CAAC,cAAc,CAAC,mCAAwB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QACxD,qBAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAe,CAAC,CAAC,CAAA;IAClE,CAAC,CAAmB,CAAA;AACtB,CAAC;AAND,4BAMC;AAED,SAAgB,SAAS,CAAC,OAAgC;IACxD,MAAM,CAAC,GAAG,OAAO,IAAI,EAAE,CAAA;IACvB,CAAC,CAAC,KAAK,GAAG,eAAK,CAAC,SAAS,CAAA;IACzB,OAAO,QAAQ,CAAC,CAAkB,CAAC,CAAA;AACrC,CAAC;AAJD,8BAIC;AAED,SAAgB,OAAO,CAAC,OAAgC;IACtD,MAAM,CAAC,GAAG,OAAO,IAAI,EAAE,CAAA;IACvB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,eAAK,CAAC,OAAO,CAAA;IAClC,OAAO,QAAQ,CAAC,OAAwB,CAAC,CAAA;AAC3C,CAAC;AAJD,0BAIC;AAED,SAAgB,SAAS,CAAC,OAAgC;IACxD,MAAM,CAAC,GAAG,OAAO,IAAI,EAAE,CAAA;IACvB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,eAAK,CAAC,SAAS,CAAA;IACpC,OAAO,QAAQ,CAAC,OAAwB,CAAC,CAAA;AAC3C,CAAC;AAJD,8BAIC"}
|
package/dist/index.d.ts
DELETED
package/dist/index.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
package/dist/index.js
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
// created from 'create-ts-index'
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
-
const tslib_1 = require("tslib");
|
5
|
-
tslib_1.__exportStar(require("./decorators"), exports);
|
6
|
-
tslib_1.__exportStar(require("./injector-ref"), exports);
|
7
|
-
tslib_1.__exportStar(require("./node-platform"), exports);
|
8
|
-
tslib_1.__exportStar(require("./re-export"), exports);
|
9
|
-
tslib_1.__exportStar(require("./registry"), exports);
|
10
|
-
tslib_1.__exportStar(require("./types"), exports);
|
11
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;AAEjC,uDAA4B;AAC5B,yDAA8B;AAC9B,0DAA+B;AAC/B,sDAA2B;AAC3B,qDAA0B;AAC1B,kDAAuB"}
|
package/dist/injector-ref.d.ts
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
import { Injector, Provider } from "injection-js";
|
2
|
-
import { CreateChildOptions, InjectableType, InjectorRef, ScopeStrategy, TInjectableToken } from "./types";
|
3
|
-
export declare function getScopeForInjectorRef(parent: InjectorRef | null, scopeStrategyFn: ScopeStrategy): string | null;
|
4
|
-
export declare class InjectorRefImpl implements InjectorRef {
|
5
|
-
private parentInjector;
|
6
|
-
scopeStrategy: ScopeStrategy;
|
7
|
-
private readonly disposable;
|
8
|
-
private resolvedProvidersStore;
|
9
|
-
private reflectiveInjector;
|
10
|
-
private instances;
|
11
|
-
private readonly instanceCreated;
|
12
|
-
private readonly injectorScope;
|
13
|
-
private readonly isTransient;
|
14
|
-
constructor(parentInjector: InjectorRefImpl | null, moduleToken: InjectableType | null, scopeStrategy: ScopeStrategy, staticProviders: Provider[], dynamicProviders: Provider[], disposable: boolean);
|
15
|
-
getByName<T>(tokenName: string): TInjectableToken<T>;
|
16
|
-
tryGet<T>(token: TInjectableToken<T>): T;
|
17
|
-
get<T>(token: TInjectableToken<T>): T;
|
18
|
-
injector(): Injector;
|
19
|
-
createChild(providers?: Provider[], opts?: Partial<CreateChildOptions>): InjectorRef;
|
20
|
-
parent(): InjectorRef | null;
|
21
|
-
scope(): string;
|
22
|
-
dispose(cb: (ref?: unknown) => void): void;
|
23
|
-
private _initEagerCalled;
|
24
|
-
initEager(cb?: (ref?: InjectableType) => void, cached?: boolean): void;
|
25
|
-
bootstrapModules(): void;
|
26
|
-
}
|
27
|
-
//# sourceMappingURL=injector-ref.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"injector-ref.d.ts","sourceRoot":"","sources":["../src/injector-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,QAAQ,EAGT,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,WAAW,EAEX,aAAa,EACb,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAEhB,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,eAAe,EAAE,aAAa,GAC7B,MAAM,GAAG,IAAI,CAEf;AAID,qBAAa,eAAgB,YAAW,WAAW;IAU/C,OAAO,CAAC,cAAc;IAEf,aAAa,EAAE,aAAa;IAGnC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAd7B,OAAO,CAAC,sBAAsB,CAA2C;IACzE,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;IAEjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAG3B,cAAc,EAAE,eAAe,GAAG,IAAI,EAC9C,WAAW,EAAE,cAAc,GAAG,IAAI,EAC3B,aAAa,EAAE,aAAa,EACnC,eAAe,EAAE,QAAQ,EAAE,EAC3B,gBAAgB,EAAE,QAAQ,EAAE,EACX,UAAU,EAAE,OAAO;IA8CtC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAIpD,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;IAQxC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;IAsBrC,QAAQ,IAAI,QAAQ;IAIpB,WAAW,CACT,SAAS,CAAC,EAAE,QAAQ,EAAE,EACtB,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACjC,WAAW;IAYd,MAAM,IAAI,WAAW,GAAG,IAAI;IAI5B,KAAK,IAAI,MAAM;IAIf,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAc1C,OAAO,CAAC,gBAAgB,CAAQ;IAEhC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,KAAK,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO;IAY/D,gBAAgB,IAAI,IAAI;CAKzB"}
|
package/dist/injector-ref.js
DELETED
@@ -1,120 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.InjectorRefImpl = exports.getScopeForInjectorRef = void 0;
|
4
|
-
const injection_js_1 = require("injection-js");
|
5
|
-
const registry_1 = require("./registry");
|
6
|
-
const types_1 = require("./types");
|
7
|
-
function getScopeForInjectorRef(parent, scopeStrategyFn) {
|
8
|
-
return scopeStrategyFn(parent ? parent.scope() : null);
|
9
|
-
}
|
10
|
-
exports.getScopeForInjectorRef = getScopeForInjectorRef;
|
11
|
-
const nil = null;
|
12
|
-
class InjectorRefImpl {
|
13
|
-
constructor(parentInjector, moduleToken, scopeStrategy, staticProviders, dynamicProviders, disposable) {
|
14
|
-
this.parentInjector = parentInjector;
|
15
|
-
this.scopeStrategy = scopeStrategy;
|
16
|
-
this.disposable = disposable;
|
17
|
-
this.resolvedProvidersStore = nil;
|
18
|
-
this.instances = [];
|
19
|
-
this.instanceCreated = new WeakMap();
|
20
|
-
this._initEagerCalled = false;
|
21
|
-
if (!(typeof scopeStrategy === "function")) {
|
22
|
-
throw new Error("scopeStrategy not function");
|
23
|
-
}
|
24
|
-
this.injectorScope = getScopeForInjectorRef(parentInjector, scopeStrategy);
|
25
|
-
if (!this.injectorScope) {
|
26
|
-
throw new Error("Child injector for TRANSIENT scope not supported");
|
27
|
-
}
|
28
|
-
this.isTransient = !scopeStrategy(this.injectorScope);
|
29
|
-
if (staticProviders?.length) {
|
30
|
-
registry_1.DIRegistry.current.registerProviders(this.injectorScope, staticProviders);
|
31
|
-
}
|
32
|
-
if (moduleToken) {
|
33
|
-
registry_1.DIRegistry.current.registerModule(moduleToken, this.injectorScope);
|
34
|
-
}
|
35
|
-
let dynamicProvidersResolved = [];
|
36
|
-
if (dynamicProviders && dynamicProviders.length) {
|
37
|
-
dynamicProvidersResolved = injection_js_1.ReflectiveInjector.resolve(dynamicProviders);
|
38
|
-
}
|
39
|
-
const staticProvidersResolved = registry_1.DIRegistry.current.getResolvedProvidersFor(this.injectorScope, moduleToken);
|
40
|
-
this.resolvedProvidersStore = [
|
41
|
-
...staticProvidersResolved,
|
42
|
-
...dynamicProvidersResolved,
|
43
|
-
];
|
44
|
-
const resolvedProviders = this.isTransient
|
45
|
-
? []
|
46
|
-
: this.resolvedProvidersStore || [];
|
47
|
-
this.reflectiveInjector = injection_js_1.ReflectiveInjector.fromResolvedProviders(resolvedProviders, parentInjector?.injector());
|
48
|
-
}
|
49
|
-
getByName(tokenName) {
|
50
|
-
return registry_1.DIRegistry.current.resolveTokenByName(tokenName);
|
51
|
-
}
|
52
|
-
tryGet(token) {
|
53
|
-
try {
|
54
|
-
return this.get(token);
|
55
|
-
}
|
56
|
-
catch (e) {
|
57
|
-
return undefined;
|
58
|
-
}
|
59
|
-
}
|
60
|
-
get(token) {
|
61
|
-
let result;
|
62
|
-
if (this.isTransient) {
|
63
|
-
const tmp = this.reflectiveInjector.createChildFromResolved(this.resolvedProvidersStore || []);
|
64
|
-
result = tmp.get(token);
|
65
|
-
}
|
66
|
-
else {
|
67
|
-
result = this.reflectiveInjector.get(token);
|
68
|
-
}
|
69
|
-
if (result && typeof result === "object" && this.disposable) {
|
70
|
-
if (!this.instanceCreated.get(result)) {
|
71
|
-
this.instances.push(result);
|
72
|
-
this.instanceCreated.set(result, true);
|
73
|
-
}
|
74
|
-
}
|
75
|
-
return result;
|
76
|
-
}
|
77
|
-
injector() {
|
78
|
-
return this.reflectiveInjector;
|
79
|
-
}
|
80
|
-
createChild(providers, opts) {
|
81
|
-
const options = opts || { disposable: false };
|
82
|
-
return new InjectorRefImpl(this, null, this.scopeStrategy, [], providers ?? [], options.disposable ?? false);
|
83
|
-
}
|
84
|
-
parent() {
|
85
|
-
return this.parentInjector || null;
|
86
|
-
}
|
87
|
-
scope() {
|
88
|
-
return this.injectorScope ?? "";
|
89
|
-
}
|
90
|
-
dispose(cb) {
|
91
|
-
if (!this.disposable) {
|
92
|
-
throw new Error("disposable = false");
|
93
|
-
}
|
94
|
-
this.instances.forEach((x) => {
|
95
|
-
cb(x);
|
96
|
-
});
|
97
|
-
this.reflectiveInjector = nil;
|
98
|
-
this.instances = [];
|
99
|
-
this.resolvedProvidersStore = [];
|
100
|
-
this.parentInjector = nil;
|
101
|
-
}
|
102
|
-
initEager(cb, cached) {
|
103
|
-
if (this._initEagerCalled)
|
104
|
-
throw new Error(`'initEager' already called for InjectorRef instance`);
|
105
|
-
this._initEagerCalled = true;
|
106
|
-
registry_1.DIRegistry.current.getEagerTokens(this.scope(), cached).forEach((token) => {
|
107
|
-
const ref = this.get(token);
|
108
|
-
if (typeof cb === "function") {
|
109
|
-
cb(ref);
|
110
|
-
}
|
111
|
-
});
|
112
|
-
}
|
113
|
-
bootstrapModules() {
|
114
|
-
registry_1.DIRegistry.current.getDIModules(this.scope()).forEach((token) => {
|
115
|
-
types_1.resolveAndInvokeDoBootstrap(this, token);
|
116
|
-
});
|
117
|
-
}
|
118
|
-
}
|
119
|
-
exports.InjectorRefImpl = InjectorRefImpl;
|
120
|
-
//# sourceMappingURL=injector-ref.js.map
|
package/dist/injector-ref.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"injector-ref.js","sourceRoot":"","sources":["../src/injector-ref.ts"],"names":[],"mappings":"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"}
|
package/dist/node-platform.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"node-platform.d.ts","sourceRoot":"","sources":["../src/node-platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,YAAY,EAAE,MAAM,SAAS,CAAA;AAsB5E,wBAAgB,QAAQ,IAAI,YAAY,CAEvC"}
|
package/dist/node-platform.js
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.platform = void 0;
|
4
|
-
const injector_ref_1 = require("./injector-ref");
|
5
|
-
const types_1 = require("./types");
|
6
|
-
class NodeModuleLoader {
|
7
|
-
providers(providers) {
|
8
|
-
this.diProviders = providers;
|
9
|
-
return this;
|
10
|
-
}
|
11
|
-
bootstrapModule(token) {
|
12
|
-
return new injector_ref_1.InjectorRefImpl(null, token, types_1.getDefaultScopeStrategy, this.diProviders || [], [], false);
|
13
|
-
}
|
14
|
-
}
|
15
|
-
function platform() {
|
16
|
-
return new NodeModuleLoader();
|
17
|
-
}
|
18
|
-
exports.platform = platform;
|
19
|
-
//# sourceMappingURL=node-platform.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"node-platform.js","sourceRoot":"","sources":["../src/node-platform.ts"],"names":[],"mappings":";;;AACA,iDAAgD;AAChD,mCAA4E;AAE5E,MAAM,gBAAgB;IAGpB,SAAS,CAAC,SAAsB;QAC9B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe,CAAC,KAAgB;QAC9B,OAAO,IAAI,8BAAe,CACxB,IAAI,EACJ,KAAK,EACL,+BAAuB,EACvB,IAAI,CAAC,WAAW,IAAI,EAAE,EACtB,EAAE,EACF,KAAK,CACN,CAAA;IACH,CAAC;CACF;AAED,SAAgB,QAAQ;IACtB,OAAO,IAAI,gBAAgB,EAAE,CAAA;AAC/B,CAAC;AAFD,4BAEC"}
|
package/dist/re-export.d.ts
DELETED
package/dist/re-export.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"re-export.d.ts","sourceRoot":"","sources":["../src/re-export.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
package/dist/re-export.js
DELETED
package/dist/re-export.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"re-export.js","sourceRoot":"","sources":["../src/re-export.ts"],"names":[],"mappings":";;;AAAA,uDAA4B"}
|
package/dist/registry.d.ts
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
import "reflect-metadata";
|
2
|
-
import { Provider, ResolvedReflectiveProvider } from "injection-js";
|
3
|
-
import { DIModuleOptions, DITypeOptions, InjectableToken, InjectableType } from "./types";
|
4
|
-
export declare const METADATA_DI_ID: unique symbol;
|
5
|
-
export declare const METADATA_DI_MODULE_OPTIONS: unique symbol;
|
6
|
-
export declare const METADATA_DI_TYPE_OPTIONS: unique symbol;
|
7
|
-
declare type ProvidersStore = Map<string, Provider>;
|
8
|
-
declare type ScopesStore = Map<string, ProvidersStore>;
|
9
|
-
export declare function tokenToString(token: InjectableType): string;
|
10
|
-
export declare function isDITokenRegistered(token: InjectableType): boolean;
|
11
|
-
export declare function getDIModuleOptions(token: InjectableType): DIModuleOptions;
|
12
|
-
export declare function getDITypeOptions(token: InjectableType): DITypeOptions;
|
13
|
-
export declare class DIRegistry {
|
14
|
-
static current: DIRegistry;
|
15
|
-
parent: DIRegistry | null;
|
16
|
-
private nextId;
|
17
|
-
scopesStore: ScopesStore;
|
18
|
-
resolvedProvidersStore: Map<string, ResolvedReflectiveProvider[]>;
|
19
|
-
modulesStore: InjectableToken[];
|
20
|
-
resolvedEagerTokens: Map<string, import("./types").TInjectableType<any>[]>;
|
21
|
-
tokensStore: Map<string, unknown>;
|
22
|
-
private getNexId;
|
23
|
-
private getProvidersStore;
|
24
|
-
registerProviders(scope: string, providers: Provider[]): void;
|
25
|
-
private registerProvider;
|
26
|
-
private injectRegisterTokenID;
|
27
|
-
private _registerModule;
|
28
|
-
registerModule(moduleToken: InjectableType, scope?: string): void;
|
29
|
-
getProvidersFor(scope: string, token: InjectableType | null): Provider[];
|
30
|
-
clear(): void;
|
31
|
-
getResolvedProvidersFor(scope: string, token: InjectableType | null): ResolvedReflectiveProvider[];
|
32
|
-
getDIModules(scope: string): InjectableType[];
|
33
|
-
resolveEagerTokens(scope: string): InjectableType[];
|
34
|
-
getEagerTokens(scope: string, cached?: boolean): InjectableType[];
|
35
|
-
resolveTokenByName(name: string): InjectableToken;
|
36
|
-
}
|
37
|
-
export {};
|
38
|
-
//# sourceMappingURL=registry.d.ts.map
|
package/dist/registry.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EACL,QAAQ,EAER,0BAA0B,EAC3B,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,cAAc,eAAyB,CAAA;AACpD,eAAO,MAAM,0BAA0B,eAAqC,CAAA;AAC5E,eAAO,MAAM,wBAAwB,eAAmC,CAAA;AAExE,aAAK,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAC3C,aAAK,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAQ9C,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAI3D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAElE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAMzE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,aAAa,CAMrE;AAED,qBAAa,UAAU;IACrB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAA;IAE1B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAO;IAChC,OAAO,CAAC,MAAM,CAAI;IAElB,WAAW,EAAE,WAAW,CAAY;IACpC,sBAAsB,4CAAkD;IACxE,YAAY,EAAE,eAAe,EAAE,CAAK;IACpC,mBAAmB,wDAAsC;IACzD,WAAW,uBAA6B;IAExC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,iBAAiB;IAYzB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAO7D,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,eAAe;IA8BvB,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,GAAG,QAAQ,EAAE;IAaxE,KAAK,IAAI,IAAI;IAKb,uBAAuB,CACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,GAAG,IAAI,GAC3B,0BAA0B,EAAE;IAc/B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE;IAO7C,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE;IAcnD,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,cAAc,EAAE;IAcjE,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;CAGlD"}
|
package/dist/registry.js
DELETED
@@ -1,175 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.DIRegistry = exports.getDITypeOptions = exports.getDIModuleOptions = exports.isDITokenRegistered = exports.tokenToString = exports.METADATA_DI_TYPE_OPTIONS = exports.METADATA_DI_MODULE_OPTIONS = exports.METADATA_DI_ID = void 0;
|
4
|
-
require("reflect-metadata");
|
5
|
-
const injection_js_1 = require("injection-js");
|
6
|
-
exports.METADATA_DI_ID = Symbol("art-ws:di:id");
|
7
|
-
exports.METADATA_DI_MODULE_OPTIONS = Symbol("art-ws:di:module:options");
|
8
|
-
exports.METADATA_DI_TYPE_OPTIONS = Symbol("art-ws:di:type:options");
|
9
|
-
function className(cls) {
|
10
|
-
const [_type, _name] = cls.toString().split(" ");
|
11
|
-
if (_type != "class" || !_name)
|
12
|
-
return undefined;
|
13
|
-
return _name.trim();
|
14
|
-
}
|
15
|
-
function tokenToString(token) {
|
16
|
-
const s = token.toString();
|
17
|
-
if (s === "[object Object]")
|
18
|
-
return undefined;
|
19
|
-
return className(token);
|
20
|
-
}
|
21
|
-
exports.tokenToString = tokenToString;
|
22
|
-
function isDITokenRegistered(token) {
|
23
|
-
return Boolean(Reflect.getMetadata(exports.METADATA_DI_ID, token));
|
24
|
-
}
|
25
|
-
exports.isDITokenRegistered = isDITokenRegistered;
|
26
|
-
function getDIModuleOptions(token) {
|
27
|
-
const o = Reflect.getMetadata(exports.METADATA_DI_MODULE_OPTIONS, token);
|
28
|
-
if (typeof o !== "object") {
|
29
|
-
throw new Error(`Module ${token} require @DIModule() decorator`);
|
30
|
-
}
|
31
|
-
return o;
|
32
|
-
}
|
33
|
-
exports.getDIModuleOptions = getDIModuleOptions;
|
34
|
-
function getDITypeOptions(token) {
|
35
|
-
const o = Reflect.getMetadata(exports.METADATA_DI_TYPE_OPTIONS, token);
|
36
|
-
if (typeof o !== "object") {
|
37
|
-
throw new Error(`Type ${`${token}`} require @Autowired() decorator`);
|
38
|
-
}
|
39
|
-
return o;
|
40
|
-
}
|
41
|
-
exports.getDITypeOptions = getDITypeOptions;
|
42
|
-
class DIRegistry {
|
43
|
-
constructor() {
|
44
|
-
this.parent = null;
|
45
|
-
this.nextId = 1;
|
46
|
-
this.scopesStore = new Map();
|
47
|
-
this.resolvedProvidersStore = new Map();
|
48
|
-
this.modulesStore = [];
|
49
|
-
this.resolvedEagerTokens = new Map();
|
50
|
-
this.tokensStore = new Map();
|
51
|
-
}
|
52
|
-
getNexId() {
|
53
|
-
return this.nextId++;
|
54
|
-
}
|
55
|
-
getProvidersStore(scope) {
|
56
|
-
const { scopesStore } = this;
|
57
|
-
const providersStore = scopesStore.get(scope) ??
|
58
|
-
(() => {
|
59
|
-
const value = new Map();
|
60
|
-
scopesStore.set(scope, value);
|
61
|
-
return value;
|
62
|
-
})();
|
63
|
-
return providersStore;
|
64
|
-
}
|
65
|
-
registerProviders(scope, providers) {
|
66
|
-
const providersStore = this.getProvidersStore(scope);
|
67
|
-
providers.forEach((provider) => {
|
68
|
-
this.registerProvider(providersStore, provider);
|
69
|
-
});
|
70
|
-
}
|
71
|
-
registerProvider(store, provider) {
|
72
|
-
const o = Reflect.getMetadata(exports.METADATA_DI_TYPE_OPTIONS, provider);
|
73
|
-
if (o && isDITokenRegistered(provider)) {
|
74
|
-
return;
|
75
|
-
}
|
76
|
-
const id = this.injectRegisterTokenID(provider);
|
77
|
-
store.set(`${id}`, provider);
|
78
|
-
const tokenName = tokenToString(provider);
|
79
|
-
if (tokenName) {
|
80
|
-
this.tokensStore.set(tokenName, provider);
|
81
|
-
}
|
82
|
-
}
|
83
|
-
injectRegisterTokenID(token) {
|
84
|
-
if (!token) {
|
85
|
-
throw new Error("token not defined");
|
86
|
-
}
|
87
|
-
const id = this.getNexId();
|
88
|
-
const metadataValue = `${id}`;
|
89
|
-
Reflect.defineMetadata(exports.METADATA_DI_ID, metadataValue, token);
|
90
|
-
return metadataValue;
|
91
|
-
}
|
92
|
-
_registerModule(path, moduleToken, scope) {
|
93
|
-
if (isDITokenRegistered(moduleToken)) {
|
94
|
-
return;
|
95
|
-
}
|
96
|
-
const idMaybe = Reflect.getMetadata(exports.METADATA_DI_ID, moduleToken);
|
97
|
-
if (idMaybe && path.includes(idMaybe)) {
|
98
|
-
throw new Error(`Circular dependency for type ${`${moduleToken}`}`);
|
99
|
-
}
|
100
|
-
this.modulesStore.push(moduleToken);
|
101
|
-
path.push(this.injectRegisterTokenID(moduleToken));
|
102
|
-
const o = getDIModuleOptions(moduleToken);
|
103
|
-
(o.imports ?? []).forEach((importedModuleToken) => {
|
104
|
-
this._registerModule(path, importedModuleToken, scope);
|
105
|
-
});
|
106
|
-
const s = scope ?? o.scope ?? "";
|
107
|
-
if (!s) {
|
108
|
-
throw new Error(`Scope not provided for ${moduleToken}`);
|
109
|
-
}
|
110
|
-
this.registerProviders(s, [moduleToken, ...(o.providers ?? [])]);
|
111
|
-
}
|
112
|
-
registerModule(moduleToken, scope) {
|
113
|
-
this._registerModule([], moduleToken, scope);
|
114
|
-
}
|
115
|
-
getProvidersFor(scope, token) {
|
116
|
-
if (!scope) {
|
117
|
-
throw new Error(`Scope not defined.`);
|
118
|
-
}
|
119
|
-
if (token && !isDITokenRegistered(token)) {
|
120
|
-
throw new Error(`Token ${token} not registered.`);
|
121
|
-
}
|
122
|
-
const providersStore = this.getProvidersStore(scope);
|
123
|
-
const providers = [...providersStore.values()];
|
124
|
-
return providers;
|
125
|
-
}
|
126
|
-
clear() {
|
127
|
-
this.resolvedProvidersStore.clear();
|
128
|
-
this.resolvedEagerTokens.clear();
|
129
|
-
}
|
130
|
-
getResolvedProvidersFor(scope, token) {
|
131
|
-
if (!scope)
|
132
|
-
throw new Error("Scope not defined");
|
133
|
-
const { resolvedProvidersStore } = this;
|
134
|
-
if (this.resolvedProvidersStore.has(scope)) {
|
135
|
-
return resolvedProvidersStore.get(scope) ?? [];
|
136
|
-
}
|
137
|
-
const effectiveProviders = this.getProvidersFor(scope, token);
|
138
|
-
const result = injection_js_1.ReflectiveInjector.resolve(effectiveProviders) ?? [];
|
139
|
-
resolvedProvidersStore.set(scope, result);
|
140
|
-
return result;
|
141
|
-
}
|
142
|
-
getDIModules(scope) {
|
143
|
-
return [...this.modulesStore]
|
144
|
-
.map((token) => ({ token, options: getDIModuleOptions(token) }))
|
145
|
-
.filter((x) => x.options?.scope === scope)
|
146
|
-
.map((x) => x.token);
|
147
|
-
}
|
148
|
-
resolveEagerTokens(scope) {
|
149
|
-
const providersStore = this.getProvidersStore(scope);
|
150
|
-
return [...providersStore.values()]
|
151
|
-
.map((token) => ({
|
152
|
-
token,
|
153
|
-
options: Reflect.getMetadata(exports.METADATA_DI_TYPE_OPTIONS, token),
|
154
|
-
}))
|
155
|
-
.filter((x) => x.options?.eager)
|
156
|
-
.map((x) => x.token);
|
157
|
-
}
|
158
|
-
getEagerTokens(scope, cached) {
|
159
|
-
if (!cached)
|
160
|
-
return this.resolveEagerTokens(scope);
|
161
|
-
const { resolvedEagerTokens } = this;
|
162
|
-
return (resolvedEagerTokens.get(scope) ??
|
163
|
-
(() => {
|
164
|
-
const value = this.resolveEagerTokens(scope);
|
165
|
-
resolvedEagerTokens.set(scope, value);
|
166
|
-
return value;
|
167
|
-
})());
|
168
|
-
}
|
169
|
-
resolveTokenByName(name) {
|
170
|
-
return this.tokensStore.get(name);
|
171
|
-
}
|
172
|
-
}
|
173
|
-
exports.DIRegistry = DIRegistry;
|
174
|
-
DIRegistry.current = new DIRegistry();
|
175
|
-
//# sourceMappingURL=registry.js.map
|
package/dist/registry.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
import { Type, Injector, Provider, InjectionToken } from "injection-js";
|
2
|
-
export declare type TInjectableType<T> = Type<T> | Object;
|
3
|
-
export declare type InjectableType = TInjectableType<any>;
|
4
|
-
export declare type TInjectableToken<T> = TInjectableType<T> | InjectionToken<T>;
|
5
|
-
export declare type InjectableToken = TInjectableToken<any>;
|
6
|
-
export declare enum DIScope {
|
7
|
-
SINGLETON = "SINGLETON",
|
8
|
-
REQUEST = "REQUEST",
|
9
|
-
TRANSIENT = "TRANSIENT"
|
10
|
-
}
|
11
|
-
export interface DIModuleOptions {
|
12
|
-
scope: DIScope;
|
13
|
-
imports?: InjectableType[];
|
14
|
-
providers?: Provider[];
|
15
|
-
}
|
16
|
-
export interface DITypeOptions {
|
17
|
-
scope: DIScope;
|
18
|
-
eager?: boolean;
|
19
|
-
}
|
20
|
-
export declare type ScopeStrategy = (parent: DIScope | null | string) => DIScope | null | string;
|
21
|
-
export declare function getDefaultScopeStrategy(parent: DIScope | null | string | string): DIScope | null | string;
|
22
|
-
export interface CreateChildOptions {
|
23
|
-
disposable: boolean;
|
24
|
-
}
|
25
|
-
export interface InjectorRef {
|
26
|
-
get: <T>(token: TInjectableToken<T>) => T;
|
27
|
-
parent: () => InjectorRef | null;
|
28
|
-
scope: () => string;
|
29
|
-
injector: () => Injector;
|
30
|
-
createChild: (providers?: Provider[], opts?: CreateChildOptions) => InjectorRef;
|
31
|
-
dispose?: (callback: (x?: unknown) => void) => void;
|
32
|
-
initEager: (cb?: (ref?: InjectableType) => void, cached?: boolean) => void;
|
33
|
-
bootstrapModules: () => void;
|
34
|
-
getByName: <T>(tokenName: string) => TInjectableToken<T>;
|
35
|
-
}
|
36
|
-
export interface ModuleLoader {
|
37
|
-
providers: (providers?: Provider[]) => ModuleLoader;
|
38
|
-
bootstrapModule: (rootModule: InjectableType) => InjectorRef;
|
39
|
-
}
|
40
|
-
export interface DoBootstrap {
|
41
|
-
doBootstrap: (injector?: InjectorRef) => void;
|
42
|
-
}
|
43
|
-
export declare function tryInvokeDoBootstrap(ref: DoBootstrap, injector: InjectorRef): void;
|
44
|
-
export declare function resolveAndInvokeDoBootstrap(injector: InjectorRef, token: InjectableToken): void;
|
45
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAEvE,oBAAY,eAAe,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;AACjD,oBAAY,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;AACjD,oBAAY,gBAAgB,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;AACxE,oBAAY,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;AAEnD,oBAAY,OAAO;IACjB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;IAC1B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,oBAAY,aAAa,GAAG,CAC1B,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,KAC5B,OAAO,GAAG,IAAI,GAAG,MAAM,CAAA;AAE5B,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GACvC,OAAO,GAAG,IAAI,GAAG,MAAM,CASzB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,MAAM,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,QAAQ,CAAA;IACxB,WAAW,EAAE,CACX,SAAS,CAAC,EAAE,QAAQ,EAAE,EACtB,IAAI,CAAC,EAAE,kBAAkB,KACtB,WAAW,CAAA;IAChB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAA;IACnD,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,KAAK,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1E,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAA;CACzD;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,YAAY,CAAA;IACnD,eAAe,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,WAAW,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;CAC9C;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,WAAW,GACpB,IAAI,CAIN;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,eAAe,GACrB,IAAI,CAGN"}
|
package/dist/types.js
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.resolveAndInvokeDoBootstrap = exports.tryInvokeDoBootstrap = exports.getDefaultScopeStrategy = exports.DIScope = void 0;
|
4
|
-
var DIScope;
|
5
|
-
(function (DIScope) {
|
6
|
-
DIScope["SINGLETON"] = "SINGLETON";
|
7
|
-
DIScope["REQUEST"] = "REQUEST";
|
8
|
-
DIScope["TRANSIENT"] = "TRANSIENT";
|
9
|
-
})(DIScope = exports.DIScope || (exports.DIScope = {}));
|
10
|
-
function getDefaultScopeStrategy(parent) {
|
11
|
-
if (!parent) {
|
12
|
-
return DIScope.SINGLETON;
|
13
|
-
}
|
14
|
-
else if (parent === DIScope.SINGLETON) {
|
15
|
-
return DIScope.REQUEST;
|
16
|
-
}
|
17
|
-
else if (parent === DIScope.REQUEST) {
|
18
|
-
return DIScope.TRANSIENT;
|
19
|
-
}
|
20
|
-
return "";
|
21
|
-
}
|
22
|
-
exports.getDefaultScopeStrategy = getDefaultScopeStrategy;
|
23
|
-
function tryInvokeDoBootstrap(ref, injector) {
|
24
|
-
if (typeof ref.doBootstrap === "function") {
|
25
|
-
ref.doBootstrap(injector);
|
26
|
-
}
|
27
|
-
}
|
28
|
-
exports.tryInvokeDoBootstrap = tryInvokeDoBootstrap;
|
29
|
-
function resolveAndInvokeDoBootstrap(injector, token) {
|
30
|
-
const ref = injector.get(token);
|
31
|
-
tryInvokeDoBootstrap(ref, injector);
|
32
|
-
}
|
33
|
-
exports.resolveAndInvokeDoBootstrap = resolveAndInvokeDoBootstrap;
|
34
|
-
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAOA,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,kCAAuB,CAAA;IACvB,8BAAmB,CAAA;IACnB,kCAAuB,CAAA;AACzB,CAAC,EAJW,OAAO,GAAP,eAAO,KAAP,eAAO,QAIlB;AAiBD,SAAgB,uBAAuB,CACrC,MAAwC;IAExC,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,OAAO,CAAC,SAAS,CAAA;KACzB;SAAM,IAAI,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE;QACvC,OAAO,OAAO,CAAC,OAAO,CAAA;KACvB;SAAM,IAAI,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE;QACrC,OAAO,OAAO,CAAC,SAAS,CAAA;KACzB;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAXD,0DAWC;AA8BD,SAAgB,oBAAoB,CAClC,GAAgB,EAChB,QAAqB;IAErB,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE;QACzC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;KAC1B;AACH,CAAC;AAPD,oDAOC;AAED,SAAgB,2BAA2B,CACzC,QAAqB,EACrB,KAAsB;IAEtB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAc,KAAK,CAAC,CAAA;IAC5C,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACrC,CAAC;AAND,kEAMC"}
|