@tsed/di 8.0.0-alpha.4 → 8.0.0-alpha.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/esm/node/decorators/injectContext.js +2 -2
- package/lib/esm/node/decorators/injectContext.js.map +1 -1
- package/lib/esm/node/domain/DIContext.js.map +1 -1
- package/lib/esm/node/utils/asyncHookContext.js +3 -2
- package/lib/esm/node/utils/asyncHookContext.js.map +1 -1
- package/lib/types/node/decorators/injectContext.d.ts +2 -1
- package/lib/types/node/domain/DIContext.d.ts +1 -1
- package/lib/types/node/utils/asyncHookContext.d.ts +4 -3
- package/package.json +10 -11
- package/lib/cjs/common/constants/constants.js +0 -9
- package/lib/cjs/common/constants/constants.js.map +0 -1
- package/lib/cjs/common/decorators/autoInjectable.js +0 -38
- package/lib/cjs/common/decorators/autoInjectable.js.map +0 -1
- package/lib/cjs/common/decorators/configuration.js +0 -24
- package/lib/cjs/common/decorators/configuration.js.map +0 -1
- package/lib/cjs/common/decorators/constant.js +0 -74
- package/lib/cjs/common/decorators/constant.js.map +0 -1
- package/lib/cjs/common/decorators/controller.js +0 -53
- package/lib/cjs/common/decorators/controller.js.map +0 -1
- package/lib/cjs/common/decorators/inject.js +0 -84
- package/lib/cjs/common/decorators/inject.js.map +0 -1
- package/lib/cjs/common/decorators/injectable.js +0 -32
- package/lib/cjs/common/decorators/injectable.js.map +0 -1
- package/lib/cjs/common/decorators/intercept.js +0 -65
- package/lib/cjs/common/decorators/intercept.js.map +0 -1
- package/lib/cjs/common/decorators/interceptor.js +0 -21
- package/lib/cjs/common/decorators/interceptor.js.map +0 -1
- package/lib/cjs/common/decorators/lazyInject.js +0 -71
- package/lib/cjs/common/decorators/lazyInject.js.map +0 -1
- package/lib/cjs/common/decorators/module.js +0 -32
- package/lib/cjs/common/decorators/module.js.map +0 -1
- package/lib/cjs/common/decorators/opts.js +0 -54
- package/lib/cjs/common/decorators/opts.js.map +0 -1
- package/lib/cjs/common/decorators/overrideProvider.js +0 -17
- package/lib/cjs/common/decorators/overrideProvider.js.map +0 -1
- package/lib/cjs/common/decorators/scope.js +0 -16
- package/lib/cjs/common/decorators/scope.js.map +0 -1
- package/lib/cjs/common/decorators/service.js +0 -18
- package/lib/cjs/common/decorators/service.js.map +0 -1
- package/lib/cjs/common/decorators/useOpts.js +0 -61
- package/lib/cjs/common/decorators/useOpts.js.map +0 -1
- package/lib/cjs/common/decorators/value.js +0 -62
- package/lib/cjs/common/decorators/value.js.map +0 -1
- package/lib/cjs/common/domain/Container.js +0 -72
- package/lib/cjs/common/domain/Container.js.map +0 -1
- package/lib/cjs/common/domain/ControllerProvider.js +0 -36
- package/lib/cjs/common/domain/ControllerProvider.js.map +0 -1
- package/lib/cjs/common/domain/InjectablePropertyType.js +0 -12
- package/lib/cjs/common/domain/InjectablePropertyType.js.map +0 -1
- package/lib/cjs/common/domain/LocalsContainer.js +0 -15
- package/lib/cjs/common/domain/LocalsContainer.js.map +0 -1
- package/lib/cjs/common/domain/Provider.js +0 -134
- package/lib/cjs/common/domain/Provider.js.map +0 -1
- package/lib/cjs/common/domain/ProviderScope.js +0 -10
- package/lib/cjs/common/domain/ProviderScope.js.map +0 -1
- package/lib/cjs/common/domain/ProviderType.js +0 -15
- package/lib/cjs/common/domain/ProviderType.js.map +0 -1
- package/lib/cjs/common/errors/InjectionError.js +0 -58
- package/lib/cjs/common/errors/InjectionError.js.map +0 -1
- package/lib/cjs/common/errors/InvalidPropertyTokenError.js +0 -12
- package/lib/cjs/common/errors/InvalidPropertyTokenError.js.map +0 -1
- package/lib/cjs/common/index.js +0 -58
- package/lib/cjs/common/index.js.map +0 -1
- package/lib/cjs/common/interfaces/DIConfigurationOptions.js +0 -3
- package/lib/cjs/common/interfaces/DIConfigurationOptions.js.map +0 -1
- package/lib/cjs/common/interfaces/DILogger.js +0 -3
- package/lib/cjs/common/interfaces/DILogger.js.map +0 -1
- package/lib/cjs/common/interfaces/DILoggerOptions.js +0 -3
- package/lib/cjs/common/interfaces/DILoggerOptions.js.map +0 -1
- package/lib/cjs/common/interfaces/DIResolver.js +0 -3
- package/lib/cjs/common/interfaces/DIResolver.js.map +0 -1
- package/lib/cjs/common/interfaces/ImportTokenProviderOpts.js +0 -3
- package/lib/cjs/common/interfaces/ImportTokenProviderOpts.js.map +0 -1
- package/lib/cjs/common/interfaces/InterceptorContext.js +0 -3
- package/lib/cjs/common/interfaces/InterceptorContext.js.map +0 -1
- package/lib/cjs/common/interfaces/InterceptorMethods.js +0 -3
- package/lib/cjs/common/interfaces/InterceptorMethods.js.map +0 -1
- package/lib/cjs/common/interfaces/InvokeOptions.js +0 -3
- package/lib/cjs/common/interfaces/InvokeOptions.js.map +0 -1
- package/lib/cjs/common/interfaces/OnDestroy.js +0 -3
- package/lib/cjs/common/interfaces/OnDestroy.js.map +0 -1
- package/lib/cjs/common/interfaces/OnInit.js +0 -3
- package/lib/cjs/common/interfaces/OnInit.js.map +0 -1
- package/lib/cjs/common/interfaces/ProviderOpts.js +0 -3
- package/lib/cjs/common/interfaces/ProviderOpts.js.map +0 -1
- package/lib/cjs/common/interfaces/RegistrySettings.js +0 -3
- package/lib/cjs/common/interfaces/RegistrySettings.js.map +0 -1
- package/lib/cjs/common/interfaces/ResolvedInvokeOptions.js +0 -3
- package/lib/cjs/common/interfaces/ResolvedInvokeOptions.js.map +0 -1
- package/lib/cjs/common/interfaces/TokenProvider.js +0 -3
- package/lib/cjs/common/interfaces/TokenProvider.js.map +0 -1
- package/lib/cjs/common/interfaces/TokenRoute.js +0 -3
- package/lib/cjs/common/interfaces/TokenRoute.js.map +0 -1
- package/lib/cjs/common/registries/GlobalProviders.js +0 -121
- package/lib/cjs/common/registries/GlobalProviders.js.map +0 -1
- package/lib/cjs/common/registries/ProviderRegistry.js +0 -86
- package/lib/cjs/common/registries/ProviderRegistry.js.map +0 -1
- package/lib/cjs/common/services/DIConfiguration.js +0 -142
- package/lib/cjs/common/services/DIConfiguration.js.map +0 -1
- package/lib/cjs/common/services/DILogger.js +0 -14
- package/lib/cjs/common/services/DILogger.js.map +0 -1
- package/lib/cjs/common/services/InjectorService.js +0 -536
- package/lib/cjs/common/services/InjectorService.js.map +0 -1
- package/lib/cjs/common/utils/colors.js +0 -10
- package/lib/cjs/common/utils/colors.js.map +0 -1
- package/lib/cjs/common/utils/createContainer.js +0 -14
- package/lib/cjs/common/utils/createContainer.js.map +0 -1
- package/lib/cjs/common/utils/getConfiguration.js +0 -23
- package/lib/cjs/common/utils/getConfiguration.js.map +0 -1
- package/lib/cjs/common/utils/getConstructorDependencies.js +0 -13
- package/lib/cjs/common/utils/getConstructorDependencies.js.map +0 -1
- package/lib/cjs/common/utils/resolveControllers.js +0 -47
- package/lib/cjs/common/utils/resolveControllers.js.map +0 -1
- package/lib/cjs/index.js +0 -6
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/node/decorators/injectContext.js +0 -39
- package/lib/cjs/node/decorators/injectContext.js.map +0 -1
- package/lib/cjs/node/domain/ContextLogger.js +0 -99
- package/lib/cjs/node/domain/ContextLogger.js.map +0 -1
- package/lib/cjs/node/domain/DIContext.js +0 -102
- package/lib/cjs/node/domain/DIContext.js.map +0 -1
- package/lib/cjs/node/index.js +0 -18
- package/lib/cjs/node/index.js.map +0 -1
- package/lib/cjs/node/interfaces/AlterRunInContext.js +0 -3
- package/lib/cjs/node/interfaces/AlterRunInContext.js.map +0 -1
- package/lib/cjs/node/services/DILogger.js +0 -12
- package/lib/cjs/node/services/DILogger.js.map +0 -1
- package/lib/cjs/node/services/DITest.js +0 -126
- package/lib/cjs/node/services/DITest.js.map +0 -1
- package/lib/cjs/node/utils/asyncHookContext.js +0 -42
- package/lib/cjs/node/utils/asyncHookContext.js.map +0 -1
- package/lib/cjs/node/utils/attachLogger.js +0 -10
- package/lib/cjs/node/utils/attachLogger.js.map +0 -1
- package/lib/cjs/node/utils/setLoggerConfiguration.js +0 -11
- package/lib/cjs/node/utils/setLoggerConfiguration.js.map +0 -1
- package/lib/cjs/node/utils/setLoggerFormat.js +0 -33
- package/lib/cjs/node/utils/setLoggerFormat.js.map +0 -1
- package/lib/cjs/node/utils/setLoggerLevel.js +0 -15
- package/lib/cjs/node/utils/setLoggerLevel.js.map +0 -1
- package/lib/cjs/package.json +0 -3
- package/lib/esm/package.json +0 -3
- package/lib/types-esm/common/constants/constants.d.ts +0 -5
- package/lib/types-esm/common/decorators/autoInjectable.d.ts +0 -1
- package/lib/types-esm/common/decorators/configuration.d.ts +0 -8
- package/lib/types-esm/common/decorators/constant.d.ts +0 -39
- package/lib/types-esm/common/decorators/controller.d.ts +0 -42
- package/lib/types-esm/common/decorators/inject.d.ts +0 -35
- package/lib/types-esm/common/decorators/injectable.d.ts +0 -20
- package/lib/types-esm/common/decorators/intercept.d.ts +0 -13
- package/lib/types-esm/common/decorators/interceptor.d.ts +0 -10
- package/lib/types-esm/common/decorators/lazyInject.d.ts +0 -43
- package/lib/types-esm/common/decorators/module.d.ts +0 -37
- package/lib/types-esm/common/decorators/opts.d.ts +0 -41
- package/lib/types-esm/common/decorators/overrideProvider.d.ts +0 -8
- package/lib/types-esm/common/decorators/scope.d.ts +0 -8
- package/lib/types-esm/common/decorators/service.d.ts +0 -10
- package/lib/types-esm/common/decorators/useOpts.d.ts +0 -42
- package/lib/types-esm/common/decorators/value.d.ts +0 -37
- package/lib/types-esm/common/domain/Container.d.ts +0 -43
- package/lib/types-esm/common/domain/ControllerProvider.d.ts +0 -17
- package/lib/types-esm/common/domain/InjectablePropertyType.d.ts +0 -7
- package/lib/types-esm/common/domain/LocalsContainer.d.ts +0 -6
- package/lib/types-esm/common/domain/Provider.d.ts +0 -71
- package/lib/types-esm/common/domain/ProviderScope.d.ts +0 -5
- package/lib/types-esm/common/domain/ProviderType.d.ts +0 -10
- package/lib/types-esm/common/errors/InjectionError.d.ts +0 -8
- package/lib/types-esm/common/errors/InvalidPropertyTokenError.d.ts +0 -4
- package/lib/types-esm/common/index.d.ts +0 -54
- package/lib/types-esm/common/interfaces/DIConfigurationOptions.d.ts +0 -29
- package/lib/types-esm/common/interfaces/DILogger.d.ts +0 -8
- package/lib/types-esm/common/interfaces/DILoggerOptions.d.ts +0 -53
- package/lib/types-esm/common/interfaces/DIResolver.d.ts +0 -5
- package/lib/types-esm/common/interfaces/ImportTokenProviderOpts.d.ts +0 -19
- package/lib/types-esm/common/interfaces/InterceptorContext.d.ts +0 -11
- package/lib/types-esm/common/interfaces/InterceptorMethods.d.ts +0 -4
- package/lib/types-esm/common/interfaces/InvokeOptions.d.ts +0 -30
- package/lib/types-esm/common/interfaces/OnDestroy.d.ts +0 -3
- package/lib/types-esm/common/interfaces/OnInit.d.ts +0 -3
- package/lib/types-esm/common/interfaces/ProviderOpts.d.ts +0 -59
- package/lib/types-esm/common/interfaces/RegistrySettings.d.ts +0 -21
- package/lib/types-esm/common/interfaces/ResolvedInvokeOptions.d.ts +0 -12
- package/lib/types-esm/common/interfaces/TokenProvider.d.ts +0 -2
- package/lib/types-esm/common/interfaces/TokenRoute.d.ts +0 -5
- package/lib/types-esm/common/registries/GlobalProviders.d.ts +0 -58
- package/lib/types-esm/common/registries/ProviderRegistry.d.ts +0 -58
- package/lib/types-esm/common/services/DIConfiguration.d.ts +0 -57
- package/lib/types-esm/common/services/DILogger.d.ts +0 -3
- package/lib/types-esm/common/services/InjectorService.d.ts +0 -203
- package/lib/types-esm/common/utils/colors.d.ts +0 -5
- package/lib/types-esm/common/utils/createContainer.d.ts +0 -3
- package/lib/types-esm/common/utils/getConfiguration.d.ts +0 -3
- package/lib/types-esm/common/utils/getConstructorDependencies.d.ts +0 -2
- package/lib/types-esm/common/utils/resolveControllers.d.ts +0 -12
- package/lib/types-esm/index.d.ts +0 -2
- package/lib/types-esm/node/decorators/injectContext.d.ts +0 -15
- package/lib/types-esm/node/domain/ContextLogger.d.ts +0 -37
- package/lib/types-esm/node/domain/DIContext.d.ts +0 -61
- package/lib/types-esm/node/index.d.ts +0 -14
- package/lib/types-esm/node/interfaces/AlterRunInContext.d.ts +0 -3
- package/lib/types-esm/node/services/DILogger.d.ts +0 -1
- package/lib/types-esm/node/services/DITest.d.ts +0 -37
- package/lib/types-esm/node/utils/asyncHookContext.d.ts +0 -14
- package/lib/types-esm/node/utils/attachLogger.d.ts +0 -2
- package/lib/types-esm/node/utils/setLoggerConfiguration.d.ts +0 -2
- package/lib/types-esm/node/utils/setLoggerFormat.d.ts +0 -6
- package/lib/types-esm/node/utils/setLoggerLevel.d.ts +0 -6
- /package/{webpack.config.js → webpack.config.cjs} +0 -0
|
@@ -1,536 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var InjectorService_1;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.InjectorService = void 0;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const core_1 = require("@tsed/core");
|
|
7
|
-
const constants_js_1 = require("../constants/constants.js");
|
|
8
|
-
const configuration_js_1 = require("../decorators/configuration.js");
|
|
9
|
-
const injectable_js_1 = require("../decorators/injectable.js");
|
|
10
|
-
const Container_js_1 = require("../domain/Container.js");
|
|
11
|
-
const LocalsContainer_js_1 = require("../domain/LocalsContainer.js");
|
|
12
|
-
const Provider_js_1 = require("../domain/Provider.js");
|
|
13
|
-
const ProviderScope_js_1 = require("../domain/ProviderScope.js");
|
|
14
|
-
const InjectionError_js_1 = require("../errors/InjectionError.js");
|
|
15
|
-
const GlobalProviders_js_1 = require("../registries/GlobalProviders.js");
|
|
16
|
-
const createContainer_js_1 = require("../utils/createContainer.js");
|
|
17
|
-
const getConstructorDependencies_js_1 = require("../utils/getConstructorDependencies.js");
|
|
18
|
-
const resolveControllers_js_1 = require("../utils/resolveControllers.js");
|
|
19
|
-
const DIConfiguration_js_1 = require("./DIConfiguration.js");
|
|
20
|
-
let globalInjector;
|
|
21
|
-
let globalLocals;
|
|
22
|
-
/**
|
|
23
|
-
* This service contain all services collected by `@Service` or services declared manually with `InjectorService.factory()` or `InjectorService.service()`.
|
|
24
|
-
*
|
|
25
|
-
* ### Example:
|
|
26
|
-
*
|
|
27
|
-
* ```typescript
|
|
28
|
-
* import {InjectorService} from "@tsed/di";
|
|
29
|
-
*
|
|
30
|
-
* // Import the services (all services are decorated with @Service()";
|
|
31
|
-
* import MyService1 from "./services/service1.js";
|
|
32
|
-
* import MyService2 from "./services/service2.js";
|
|
33
|
-
* import MyService3 from "./services/service3.js";
|
|
34
|
-
*
|
|
35
|
-
* // When all services are imported, you can load InjectorService.
|
|
36
|
-
* const injector = new InjectorService()
|
|
37
|
-
*
|
|
38
|
-
* await injector.load();
|
|
39
|
-
*
|
|
40
|
-
* const myService1 = injector.get<MyService1>(MyServcice1);
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
let InjectorService = InjectorService_1 = class InjectorService extends Container_js_1.Container {
|
|
44
|
-
#cache;
|
|
45
|
-
#hooks;
|
|
46
|
-
constructor() {
|
|
47
|
-
super();
|
|
48
|
-
this.settings = new DIConfiguration_js_1.DIConfiguration();
|
|
49
|
-
this.logger = console;
|
|
50
|
-
this.resolvedConfiguration = false;
|
|
51
|
-
this.#cache = new LocalsContainer_js_1.LocalsContainer();
|
|
52
|
-
this.#hooks = new core_1.Hooks();
|
|
53
|
-
this.#cache.set(InjectorService_1, this);
|
|
54
|
-
globalInjector = this;
|
|
55
|
-
}
|
|
56
|
-
get resolvers() {
|
|
57
|
-
return this.settings.resolvers;
|
|
58
|
-
}
|
|
59
|
-
get scopes() {
|
|
60
|
-
return this.settings.scopes || {};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Return the current injector service.
|
|
64
|
-
*/
|
|
65
|
-
static getInstance() {
|
|
66
|
-
if (!globalInjector) {
|
|
67
|
-
throw new Error("InjectorService instance is not created yet.");
|
|
68
|
-
}
|
|
69
|
-
return globalInjector;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Get the locals container initiated by DITest or .bootstrap() method.
|
|
73
|
-
*/
|
|
74
|
-
static getLocals() {
|
|
75
|
-
return globalLocals || (globalLocals = new LocalsContainer_js_1.LocalsContainer());
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Reset the locals container.
|
|
79
|
-
*/
|
|
80
|
-
static unsetLocals() {
|
|
81
|
-
globalLocals = undefined;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Retrieve default scope for a given provider.
|
|
85
|
-
* @param provider
|
|
86
|
-
*/
|
|
87
|
-
scopeOf(provider) {
|
|
88
|
-
return provider.scope || this.scopes[String(provider.type)] || ProviderScope_js_1.ProviderScope.SINGLETON;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Return a list of instance build by the injector.
|
|
92
|
-
*/
|
|
93
|
-
toArray() {
|
|
94
|
-
return [...this.#cache.values()];
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Get a service or factory already constructed from his symbol or class.
|
|
98
|
-
*
|
|
99
|
-
* #### Example
|
|
100
|
-
*
|
|
101
|
-
* ```typescript
|
|
102
|
-
* import {InjectorService} from "@tsed/di";
|
|
103
|
-
* import MyService from "./services.js";
|
|
104
|
-
*
|
|
105
|
-
* class OtherService {
|
|
106
|
-
* constructor(injectorService: InjectorService) {
|
|
107
|
-
* const myService = injectorService.get<MyService>(MyService);
|
|
108
|
-
* }
|
|
109
|
-
* }
|
|
110
|
-
* ```
|
|
111
|
-
*
|
|
112
|
-
* @param token The class or symbol registered in InjectorService.
|
|
113
|
-
* @param options
|
|
114
|
-
*/
|
|
115
|
-
get(token, options = {}) {
|
|
116
|
-
const instance = this.getInstance(token);
|
|
117
|
-
if (instance !== undefined) {
|
|
118
|
-
return instance;
|
|
119
|
-
}
|
|
120
|
-
if (!this.hasProvider(token)) {
|
|
121
|
-
for (const resolver of this.resolvers) {
|
|
122
|
-
const result = resolver.get(token, options);
|
|
123
|
-
if (result !== undefined) {
|
|
124
|
-
return result;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Return all instance of the same provider type
|
|
131
|
-
*/
|
|
132
|
-
getMany(type, locals, options) {
|
|
133
|
-
return this.getProviders(type).map((provider) => {
|
|
134
|
-
return this.invoke(provider.token, locals, options);
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* The has() method returns a boolean indicating whether an element with the specified key exists or not.
|
|
139
|
-
*/
|
|
140
|
-
has(token) {
|
|
141
|
-
return this.#cache.get(token) !== undefined;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Declare an alias for a given token.
|
|
145
|
-
*/
|
|
146
|
-
alias(token, alias) {
|
|
147
|
-
this.#cache.set(alias, this.#cache.get(token));
|
|
148
|
-
return this;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Invoke the class and inject all services that required by the class constructor.
|
|
152
|
-
*
|
|
153
|
-
* #### Example
|
|
154
|
-
*
|
|
155
|
-
* ```typescript
|
|
156
|
-
* import {InjectorService} from "@tsed/di";
|
|
157
|
-
* import MyService from "./services.js";
|
|
158
|
-
*
|
|
159
|
-
* class OtherService {
|
|
160
|
-
* constructor(injectorService: InjectorService) {
|
|
161
|
-
* const myService = injectorService.invoke<MyService>(MyService);
|
|
162
|
-
* }
|
|
163
|
-
* }
|
|
164
|
-
* ```
|
|
165
|
-
*
|
|
166
|
-
* @param token The injectable class to invoke. Class parameters are injected according constructor signature.
|
|
167
|
-
* @param locals Optional object. If preset then any argument Class are read from this object first, before the `InjectorService` is consulted.
|
|
168
|
-
* @param options
|
|
169
|
-
* @returns {Type} The class constructed.
|
|
170
|
-
*/
|
|
171
|
-
invoke(token, locals, options = {}) {
|
|
172
|
-
let instance = locals ? locals.get(token) : undefined;
|
|
173
|
-
if (instance !== undefined) {
|
|
174
|
-
return instance;
|
|
175
|
-
}
|
|
176
|
-
if (token === configuration_js_1.Configuration) {
|
|
177
|
-
return this.settings;
|
|
178
|
-
}
|
|
179
|
-
instance = !options.rebuild ? this.getInstance(token) : undefined;
|
|
180
|
-
if (instance != undefined) {
|
|
181
|
-
return instance;
|
|
182
|
-
}
|
|
183
|
-
if (token === constants_js_1.DI_USE_PARAM_OPTIONS) {
|
|
184
|
-
return options.useOpts;
|
|
185
|
-
}
|
|
186
|
-
const provider = this.ensureProvider(token);
|
|
187
|
-
const set = (instance) => {
|
|
188
|
-
this.#cache.set(token, instance);
|
|
189
|
-
provider?.alias && this.alias(token, provider.alias);
|
|
190
|
-
};
|
|
191
|
-
if (!provider || options.rebuild) {
|
|
192
|
-
instance = this.resolve(token, locals, options);
|
|
193
|
-
if (this.hasProvider(token)) {
|
|
194
|
-
set(instance);
|
|
195
|
-
}
|
|
196
|
-
return instance;
|
|
197
|
-
}
|
|
198
|
-
instance = this.resolve(token, locals, options);
|
|
199
|
-
switch (this.scopeOf(provider)) {
|
|
200
|
-
case ProviderScope_js_1.ProviderScope.SINGLETON:
|
|
201
|
-
if (provider.hooks && !options.rebuild) {
|
|
202
|
-
this.registerHooks(provider, instance);
|
|
203
|
-
}
|
|
204
|
-
if (!provider.isAsync() || !(0, core_1.isPromise)(instance)) {
|
|
205
|
-
set(instance);
|
|
206
|
-
// locals?.delete(DI_USE_PARAM_OPTIONS);
|
|
207
|
-
return instance;
|
|
208
|
-
}
|
|
209
|
-
// store promise to lock token in cache
|
|
210
|
-
set(instance);
|
|
211
|
-
instance = instance.then((instance) => {
|
|
212
|
-
set(instance);
|
|
213
|
-
return instance;
|
|
214
|
-
});
|
|
215
|
-
// locals?.delete(DI_USE_PARAM_OPTIONS);
|
|
216
|
-
return instance;
|
|
217
|
-
case ProviderScope_js_1.ProviderScope.REQUEST:
|
|
218
|
-
if (locals) {
|
|
219
|
-
locals.set(token, instance);
|
|
220
|
-
if (provider.hooks && provider.hooks.$onDestroy) {
|
|
221
|
-
locals.hooks.on("$onDestroy", (...args) => provider.hooks.$onDestroy(instance, ...args));
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
// locals?.delete(DI_USE_PARAM_OPTIONS);
|
|
225
|
-
return instance;
|
|
226
|
-
}
|
|
227
|
-
return instance;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Build only providers which are asynchronous.
|
|
231
|
-
*/
|
|
232
|
-
async loadAsync() {
|
|
233
|
-
for (const [, provider] of this) {
|
|
234
|
-
if (!this.has(provider.token) && provider.isAsync()) {
|
|
235
|
-
await this.invoke(provider.token);
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Build only providers which are synchronous.
|
|
241
|
-
*/
|
|
242
|
-
loadSync() {
|
|
243
|
-
for (const [, provider] of this) {
|
|
244
|
-
if (!this.has(provider.token) && this.scopeOf(provider) === ProviderScope_js_1.ProviderScope.SINGLETON) {
|
|
245
|
-
this.invoke(provider.token);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Boostrap injector from container and resolve configuration.
|
|
251
|
-
*
|
|
252
|
-
* @param container
|
|
253
|
-
*/
|
|
254
|
-
bootstrap(container = (0, createContainer_js_1.createContainer)()) {
|
|
255
|
-
// Clone all providers in the container
|
|
256
|
-
this.addProviders(container);
|
|
257
|
-
// Resolve all configuration
|
|
258
|
-
this.resolveConfiguration();
|
|
259
|
-
// allow mocking or changing provider instance before loading injector
|
|
260
|
-
this.resolveImportsProviders();
|
|
261
|
-
return this;
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Load injector from a given module
|
|
265
|
-
* @param rootModule
|
|
266
|
-
*/
|
|
267
|
-
loadModule(rootModule) {
|
|
268
|
-
this.settings.routes = this.settings.routes.concat((0, resolveControllers_js_1.resolveControllers)(this.settings));
|
|
269
|
-
const container = (0, createContainer_js_1.createContainer)();
|
|
270
|
-
container.delete(rootModule);
|
|
271
|
-
container.addProvider(rootModule, {
|
|
272
|
-
type: "server:module",
|
|
273
|
-
scope: ProviderScope_js_1.ProviderScope.SINGLETON
|
|
274
|
-
});
|
|
275
|
-
return this.load(container);
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Build all providers from given container (or GlobalProviders) and emit `$onInit` event.
|
|
279
|
-
*
|
|
280
|
-
* @param container
|
|
281
|
-
*/
|
|
282
|
-
async load(container = (0, createContainer_js_1.createContainer)()) {
|
|
283
|
-
this.bootstrap(container);
|
|
284
|
-
// build async and sync provider
|
|
285
|
-
await this.loadAsync();
|
|
286
|
-
// load sync provider
|
|
287
|
-
this.loadSync();
|
|
288
|
-
await this.emit("$beforeInit");
|
|
289
|
-
await this.emit("$onInit");
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Load all configurations registered on providers
|
|
293
|
-
*/
|
|
294
|
-
resolveConfiguration() {
|
|
295
|
-
if (this.resolvedConfiguration) {
|
|
296
|
-
return;
|
|
297
|
-
}
|
|
298
|
-
const mergedConfiguration = new Map();
|
|
299
|
-
super.forEach((provider) => {
|
|
300
|
-
if (provider.configuration && provider.type !== "server:module") {
|
|
301
|
-
Object.entries(provider.configuration).forEach(([key, value]) => {
|
|
302
|
-
if (!["resolvers", "mount", "imports"].includes(key)) {
|
|
303
|
-
value = mergedConfiguration.has(key) ? (0, core_1.deepMerge)(mergedConfiguration.get(key), value) : (0, core_1.deepClone)(value);
|
|
304
|
-
mergedConfiguration.set(key, value);
|
|
305
|
-
}
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
if (provider.resolvers) {
|
|
309
|
-
this.settings.resolvers = this.settings.resolvers.concat(provider.resolvers);
|
|
310
|
-
}
|
|
311
|
-
});
|
|
312
|
-
mergedConfiguration.forEach((value, key) => {
|
|
313
|
-
this.settings.set(key, (0, core_1.deepMerge)(value, this.settings.get(key)));
|
|
314
|
-
});
|
|
315
|
-
this.resolvedConfiguration = true;
|
|
316
|
-
}
|
|
317
|
-
async lazyInvoke(token) {
|
|
318
|
-
let instance = this.getInstance(token);
|
|
319
|
-
if (!instance) {
|
|
320
|
-
instance = await this.invoke(token);
|
|
321
|
-
if ((0, core_1.isFunction)(instance?.$onInit)) {
|
|
322
|
-
await instance.$onInit();
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
return instance;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Emit an event to all service. See service [lifecycle hooks](/docs/services.md#lifecycle-hooks).
|
|
329
|
-
* @param eventName The event name to emit at all services.
|
|
330
|
-
* @param args List of the parameters to give to each service.
|
|
331
|
-
* @returns A list of promises.
|
|
332
|
-
*/
|
|
333
|
-
emit(eventName, ...args) {
|
|
334
|
-
return this.#hooks.asyncEmit(eventName, args);
|
|
335
|
-
}
|
|
336
|
-
/**
|
|
337
|
-
* Alter value attached to an event.
|
|
338
|
-
* @param eventName
|
|
339
|
-
* @param value
|
|
340
|
-
* @param args
|
|
341
|
-
*/
|
|
342
|
-
alter(eventName, value, ...args) {
|
|
343
|
-
return this.#hooks.alter(eventName, value, args);
|
|
344
|
-
}
|
|
345
|
-
/**
|
|
346
|
-
* Alter value attached to an event asynchronously.
|
|
347
|
-
* @param eventName
|
|
348
|
-
* @param value
|
|
349
|
-
* @param args
|
|
350
|
-
*/
|
|
351
|
-
alterAsync(eventName, value, ...args) {
|
|
352
|
-
return this.#hooks.asyncAlter(eventName, value, args);
|
|
353
|
-
}
|
|
354
|
-
/**
|
|
355
|
-
* Destroy the injector and all services.
|
|
356
|
-
*/
|
|
357
|
-
async destroy() {
|
|
358
|
-
await this.emit("$onDestroy");
|
|
359
|
-
globalInjector = undefined;
|
|
360
|
-
}
|
|
361
|
-
ensureProvider(token, force = false) {
|
|
362
|
-
if (!this.hasProvider(token) && (GlobalProviders_js_1.GlobalProviders.has(token) || force)) {
|
|
363
|
-
this.addProvider(token);
|
|
364
|
-
}
|
|
365
|
-
return this.getProvider(token);
|
|
366
|
-
}
|
|
367
|
-
getInstance(token) {
|
|
368
|
-
return this.#cache.get(token);
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* Invoke a class method and inject service.
|
|
372
|
-
*
|
|
373
|
-
* #### IInjectableMethod options
|
|
374
|
-
*
|
|
375
|
-
* * **target**: Optional. The class instance.
|
|
376
|
-
* * **methodName**: `string` Optional. The method name.
|
|
377
|
-
* * **designParamTypes**: `any[]` Optional. List of injectable types.
|
|
378
|
-
* * **locals**: `Map<Function, any>` Optional. If preset then any argument Class are read from this object first, before the `InjectorService` is consulted.
|
|
379
|
-
*
|
|
380
|
-
* #### Example
|
|
381
|
-
*
|
|
382
|
-
* @param target
|
|
383
|
-
* @param locals
|
|
384
|
-
* @param options
|
|
385
|
-
* @private
|
|
386
|
-
*/
|
|
387
|
-
resolve(target, locals = new LocalsContainer_js_1.LocalsContainer(), options = {}) {
|
|
388
|
-
const resolvedOpts = this.mapInvokeOptions(target, locals, options);
|
|
389
|
-
if (!resolvedOpts) {
|
|
390
|
-
return undefined;
|
|
391
|
-
}
|
|
392
|
-
const { token, deps, construct, imports, provider } = resolvedOpts;
|
|
393
|
-
if (provider) {
|
|
394
|
-
GlobalProviders_js_1.GlobalProviders.onInvoke(provider, locals, { ...resolvedOpts, injector: this });
|
|
395
|
-
}
|
|
396
|
-
let instance;
|
|
397
|
-
let currentDependency = false;
|
|
398
|
-
try {
|
|
399
|
-
const invokeDependency = (parent) => (token, index) => {
|
|
400
|
-
currentDependency = { token, index, deps };
|
|
401
|
-
if ((0, core_1.isArray)(token)) {
|
|
402
|
-
return this.getMany(token[0], locals, options);
|
|
403
|
-
}
|
|
404
|
-
const useOpts = provider?.store?.get(`${constants_js_1.DI_USE_PARAM_OPTIONS}:${index}`) || options.useOpts;
|
|
405
|
-
return (0, core_1.isInheritedFrom)(token, Provider_js_1.Provider, 1) ? provider : this.invoke(token, locals, { parent, useOpts });
|
|
406
|
-
};
|
|
407
|
-
// Invoke manually imported providers
|
|
408
|
-
imports.forEach(invokeDependency());
|
|
409
|
-
// Inject dependencies
|
|
410
|
-
const services = deps.map(invokeDependency(token));
|
|
411
|
-
currentDependency = false;
|
|
412
|
-
instance = construct(services);
|
|
413
|
-
}
|
|
414
|
-
catch (error) {
|
|
415
|
-
InjectionError_js_1.InjectionError.throwInjectorError(token, currentDependency, error);
|
|
416
|
-
}
|
|
417
|
-
if (instance === undefined) {
|
|
418
|
-
throw new InjectionError_js_1.InjectionError(token, `Unable to create new instance from undefined value. Check your provider declaration for ${(0, core_1.nameOf)(token)}`);
|
|
419
|
-
}
|
|
420
|
-
if (instance && (0, core_1.isClass)((0, core_1.classOf)(instance))) {
|
|
421
|
-
Reflect.defineProperty(instance, constants_js_1.DI_INVOKE_OPTIONS, {
|
|
422
|
-
get: () => ({ rebuild: options.rebuild, locals })
|
|
423
|
-
});
|
|
424
|
-
// TODO add a way to notify DI consumer when a class instance is build
|
|
425
|
-
}
|
|
426
|
-
return instance;
|
|
427
|
-
}
|
|
428
|
-
resolveImportsProviders() {
|
|
429
|
-
this.settings.imports = this.settings.imports
|
|
430
|
-
?.filter((meta) => (0, core_1.isObject)(meta) && "token" in meta && meta.token !== InjectorService_1)
|
|
431
|
-
.map((meta) => {
|
|
432
|
-
if ((0, core_1.isObject)(meta) && "token" in meta) {
|
|
433
|
-
const { token, ...props } = meta;
|
|
434
|
-
const provider = this.ensureProvider(token, true);
|
|
435
|
-
if (provider) {
|
|
436
|
-
provider.useValue = undefined;
|
|
437
|
-
provider.useAsyncFactory = undefined;
|
|
438
|
-
provider.useFactory = undefined;
|
|
439
|
-
if ("useClass" in props) {
|
|
440
|
-
provider.useClass = props.useClass;
|
|
441
|
-
return;
|
|
442
|
-
}
|
|
443
|
-
if ("useFactory" in props) {
|
|
444
|
-
provider.useFactory = props.useFactory;
|
|
445
|
-
return;
|
|
446
|
-
}
|
|
447
|
-
if ("useAsyncFactory" in props) {
|
|
448
|
-
provider.useAsyncFactory = props.useAsyncFactory;
|
|
449
|
-
return;
|
|
450
|
-
}
|
|
451
|
-
if ("use" in props) {
|
|
452
|
-
provider.useValue = props.use;
|
|
453
|
-
return;
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
return meta;
|
|
458
|
-
})
|
|
459
|
-
.filter(Boolean);
|
|
460
|
-
}
|
|
461
|
-
/**
|
|
462
|
-
* Create options to invoke a provider or class.
|
|
463
|
-
* @param token
|
|
464
|
-
* @param locals
|
|
465
|
-
* @param options
|
|
466
|
-
*/
|
|
467
|
-
mapInvokeOptions(token, locals, options) {
|
|
468
|
-
let imports = options.imports;
|
|
469
|
-
let deps = options.deps;
|
|
470
|
-
let scope = options.scope;
|
|
471
|
-
let construct;
|
|
472
|
-
if (!token || token === Object) {
|
|
473
|
-
throw new Error("Given token is undefined. Could mean a circular dependency problem. Try to use @Inject(() => Token) to solve it.");
|
|
474
|
-
}
|
|
475
|
-
let provider;
|
|
476
|
-
if (!this.hasProvider(token)) {
|
|
477
|
-
provider = new Provider_js_1.Provider(token);
|
|
478
|
-
this.resolvers.forEach((resolver) => {
|
|
479
|
-
const result = resolver.get(token, locals.get(constants_js_1.DI_USE_PARAM_OPTIONS));
|
|
480
|
-
if (result !== undefined) {
|
|
481
|
-
provider.useFactory = () => result;
|
|
482
|
-
}
|
|
483
|
-
});
|
|
484
|
-
}
|
|
485
|
-
else {
|
|
486
|
-
provider = this.getProvider(token);
|
|
487
|
-
}
|
|
488
|
-
scope = scope || this.scopeOf(provider);
|
|
489
|
-
deps = deps || provider.deps;
|
|
490
|
-
imports = imports || provider.imports;
|
|
491
|
-
if (provider.useValue !== undefined) {
|
|
492
|
-
construct = () => ((0, core_1.isFunction)(provider.useValue) ? provider.useValue() : provider.useValue);
|
|
493
|
-
}
|
|
494
|
-
else if (provider.useFactory) {
|
|
495
|
-
construct = (deps) => provider.useFactory(...deps);
|
|
496
|
-
}
|
|
497
|
-
else if (provider.useAsyncFactory) {
|
|
498
|
-
construct = async (deps) => {
|
|
499
|
-
deps = await Promise.all(deps);
|
|
500
|
-
return provider.useAsyncFactory(...deps);
|
|
501
|
-
};
|
|
502
|
-
}
|
|
503
|
-
else if (provider.useClass) {
|
|
504
|
-
// useClass
|
|
505
|
-
deps = deps || (0, getConstructorDependencies_js_1.getConstructorDependencies)(provider.useClass);
|
|
506
|
-
construct = (deps) => new provider.useClass(...deps);
|
|
507
|
-
}
|
|
508
|
-
else {
|
|
509
|
-
return false;
|
|
510
|
-
}
|
|
511
|
-
return {
|
|
512
|
-
token,
|
|
513
|
-
scope: scope || core_1.Store.from(token).get("scope") || ProviderScope_js_1.ProviderScope.SINGLETON,
|
|
514
|
-
deps: deps || [],
|
|
515
|
-
imports: imports || [],
|
|
516
|
-
construct,
|
|
517
|
-
provider
|
|
518
|
-
};
|
|
519
|
-
}
|
|
520
|
-
registerHooks(provider, instance) {
|
|
521
|
-
if (provider.hooks) {
|
|
522
|
-
Object.entries(provider.hooks).forEach(([event, cb]) => {
|
|
523
|
-
const callback = (...args) => cb(this.get(provider.token) || instance, ...args);
|
|
524
|
-
this.#hooks.on(event, callback);
|
|
525
|
-
});
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
};
|
|
529
|
-
InjectorService = InjectorService_1 = tslib_1.__decorate([
|
|
530
|
-
(0, injectable_js_1.Injectable)({
|
|
531
|
-
scope: ProviderScope_js_1.ProviderScope.SINGLETON
|
|
532
|
-
}),
|
|
533
|
-
tslib_1.__metadata("design:paramtypes", [])
|
|
534
|
-
], InjectorService);
|
|
535
|
-
exports.InjectorService = InjectorService;
|
|
536
|
-
//# sourceMappingURL=InjectorService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InjectorService.js","sourceRoot":"","sources":["../../../../src/common/services/InjectorService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.colors = void 0;
|
|
4
|
-
// istanbul ignore next
|
|
5
|
-
const colorIfAllowed = (colorFn) => (text) => !process.env.NO_COLOR && process.env.NODE_ENV !== "production" ? colorFn(text) : text;
|
|
6
|
-
const red = colorIfAllowed((text) => `\x1B[31m${text}\x1B[39m`);
|
|
7
|
-
const yellow = colorIfAllowed((text) => `\x1B[33m${text}\x1B[39m`);
|
|
8
|
-
const green = colorIfAllowed((text) => `\x1B[32m${text}\x1B[39m`);
|
|
9
|
-
exports.colors = { red, yellow, green };
|
|
10
|
-
//# sourceMappingURL=colors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../../../src/common/utils/colors.ts"],"names":[],"mappings":";;;AAEA,uBAAuB;AACvB,MAAM,cAAc,GAAG,CAAC,OAAoB,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE,CAChE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAExF,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC;AACxE,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC;AAC3E,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC;AAE7D,QAAA,MAAM,GAAG,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createContainer = void 0;
|
|
4
|
-
const Container_js_1 = require("../domain/Container.js");
|
|
5
|
-
const GlobalProviders_js_1 = require("../registries/GlobalProviders.js");
|
|
6
|
-
function createContainer(rootModule) {
|
|
7
|
-
const container = new Container_js_1.Container(GlobalProviders_js_1.GlobalProviders.entries());
|
|
8
|
-
if (rootModule) {
|
|
9
|
-
container.delete(rootModule);
|
|
10
|
-
}
|
|
11
|
-
return container;
|
|
12
|
-
}
|
|
13
|
-
exports.createContainer = createContainer;
|
|
14
|
-
//# sourceMappingURL=createContainer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createContainer.js","sourceRoot":"","sources":["../../../../src/common/utils/createContainer.ts"],"names":[],"mappings":";;;AACA,yDAAiD;AACjD,yEAAiE;AAEjE,SAAgB,eAAe,CAAC,UAAsB;IACpD,MAAM,SAAS,GAAG,IAAI,wBAAS,CAAC,oCAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAE3D,IAAI,UAAU,EAAE;QACd,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAC9B;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,0CAQC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getConfiguration = exports.mergeMount = void 0;
|
|
4
|
-
const core_1 = require("@tsed/core");
|
|
5
|
-
function mergeMount(m1 = {}, m2 = {}) {
|
|
6
|
-
return Object.entries(m2).reduce((mount, [key, controllers]) => {
|
|
7
|
-
return {
|
|
8
|
-
...mount,
|
|
9
|
-
[key]: (mount[key] || []).concat(controllers)
|
|
10
|
-
};
|
|
11
|
-
}, m1);
|
|
12
|
-
}
|
|
13
|
-
exports.mergeMount = mergeMount;
|
|
14
|
-
function getConfiguration(module, configuration = {}) {
|
|
15
|
-
const store = core_1.Store.from(module).get("configuration") || {};
|
|
16
|
-
return {
|
|
17
|
-
...store,
|
|
18
|
-
...configuration,
|
|
19
|
-
mount: mergeMount(store.mount, configuration.mount)
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
exports.getConfiguration = getConfiguration;
|
|
23
|
-
//# sourceMappingURL=getConfiguration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getConfiguration.js","sourceRoot":"","sources":["../../../../src/common/utils/getConfiguration.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AAEvC,SAAgB,UAAU,CAAC,KAAU,EAAE,EAAE,KAAU,EAAE;IACnD,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE;QAC7D,OAAO;YACL,GAAG,KAAK;YACR,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;SAC9C,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAPD,gCAOC;AAED,SAAgB,gBAAgB,CAAC,MAAiB,EAAE,gBAAqB,EAAE;IACzE,MAAM,KAAK,GAAG,YAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAE5D,OAAO;QACL,GAAG,KAAK;QACR,GAAG,aAAa;QAChB,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;KACpD,CAAC;AACJ,CAAC;AARD,4CAQC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setConstructorDependencies = exports.getConstructorDependencies = void 0;
|
|
4
|
-
const core_1 = require("@tsed/core");
|
|
5
|
-
function getConstructorDependencies(target, propertyKey) {
|
|
6
|
-
return core_1.Metadata.getOwn("override:ctor:design:paramtypes", target, propertyKey) || [...core_1.Metadata.getParamTypes(target, propertyKey)] || [];
|
|
7
|
-
}
|
|
8
|
-
exports.getConstructorDependencies = getConstructorDependencies;
|
|
9
|
-
function setConstructorDependencies(target, deps) {
|
|
10
|
-
core_1.Metadata.set("override:ctor:design:paramtypes", deps, target);
|
|
11
|
-
}
|
|
12
|
-
exports.setConstructorDependencies = setConstructorDependencies;
|
|
13
|
-
//# sourceMappingURL=getConstructorDependencies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getConstructorDependencies.js","sourceRoot":"","sources":["../../../../src/common/utils/getConstructorDependencies.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AAEpC,SAAgB,0BAA0B,CAAC,MAAW,EAAE,WAAyC;IAC/F,OAAO,eAAQ,CAAC,MAAM,CAAC,iCAAiC,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,eAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3I,CAAC;AAFD,gEAEC;AAED,SAAgB,0BAA0B,CAAC,MAAW,EAAE,IAAW;IACjE,eAAQ,CAAC,GAAG,CAAC,iCAAiC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAFD,gEAEC"}
|