@tsed/di 8.0.0-rc.4 → 8.0.0-rc.6
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/lib/browser/di.umd.min.js +1 -1
- package/lib/browser/di.umd.min.js.map +1 -1
- package/lib/esm/common/decorators/autoInjectable.js +1 -1
- package/lib/esm/common/decorators/autoInjectable.js.map +1 -1
- package/lib/esm/common/decorators/configuration.js +7 -1
- package/lib/esm/common/decorators/configuration.js.map +1 -1
- package/lib/esm/common/decorators/module.js +2 -4
- package/lib/esm/common/decorators/module.js.map +1 -1
- package/lib/esm/common/domain/LocalsContainer.js +1 -1
- package/lib/esm/common/domain/LocalsContainer.js.map +1 -1
- package/lib/esm/common/domain/Provider.js +11 -13
- package/lib/esm/common/domain/Provider.js.map +1 -1
- package/lib/esm/common/fn/inject.js +3 -2
- package/lib/esm/common/fn/inject.js.map +1 -1
- package/lib/esm/common/fn/injectMany.js +10 -1
- package/lib/esm/common/fn/injectMany.js.map +1 -1
- package/lib/esm/common/fn/injectable.js +2 -48
- package/lib/esm/common/fn/injectable.js.map +1 -1
- package/lib/esm/common/fn/injector.js +5 -17
- package/lib/esm/common/fn/injector.js.map +1 -1
- package/lib/esm/common/fn/lazyInject.js +4 -4
- package/lib/esm/common/fn/lazyInject.js.map +1 -1
- package/lib/esm/common/index.js +2 -3
- package/lib/esm/common/index.js.map +1 -1
- package/lib/esm/common/registries/GlobalProviders.js +8 -14
- package/lib/esm/common/registries/GlobalProviders.js.map +1 -1
- package/lib/esm/common/registries/ProviderRegistry.js +4 -3
- package/lib/esm/common/registries/ProviderRegistry.js.map +1 -1
- package/lib/esm/common/services/DIConfiguration.js +1 -14
- package/lib/esm/common/services/DIConfiguration.js.map +1 -1
- package/lib/esm/common/services/InjectorService.js +157 -157
- package/lib/esm/common/services/InjectorService.js.map +1 -1
- package/lib/esm/common/utils/discoverHooks.js +14 -0
- package/lib/esm/common/utils/discoverHooks.js.map +1 -0
- package/lib/esm/common/utils/providerBuilder.js +55 -0
- package/lib/esm/common/utils/providerBuilder.js.map +1 -0
- package/lib/esm/node/domain/ContextLogger.js +1 -1
- package/lib/esm/node/domain/ContextLogger.js.map +1 -1
- package/lib/esm/node/domain/DIContext.js.map +1 -1
- package/lib/esm/node/services/DITest.js +9 -14
- package/lib/esm/node/services/DITest.js.map +1 -1
- package/lib/esm/node/utils/attachLogger.js +4 -3
- package/lib/esm/node/utils/attachLogger.js.map +1 -1
- package/lib/esm/node/utils/setLoggerConfiguration.js +3 -3
- package/lib/esm/node/utils/setLoggerConfiguration.js.map +1 -1
- package/lib/esm/node/utils/setLoggerFormat.js +8 -7
- package/lib/esm/node/utils/setLoggerFormat.js.map +1 -1
- package/lib/esm/node/utils/setLoggerLevel.js +4 -4
- package/lib/esm/node/utils/setLoggerLevel.js.map +1 -1
- package/lib/types/common/decorators/module.d.ts +0 -6
- package/lib/types/common/domain/LocalsContainer.d.ts +1 -1
- package/lib/types/common/domain/Provider.d.ts +17 -3
- package/lib/types/common/fn/injectMany.d.ts +9 -0
- package/lib/types/common/fn/injectable.d.ts +403 -18
- package/lib/types/common/fn/injector.d.ts +2 -9
- package/lib/types/common/index.d.ts +2 -3
- package/lib/types/common/interfaces/DIConfigurationOptions.d.ts +0 -5
- package/lib/types/common/interfaces/InvokeOptions.d.ts +0 -5
- package/lib/types/common/interfaces/ProviderOpts.d.ts +0 -5
- package/lib/types/common/interfaces/RegistrySettings.d.ts +0 -12
- package/lib/types/common/interfaces/ResolvedInvokeOptions.d.ts +2 -2
- package/lib/types/common/registries/GlobalProviders.d.ts +1 -7
- package/lib/types/common/registries/ProviderRegistry.d.ts +2 -2
- package/lib/types/common/services/DIConfiguration.d.ts +1 -6
- package/lib/types/common/services/InjectorService.d.ts +50 -38
- package/lib/types/common/utils/discoverHooks.d.ts +2 -0
- package/lib/types/common/utils/providerBuilder.d.ts +17 -0
- package/lib/types/node/domain/ContextLogger.d.ts +1 -1
- package/lib/types/node/services/DITest.d.ts +1 -2
- package/lib/types/node/utils/attachLogger.d.ts +2 -2
- package/lib/types/node/utils/setLoggerConfiguration.d.ts +1 -2
- package/lib/types/node/utils/setLoggerFormat.d.ts +1 -3
- package/lib/types/node/utils/setLoggerLevel.d.ts +1 -3
- package/package.json +12 -7
- package/vitest.config.mts +4 -4
- package/lib/esm/common/fn/events.js +0 -31
- package/lib/esm/common/fn/events.js.map +0 -1
- package/lib/esm/common/interfaces/DIResolver.js +0 -2
- package/lib/esm/common/interfaces/DIResolver.js.map +0 -1
- package/lib/esm/common/utils/resolveControllers.js +0 -42
- package/lib/esm/common/utils/resolveControllers.js.map +0 -1
- package/lib/types/common/fn/events.d.ts +0 -23
- package/lib/types/common/interfaces/DIResolver.d.ts +0 -5
- package/lib/types/common/utils/resolveControllers.d.ts +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoInjectable.js","sourceRoot":"","sources":["../../../../src/common/decorators/autoInjectable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAY,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAC,0BAA0B,EAAC,MAAM,wCAAwC,CAAC;AAElF,SAAS,yBAAyB,CAAC,KAAW,EAAE,IAAe;IAC7D,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,IAAI,GAAoB,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"autoInjectable.js","sourceRoot":"","sources":["../../../../src/common/decorators/autoInjectable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAY,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAC,0BAA0B,EAAC,MAAM,wCAAwC,CAAC;AAElF,SAAS,yBAAyB,CAAC,KAAW,EAAE,IAAe;IAC7D,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,IAAI,GAAoB,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;YAE9H,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAyD,MAAS,EAAK,EAAE;QAC9E,OAAO,MAAM,cAAe,SAAQ,MAAM;YACxC,YAAY,GAAG,IAAW;gBACxB,KAAK,CAAC,GAAG,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;SACc,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { decoratorTypeOf, DecoratorTypes } from "@tsed/core";
|
|
2
2
|
import { configuration } from "../fn/configuration.js";
|
|
3
|
+
import { injectable } from "../fn/injectable.js";
|
|
4
|
+
import { injector } from "../fn/injector.js";
|
|
5
|
+
import { DIConfiguration } from "../services/DIConfiguration.js";
|
|
3
6
|
import { Inject } from "./inject.js";
|
|
4
7
|
export function Configuration(settings = {}) {
|
|
5
8
|
return (...args) => {
|
|
@@ -9,8 +12,11 @@ export function Configuration(settings = {}) {
|
|
|
9
12
|
break;
|
|
10
13
|
default:
|
|
11
14
|
case DecoratorTypes.PARAM_CTOR:
|
|
12
|
-
return Inject(
|
|
15
|
+
return Inject(DIConfiguration)(args[0], args[1], args[2]);
|
|
13
16
|
}
|
|
14
17
|
};
|
|
15
18
|
}
|
|
19
|
+
// To maintain compatibility with the previous implementation, we need to declare Configuration as
|
|
20
|
+
// injectable token.
|
|
21
|
+
injectable(Configuration).factory(() => injector().settings);
|
|
16
22
|
//# sourceMappingURL=configuration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../../src/common/decorators/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,eAAe,EAAE,cAAc,EAAC,MAAM,YAAY,CAAC;AAEhF,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../../src/common/decorators/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,eAAe,EAAE,cAAc,EAAC,MAAM,YAAY,CAAC;AAEhF,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAgB,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AASnC,MAAM,UAAU,aAAa,CAAC,WAAwC,EAAE;IACtE,OAAO,CAAC,GAAG,IAAyB,EAAE,EAAE;QACtC,QAAQ,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,KAAK,cAAc,CAAC,KAAK;gBACvB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAEjC,MAAM;YACR,QAAQ;YACR,KAAK,cAAc,CAAC,UAAU;gBAC5B,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAW,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAID,kGAAkG;AAClG,oBAAoB;AACpB,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -8,21 +8,19 @@ import { Injectable } from "./injectable.js";
|
|
|
8
8
|
*
|
|
9
9
|
* ## Options
|
|
10
10
|
* - imports: List of Provider which must be built by injector before invoking the module
|
|
11
|
-
* - resolvers: List of external DI must be used to resolve unknown provider
|
|
12
11
|
* - deps: List of provider must be injected to the module constructor (explicit declaration)
|
|
13
12
|
*
|
|
14
13
|
* @param options
|
|
15
14
|
* @decorator
|
|
16
15
|
*/
|
|
17
16
|
export function Module(options = {}) {
|
|
18
|
-
const { scopes, imports,
|
|
17
|
+
const { scopes, imports, deps, scope, ...configuration } = options;
|
|
19
18
|
return useDecorators(Configuration(configuration), Injectable({
|
|
20
19
|
type: ProviderType.MODULE,
|
|
21
20
|
scope: ProviderScope.SINGLETON,
|
|
22
21
|
imports,
|
|
23
22
|
deps,
|
|
24
|
-
injectable: false
|
|
25
|
-
resolvers
|
|
23
|
+
injectable: false
|
|
26
24
|
}));
|
|
27
25
|
}
|
|
28
26
|
//# sourceMappingURL=module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/common/decorators/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/common/decorators/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAsB3C;;;;;;;;;GASG;AACH,MAAM,UAAU,MAAM,CAAC,UAAkC,EAAE;IACzD,MAAM,EAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,aAAa,EAAC,GAAG,OAAO,CAAC;IAEjE,OAAO,aAAa,CAClB,aAAa,CAAC,aAAa,CAAC,EAC5B,UAAU,CAAC;QACT,IAAI,EAAE,YAAY,CAAC,MAAM;QACzB,KAAK,EAAE,aAAa,CAAC,SAAS;QAC9B,OAAO;QACP,IAAI;QACJ,UAAU,EAAE,KAAK;KAClB,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalsContainer.js","sourceRoot":"","sources":["../../../../src/common/domain/LocalsContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"LocalsContainer.js","sourceRoot":"","sources":["../../../../src/common/domain/LocalsContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAIlC,MAAM,OAAO,eAAgB,SAAQ,GAAuB;IAA5D;;QACW,UAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAK/B,CAAC;IAHC,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { classOf, getClassOrSymbol, isClass,
|
|
1
|
+
import { classOf, getClassOrSymbol, isClass, nameOf, Store } from "@tsed/core";
|
|
2
|
+
import { DI_USE_PARAM_OPTIONS } from "../constants/constants.js";
|
|
3
|
+
import { discoverHooks } from "../utils/discoverHooks.js";
|
|
2
4
|
import { ProviderScope } from "./ProviderScope.js";
|
|
3
5
|
import { ProviderType } from "./ProviderType.js";
|
|
4
6
|
export class Provider {
|
|
@@ -7,6 +9,7 @@ export class Provider {
|
|
|
7
9
|
* Token group provider to retrieve all provider from the same type
|
|
8
10
|
*/
|
|
9
11
|
this.type = ProviderType.PROVIDER;
|
|
12
|
+
this.hooks = {};
|
|
10
13
|
this.provide = token;
|
|
11
14
|
this.useClass = token;
|
|
12
15
|
Object.assign(this, {
|
|
@@ -36,15 +39,7 @@ export class Provider {
|
|
|
36
39
|
if (isClass(value)) {
|
|
37
40
|
this._useClass = classOf(value);
|
|
38
41
|
this._store = Store.from(value);
|
|
39
|
-
this.hooks =
|
|
40
|
-
if (String(propertyKey).startsWith("$")) {
|
|
41
|
-
return {
|
|
42
|
-
...hooks,
|
|
43
|
-
[propertyKey]: (instance, ...args) => instance?.[propertyKey](...args)
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
return hooks;
|
|
47
|
-
}, {});
|
|
42
|
+
this.hooks = discoverHooks(this._useClass);
|
|
48
43
|
}
|
|
49
44
|
}
|
|
50
45
|
get className() {
|
|
@@ -75,7 +70,7 @@ export class Provider {
|
|
|
75
70
|
if (this.isAsync()) {
|
|
76
71
|
return ProviderScope.SINGLETON;
|
|
77
72
|
}
|
|
78
|
-
return this.get("scope");
|
|
73
|
+
return this.get("scope", ProviderScope.SINGLETON);
|
|
79
74
|
}
|
|
80
75
|
/**
|
|
81
76
|
* Change the scope value of the provider.
|
|
@@ -96,8 +91,11 @@ export class Provider {
|
|
|
96
91
|
set children(children) {
|
|
97
92
|
this.store.set("childrenControllers", children);
|
|
98
93
|
}
|
|
99
|
-
|
|
100
|
-
return this.store.get(
|
|
94
|
+
getArgOpts(index) {
|
|
95
|
+
return this.store.get(`${DI_USE_PARAM_OPTIONS}:${index}`);
|
|
96
|
+
}
|
|
97
|
+
get(key, defaultValue) {
|
|
98
|
+
return this.store.get(key) || this._tokenStore.get(key) || defaultValue;
|
|
101
99
|
}
|
|
102
100
|
isAsync() {
|
|
103
101
|
return !!this.useAsyncFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/common/domain/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/common/domain/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAO,MAAM,YAAY,CAAC;AAEtG,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAI/C,MAAM,OAAO,QAAQ;IAoBnB,YAAY,KAAuB,EAAE,UAA6B,EAAE;QAnBpE;;WAEG;QACI,SAAI,GAAiC,YAAY,CAAC,QAAQ,CAAC;QAQ3D,UAAK,GAA4C,EAAE,CAAC;QASzD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAgB,CAAC;QAEjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YAClB,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,KAAoB;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ,CAAC,KAAgC;QAC3C,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,IAAI,CAAC,IAAY;QACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACnB,OAAO,aAAa,CAAC,SAAS,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAgB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK,CAAC,KAAoB;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC;IACpC,CAAC;IAED,IAAI,aAAa,CAAC,aAA0C;QAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,QAAyB;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,oBAAoB,IAAI,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAeD,GAAG,CAAiB,GAAW,EAAE,YAAmB;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;IAC1E,CAAC;IAED,OAAO;QACL,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,SAAS;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ;QACN,OAAO;YACL,OAAO;YACP,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtC,IAAI,CAAC,UAAU,IAAI,SAAS;YAC5B,IAAI,CAAC,QAAQ,IAAI,OAAO;YACxB,IAAI,CAAC,eAAe,IAAI,cAAc;SACvC;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;CACF"}
|
|
@@ -18,9 +18,10 @@ import { invokeOptions, localsContainer } from "./localsContainer.js";
|
|
|
18
18
|
* @decorator
|
|
19
19
|
*/
|
|
20
20
|
export function inject(token, opts) {
|
|
21
|
-
return injector().
|
|
21
|
+
return injector().resolve(token, {
|
|
22
22
|
...opts,
|
|
23
|
-
...invokeOptions()
|
|
23
|
+
...invokeOptions(),
|
|
24
|
+
locals: opts?.locals || localsContainer()
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
//# sourceMappingURL=inject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../../src/common/fn/inject.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,aAAa,EAAE,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAEpE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,MAAM,CAAI,KAAuB,EAAE,IAAqE;IACtH,OAAO,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../../src/common/fn/inject.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,aAAa,EAAE,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAEpE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,MAAM,CAAI,KAAuB,EAAE,IAAqE;IACtH,OAAO,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE;QAC/B,GAAG,IAAI;QACP,GAAG,aAAa,EAAE;QAClB,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,eAAe,EAAE;KAC1C,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { injector } from "./injector.js";
|
|
2
2
|
import { localsContainer } from "./localsContainer.js";
|
|
3
|
+
/**
|
|
4
|
+
* Injects multiple instances of a given token using the injector service.
|
|
5
|
+
* @param token - The injection token to resolve
|
|
6
|
+
* @param opts - Optional configuration for the injection
|
|
7
|
+
* @param opts.useOpts - Options for instance creation
|
|
8
|
+
* @param opts.rebuild - Whether to rebuild the instance
|
|
9
|
+
* @param opts.locals - Local container overrides
|
|
10
|
+
* @returns Array of resolved instances
|
|
11
|
+
*/
|
|
3
12
|
export function injectMany(token, opts) {
|
|
4
|
-
return injector().getMany(token, opts?.locals || localsContainer()
|
|
13
|
+
return injector().getMany(token, { ...opts, locals: opts?.locals || localsContainer() });
|
|
5
14
|
}
|
|
6
15
|
//# sourceMappingURL=injectMany.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectMany.js","sourceRoot":"","sources":["../../../../src/common/fn/injectMany.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,MAAM,UAAU,UAAU,CAAI,KAAsB,EAAE,IAAqE;IACzH,OAAO,QAAQ,EAAE,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"injectMany.js","sourceRoot":"","sources":["../../../../src/common/fn/injectMany.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAI,KAAsB,EAAE,IAAqE;IACzH,OAAO,QAAQ,EAAE,CAAC,OAAO,CAAI,KAAK,EAAE,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,eAAe,EAAE,EAAkB,CAAC,CAAC;AAC7G,CAAC"}
|
|
@@ -1,52 +1,6 @@
|
|
|
1
|
-
import "../registries/ProviderRegistry.js";
|
|
2
1
|
import { ProviderType } from "../domain/ProviderType.js";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
return (token, options = {}) => {
|
|
6
|
-
const provider = GlobalProviders.merge(token, {
|
|
7
|
-
...options,
|
|
8
|
-
...baseOpts,
|
|
9
|
-
provide: token
|
|
10
|
-
});
|
|
11
|
-
return props.reduce((acc, prop) => {
|
|
12
|
-
return {
|
|
13
|
-
...acc,
|
|
14
|
-
[prop]: function (value) {
|
|
15
|
-
provider[prop] = value;
|
|
16
|
-
return this;
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
}, {
|
|
20
|
-
factory(factory) {
|
|
21
|
-
provider.useFactory = factory;
|
|
22
|
-
return this;
|
|
23
|
-
},
|
|
24
|
-
asyncFactory(asyncFactory) {
|
|
25
|
-
provider.useAsyncFactory = asyncFactory;
|
|
26
|
-
return this;
|
|
27
|
-
},
|
|
28
|
-
value(value) {
|
|
29
|
-
provider.useValue = value;
|
|
30
|
-
provider.type = ProviderType.VALUE;
|
|
31
|
-
return this;
|
|
32
|
-
},
|
|
33
|
-
class(k) {
|
|
34
|
-
provider.useClass = k;
|
|
35
|
-
return this;
|
|
36
|
-
},
|
|
37
|
-
store() {
|
|
38
|
-
return provider.store;
|
|
39
|
-
},
|
|
40
|
-
inspect() {
|
|
41
|
-
return provider;
|
|
42
|
-
},
|
|
43
|
-
token() {
|
|
44
|
-
return provider.token;
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
const Props = ["type", "scope", "path", "alias", "hooks", "deps", "resolvers", "imports", "configuration"];
|
|
2
|
+
import { providerBuilder } from "../utils/providerBuilder.js";
|
|
3
|
+
const Props = ["type", "scope", "path", "alias", "hooks", "deps", "imports", "configuration", "priority"];
|
|
50
4
|
export const injectable = providerBuilder(Props);
|
|
51
5
|
export const interceptor = providerBuilder(Props, {
|
|
52
6
|
type: ProviderType.INTERCEPTOR
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../../../src/common/fn/injectable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../../../src/common/fn/injectable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAI5D,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;AAC1G,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAiC,KAAK,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAiC,KAAK,EAAE;IAChF,IAAI,EAAE,YAAY,CAAC,WAAW;CAC/B,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAA+D,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC,EAAE;IACjI,IAAI,EAAE,YAAY,CAAC,UAAU;CAC9B,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InjectorService } from "../services/InjectorService.js";
|
|
2
|
-
let globalInjector;
|
|
2
|
+
let globalInjector = new InjectorService();
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Return the existing injector service.
|
|
5
5
|
*
|
|
6
6
|
* Example:
|
|
7
7
|
*
|
|
@@ -14,23 +14,11 @@ let globalInjector;
|
|
|
14
14
|
* }
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
-
export function injector(
|
|
18
|
-
if (!globalInjector || opts?.rebuild) {
|
|
19
|
-
globalInjector = new InjectorService();
|
|
20
|
-
if (opts && opts.logger) {
|
|
21
|
-
globalInjector.logger = opts.logger;
|
|
22
|
-
}
|
|
23
|
-
if (opts?.settings) {
|
|
24
|
-
globalInjector.settings.set(opts.settings);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
17
|
+
export function injector() {
|
|
27
18
|
return globalInjector;
|
|
28
19
|
}
|
|
29
|
-
export function hasInjector() {
|
|
30
|
-
return !!globalInjector;
|
|
31
|
-
}
|
|
32
20
|
export async function destroyInjector() {
|
|
33
|
-
await globalInjector
|
|
34
|
-
globalInjector =
|
|
21
|
+
await globalInjector.destroy();
|
|
22
|
+
globalInjector = new InjectorService();
|
|
35
23
|
}
|
|
36
24
|
//# sourceMappingURL=injector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injector.js","sourceRoot":"","sources":["../../../../src/common/fn/injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAE/D,IAAI,
|
|
1
|
+
{"version":3,"file":"injector.js","sourceRoot":"","sources":["../../../../src/common/fn/injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAE/D,IAAI,cAAc,GAAoB,IAAI,eAAe,EAAE,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;IAC/B,cAAc,GAAG,IAAI,eAAe,EAAE,CAAC;AACzC,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { isFunction } from "@tsed/core";
|
|
2
|
+
import { inject } from "./inject.js";
|
|
2
3
|
import { injector } from "./injector.js";
|
|
3
4
|
/**
|
|
4
5
|
* Lazy load a provider from his package and invoke only when the provider is used.
|
|
5
6
|
*/
|
|
6
7
|
export async function lazyInject(factory) {
|
|
7
8
|
const { default: token } = await factory();
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
instance = await injector().invoke(token);
|
|
9
|
+
if (!injector().has(token)) {
|
|
10
|
+
const instance = await inject(token);
|
|
11
11
|
const instanceWithHook = instance;
|
|
12
12
|
if ("$onInit" in instanceWithHook && isFunction(instanceWithHook.$onInit)) {
|
|
13
13
|
await instanceWithHook.$onInit();
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
return
|
|
16
|
+
return injector().get(token);
|
|
17
17
|
}
|
|
18
18
|
export async function optionalLazyInject(factory) {
|
|
19
19
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazyInject.js","sourceRoot":"","sources":["../../../../src/common/fn/lazyInject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAQ,OAAuD;IAC7F,MAAM,EAAC,OAAO,EAAE,KAAK,EAAC,GAAG,MAAM,OAAO,EAAE,CAAC;IAEzC,IAAI,
|
|
1
|
+
{"version":3,"file":"lazyInject.js","sourceRoot":"","sources":["../../../../src/common/fn/lazyInject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAQ,OAAuD;IAC7F,MAAM,EAAC,OAAO,EAAE,KAAK,EAAC,GAAG,MAAM,OAAO,EAAE,CAAC;IAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,gBAAgB,GAAG,QAAsD,CAAC;QAEhF,IAAI,SAAS,IAAI,gBAAgB,IAAI,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1E,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAA8B,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAEE;IAEF,IAAI,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
package/lib/esm/common/index.js
CHANGED
|
@@ -29,7 +29,6 @@ export * from "./errors/InjectionError.js";
|
|
|
29
29
|
export * from "./errors/InvalidPropertyTokenError.js";
|
|
30
30
|
export * from "./fn/configuration.js";
|
|
31
31
|
export * from "./fn/constant.js";
|
|
32
|
-
export * from "./fn/events.js";
|
|
33
32
|
export * from "./fn/inject.js";
|
|
34
33
|
export * from "./fn/injectable.js";
|
|
35
34
|
export * from "./fn/injectMany.js";
|
|
@@ -40,7 +39,6 @@ export * from "./fn/refValue.js";
|
|
|
40
39
|
export * from "./interfaces/DIConfigurationOptions.js";
|
|
41
40
|
export * from "./interfaces/DILogger.js";
|
|
42
41
|
export * from "./interfaces/DILoggerOptions.js";
|
|
43
|
-
export * from "./interfaces/DIResolver.js";
|
|
44
42
|
export * from "./interfaces/ImportTokenProviderOpts.js";
|
|
45
43
|
export * from "./interfaces/InterceptorContext.js";
|
|
46
44
|
export * from "./interfaces/InterceptorMethods.js";
|
|
@@ -59,7 +57,8 @@ export * from "./services/DILogger.js";
|
|
|
59
57
|
export * from "./services/InjectorService.js";
|
|
60
58
|
export * from "./utils/colors.js";
|
|
61
59
|
export * from "./utils/createContainer.js";
|
|
60
|
+
export * from "./utils/discoverHooks.js";
|
|
62
61
|
export * from "./utils/getConfiguration.js";
|
|
63
62
|
export * from "./utils/getConstructorDependencies.js";
|
|
64
|
-
export * from "./utils/
|
|
63
|
+
export * from "./utils/providerBuilder.js";
|
|
65
64
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC"}
|
|
@@ -34,6 +34,9 @@ export class GlobalProviderRegistry extends Map {
|
|
|
34
34
|
* @param options
|
|
35
35
|
*/
|
|
36
36
|
merge(target, options) {
|
|
37
|
+
if (options.global === false) {
|
|
38
|
+
return GlobalProviders.createProvider(target, options);
|
|
39
|
+
}
|
|
37
40
|
const meta = this.createIfNotExists(target, options);
|
|
38
41
|
Object.keys(options).forEach((key) => {
|
|
39
42
|
meta[key] = options[key];
|
|
@@ -58,12 +61,6 @@ export class GlobalProviderRegistry extends Map {
|
|
|
58
61
|
this.#settings.set(type, options);
|
|
59
62
|
return this;
|
|
60
63
|
}
|
|
61
|
-
onInvoke(provider, locals, options) {
|
|
62
|
-
const settings = this.#settings.get(provider.type);
|
|
63
|
-
if (settings?.onInvoke) {
|
|
64
|
-
settings.onInvoke(provider, locals, options);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
64
|
getRegistrySettings(target) {
|
|
68
65
|
let type = ProviderType.PROVIDER;
|
|
69
66
|
if (typeof target === "string") {
|
|
@@ -79,11 +76,10 @@ export class GlobalProviderRegistry extends Map {
|
|
|
79
76
|
model: Provider
|
|
80
77
|
});
|
|
81
78
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
};
|
|
79
|
+
createProvider(key, options) {
|
|
80
|
+
const type = options.type || ProviderType.PROVIDER;
|
|
81
|
+
const { model = Provider } = this.#settings.get(type) || {};
|
|
82
|
+
return new model(key, options);
|
|
87
83
|
}
|
|
88
84
|
/**
|
|
89
85
|
*
|
|
@@ -91,10 +87,8 @@ export class GlobalProviderRegistry extends Map {
|
|
|
91
87
|
* @param options
|
|
92
88
|
*/
|
|
93
89
|
createIfNotExists(key, options) {
|
|
94
|
-
const type = options.type || ProviderType.PROVIDER;
|
|
95
90
|
if (!this.has(key)) {
|
|
96
|
-
const
|
|
97
|
-
const item = new model(key, options);
|
|
91
|
+
const item = this.createProvider(key, options);
|
|
98
92
|
this.set(key, item);
|
|
99
93
|
}
|
|
100
94
|
return this.get(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalProviders.js","sourceRoot":"","sources":["../../../../src/common/registries/GlobalProviders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAO,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"GlobalProviders.js","sourceRoot":"","sources":["../../../../src/common/registries/GlobalProviders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { ControllerProvider } from "../domain/ControllerProvider.js";
|
|
2
2
|
import { ProviderType } from "../domain/ProviderType.js";
|
|
3
|
+
import { injectable } from "../fn/injectable.js";
|
|
3
4
|
import { GlobalProviders } from "./GlobalProviders.js";
|
|
4
5
|
GlobalProviders.createRegistry(ProviderType.CONTROLLER, ControllerProvider);
|
|
5
6
|
/**
|
|
6
7
|
* Register a provider configuration.
|
|
7
|
-
* @param {ProviderOpts<any>}
|
|
8
|
+
* @param {ProviderOpts<any>} opts
|
|
8
9
|
*/
|
|
9
|
-
export function registerProvider(
|
|
10
|
-
return
|
|
10
|
+
export function registerProvider(opts) {
|
|
11
|
+
return injectable(opts.provide, opts).inspect();
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=ProviderRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderRegistry.js","sourceRoot":"","sources":["../../../../src/common/registries/ProviderRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ProviderRegistry.js","sourceRoot":"","sources":["../../../../src/common/registries/ProviderRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,eAAe,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAa,IAAuE;IAClH,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAwC,CAAC,CAAC,OAAO,EAAE,CAAC;AACtF,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { getValue, setValue } from "@tsed/core";
|
|
2
|
+
export const CONFIGURATION = Symbol.for("CONFIGURATION");
|
|
2
3
|
export class DIConfiguration {
|
|
3
4
|
constructor(initialProps = {}) {
|
|
4
5
|
this.default = new Map();
|
|
5
6
|
this.map = new Map();
|
|
6
7
|
Object.entries({
|
|
7
|
-
scopes: {},
|
|
8
|
-
resolvers: [],
|
|
9
8
|
imports: [],
|
|
10
9
|
routes: [],
|
|
11
10
|
logger: {},
|
|
@@ -32,18 +31,6 @@ export class DIConfiguration {
|
|
|
32
31
|
set env(value) {
|
|
33
32
|
this.map.set("env", value);
|
|
34
33
|
}
|
|
35
|
-
get scopes() {
|
|
36
|
-
return this.map.get("scopes");
|
|
37
|
-
}
|
|
38
|
-
set scopes(value) {
|
|
39
|
-
this.map.set("scopes", value);
|
|
40
|
-
}
|
|
41
|
-
get resolvers() {
|
|
42
|
-
return this.getRaw("resolvers");
|
|
43
|
-
}
|
|
44
|
-
set resolvers(resolvers) {
|
|
45
|
-
this.map.set("resolvers", resolvers);
|
|
46
|
-
}
|
|
47
34
|
get imports() {
|
|
48
35
|
return this.get("imports");
|
|
49
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DIConfiguration.js","sourceRoot":"","sources":["../../../../src/common/services/DIConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,QAAQ,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"DIConfiguration.js","sourceRoot":"","sources":["../../../../src/common/services/DIConfiguration.ts"],"names":[],"mappings":"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"}
|