@tsed/di 6.69.3 → 6.71.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/lib/decorators/injectable.d.ts +1 -1
- package/lib/domain/Container.d.ts +3 -3
- package/lib/domain/DIContext.d.ts +8 -7
- package/lib/domain/LocalsContainer.d.ts +1 -1
- package/lib/domain/Provider.d.ts +4 -8
- package/lib/index.d.ts +0 -3
- package/lib/index.js +73 -273
- package/lib/index.js.map +1 -1
- package/lib/index.modern.js +75 -249
- package/lib/index.modern.js.map +1 -1
- package/lib/registries/GlobalProviders.d.ts +2 -5
- package/lib/registries/ProviderRegistry.d.ts +1 -31
- package/package.json +2 -3
- package/lib/utils/cleanGlobPatterns.d.ts +0 -1
- package/lib/utils/importComponents.d.ts +0 -8
- package/lib/utils/importFiles.d.ts +0 -1
- package/lib/utils/importProviders.d.ts +0 -10
package/lib/index.modern.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { __decorate, __metadata } from 'tslib';
|
|
1
|
+
import { getClassOrSymbol, Store, isClass, classOf, nameOf, StoreSet, decoratorTypeOf, UnsupportedDecoratorType, DecoratorTypes, Metadata, useDecorators, isString, getConstructorArgNames, proxyDelegation, setValue, getValue, deepMerge, deepClone, ancestorsOf, prototypeOf, isPromise, isInheritedFrom, isFunction, Env } from '@tsed/core';
|
|
3
2
|
import { levels, Logger, $log } from '@tsed/logger';
|
|
3
|
+
import { __decorate, __metadata } from 'tslib';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
|
-
import globby from 'globby';
|
|
6
|
-
import { resolve } from 'path';
|
|
7
5
|
|
|
8
6
|
const INJECTABLE_PROP = "DI:INJECTABLE_PROP";
|
|
9
7
|
const DI_PARAMS = "DI:PARAMS";
|
|
@@ -77,26 +75,44 @@ var ProviderType;
|
|
|
77
75
|
ProviderType["MIDDLEWARE"] = "middleware";
|
|
78
76
|
})(ProviderType || (ProviderType = {}));
|
|
79
77
|
|
|
78
|
+
var _provide = /*#__PURE__*/_classPrivateFieldLooseKey("provide");
|
|
79
|
+
|
|
80
|
+
var _store = /*#__PURE__*/_classPrivateFieldLooseKey("store");
|
|
81
|
+
|
|
82
|
+
var _tokenStore = /*#__PURE__*/_classPrivateFieldLooseKey("tokenStore");
|
|
83
|
+
|
|
80
84
|
class Provider {
|
|
81
|
-
constructor(token) {
|
|
85
|
+
constructor(token, options = {}) {
|
|
86
|
+
Object.defineProperty(this, _provide, {
|
|
87
|
+
writable: true,
|
|
88
|
+
value: void 0
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(this, _store, {
|
|
91
|
+
writable: true,
|
|
92
|
+
value: void 0
|
|
93
|
+
});
|
|
94
|
+
Object.defineProperty(this, _tokenStore, {
|
|
95
|
+
writable: true,
|
|
96
|
+
value: void 0
|
|
97
|
+
});
|
|
82
98
|
this.type = ProviderType.PROVIDER;
|
|
83
|
-
this.injectable = true;
|
|
84
99
|
this.provide = token;
|
|
85
100
|
this.useClass = token;
|
|
101
|
+
Object.assign(this, options);
|
|
86
102
|
}
|
|
87
103
|
|
|
88
104
|
get token() {
|
|
89
|
-
return this
|
|
105
|
+
return _classPrivateFieldLooseBase(this, _provide)[_provide];
|
|
90
106
|
}
|
|
91
107
|
|
|
92
108
|
get provide() {
|
|
93
|
-
return this
|
|
109
|
+
return _classPrivateFieldLooseBase(this, _provide)[_provide];
|
|
94
110
|
}
|
|
95
111
|
|
|
96
112
|
set provide(value) {
|
|
97
113
|
if (value) {
|
|
98
|
-
this
|
|
99
|
-
this
|
|
114
|
+
_classPrivateFieldLooseBase(this, _provide)[_provide] = getClassOrSymbol(value);
|
|
115
|
+
_classPrivateFieldLooseBase(this, _tokenStore)[_tokenStore] = _classPrivateFieldLooseBase(this, _store)[_store] = Store.from(value);
|
|
100
116
|
}
|
|
101
117
|
}
|
|
102
118
|
|
|
@@ -112,7 +128,7 @@ class Provider {
|
|
|
112
128
|
set useClass(value) {
|
|
113
129
|
if (isClass(value)) {
|
|
114
130
|
this._useClass = classOf(value);
|
|
115
|
-
this
|
|
131
|
+
_classPrivateFieldLooseBase(this, _store)[_store] = Store.from(value);
|
|
116
132
|
}
|
|
117
133
|
}
|
|
118
134
|
|
|
@@ -125,7 +141,7 @@ class Provider {
|
|
|
125
141
|
}
|
|
126
142
|
|
|
127
143
|
get store() {
|
|
128
|
-
return this
|
|
144
|
+
return _classPrivateFieldLooseBase(this, _store)[_store];
|
|
129
145
|
}
|
|
130
146
|
/**
|
|
131
147
|
* Get the scope of the provider.
|
|
@@ -164,7 +180,7 @@ class Provider {
|
|
|
164
180
|
}
|
|
165
181
|
|
|
166
182
|
get(key) {
|
|
167
|
-
return this.store.get(key) || this
|
|
183
|
+
return this.store.get(key) || _classPrivateFieldLooseBase(this, _tokenStore)[_tokenStore].get(key);
|
|
168
184
|
}
|
|
169
185
|
|
|
170
186
|
isAsync() {
|
|
@@ -172,13 +188,7 @@ class Provider {
|
|
|
172
188
|
}
|
|
173
189
|
|
|
174
190
|
clone() {
|
|
175
|
-
|
|
176
|
-
getEnumerableKeys(this).forEach(key => {
|
|
177
|
-
if (this[key] !== undefined) {
|
|
178
|
-
provider[key] = this[key];
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
return provider;
|
|
191
|
+
return new (classOf(this))(_classPrivateFieldLooseBase(this, _provide)[_provide], this);
|
|
182
192
|
}
|
|
183
193
|
|
|
184
194
|
toString() {
|
|
@@ -187,38 +197,6 @@ class Provider {
|
|
|
187
197
|
|
|
188
198
|
}
|
|
189
199
|
|
|
190
|
-
__decorate([Enumerable(), __metadata("design:type", Object)], Provider.prototype, "type", void 0);
|
|
191
|
-
|
|
192
|
-
__decorate([Enumerable(), __metadata("design:type", Boolean)], Provider.prototype, "injectable", void 0);
|
|
193
|
-
|
|
194
|
-
__decorate([Enumerable(), __metadata("design:type", Object)], Provider.prototype, "instance", void 0);
|
|
195
|
-
|
|
196
|
-
__decorate([Enumerable(), __metadata("design:type", Array)], Provider.prototype, "deps", void 0);
|
|
197
|
-
|
|
198
|
-
__decorate([Enumerable(), __metadata("design:type", Array)], Provider.prototype, "imports", void 0);
|
|
199
|
-
|
|
200
|
-
__decorate([Enumerable(), __metadata("design:type", Function)], Provider.prototype, "useFactory", void 0);
|
|
201
|
-
|
|
202
|
-
__decorate([Enumerable(), __metadata("design:type", Function)], Provider.prototype, "useAsyncFactory", void 0);
|
|
203
|
-
|
|
204
|
-
__decorate([Enumerable(), __metadata("design:type", Object)], Provider.prototype, "useValue", void 0);
|
|
205
|
-
|
|
206
|
-
__decorate([NotEnumerable(), __metadata("design:type", Object)], Provider.prototype, "_provide", void 0);
|
|
207
|
-
|
|
208
|
-
__decorate([NotEnumerable(), __metadata("design:type", Type)], Provider.prototype, "_useClass", void 0);
|
|
209
|
-
|
|
210
|
-
__decorate([NotEnumerable(), __metadata("design:type", Object)], Provider.prototype, "_instance", void 0);
|
|
211
|
-
|
|
212
|
-
__decorate([NotEnumerable(), __metadata("design:type", Store)], Provider.prototype, "_store", void 0);
|
|
213
|
-
|
|
214
|
-
__decorate([NotEnumerable(), __metadata("design:type", Store)], Provider.prototype, "_tokenStore", void 0);
|
|
215
|
-
|
|
216
|
-
__decorate([Enumerable(), __metadata("design:type", Type), __metadata("design:paramtypes", [Type])], Provider.prototype, "useClass", null);
|
|
217
|
-
|
|
218
|
-
__decorate([Enumerable(), __metadata("design:type", String), __metadata("design:paramtypes", [String])], Provider.prototype, "scope", null);
|
|
219
|
-
|
|
220
|
-
__decorate([Enumerable(), __metadata("design:type", Object), __metadata("design:paramtypes", [Object])], Provider.prototype, "configuration", null);
|
|
221
|
-
|
|
222
200
|
var _settings = /*#__PURE__*/_classPrivateFieldLooseKey("settings");
|
|
223
201
|
|
|
224
202
|
class GlobalProviderRegistry extends Map {
|
|
@@ -285,9 +263,7 @@ class GlobalProviderRegistry extends Map {
|
|
|
285
263
|
return super.delete(getClassOrSymbol(key));
|
|
286
264
|
}
|
|
287
265
|
|
|
288
|
-
createRegistry(type, model, options = {
|
|
289
|
-
injectable: true
|
|
290
|
-
}) {
|
|
266
|
+
createRegistry(type, model, options = {}) {
|
|
291
267
|
const defaultOptions = this.getRegistrySettings(type);
|
|
292
268
|
options = Object.assign(defaultOptions, _extends({}, options, {
|
|
293
269
|
model
|
|
@@ -298,6 +274,14 @@ class GlobalProviderRegistry extends Map {
|
|
|
298
274
|
return this;
|
|
299
275
|
}
|
|
300
276
|
|
|
277
|
+
onInvoke(provider, locals, deps) {
|
|
278
|
+
const settings = _classPrivateFieldLooseBase(this, _settings)[_settings].get(provider.type);
|
|
279
|
+
|
|
280
|
+
if (settings != null && settings.onInvoke) {
|
|
281
|
+
settings.onInvoke(provider, locals, deps);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
301
285
|
getRegistrySettings(target) {
|
|
302
286
|
let type = "provider";
|
|
303
287
|
|
|
@@ -312,13 +296,13 @@ class GlobalProviderRegistry extends Map {
|
|
|
312
296
|
}
|
|
313
297
|
|
|
314
298
|
return _classPrivateFieldLooseBase(this, _settings)[_settings].get(type) || {
|
|
315
|
-
model: Provider
|
|
316
|
-
injectable: true
|
|
299
|
+
model: Provider
|
|
317
300
|
};
|
|
318
301
|
}
|
|
319
302
|
|
|
320
303
|
createRegisterFn(type) {
|
|
321
304
|
return (provider, instance) => {
|
|
305
|
+
// istanbul ignore next
|
|
322
306
|
if (!provider.provide) {
|
|
323
307
|
provider = {
|
|
324
308
|
provide: provider
|
|
@@ -333,15 +317,6 @@ class GlobalProviderRegistry extends Map {
|
|
|
333
317
|
this.merge(provider.provide, provider);
|
|
334
318
|
};
|
|
335
319
|
}
|
|
336
|
-
/**
|
|
337
|
-
* @deprecated
|
|
338
|
-
*/
|
|
339
|
-
// istanbul ignore next
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
getRegistry(target) {
|
|
343
|
-
return this;
|
|
344
|
-
}
|
|
345
320
|
/**
|
|
346
321
|
*
|
|
347
322
|
* @param key
|
|
@@ -671,6 +646,11 @@ class ContextLogger {
|
|
|
671
646
|
}
|
|
672
647
|
|
|
673
648
|
const _excluded$1 = ["id", "injector", "logger", "ignoreLog"];
|
|
649
|
+
|
|
650
|
+
var _container = /*#__PURE__*/_classPrivateFieldLooseKey("container");
|
|
651
|
+
|
|
652
|
+
var _injector = /*#__PURE__*/_classPrivateFieldLooseKey("injector");
|
|
653
|
+
|
|
674
654
|
class DIContext extends Map {
|
|
675
655
|
constructor(_ref) {
|
|
676
656
|
let {
|
|
@@ -686,14 +666,18 @@ class DIContext extends Map {
|
|
|
686
666
|
* Date when request have been handled by the server. @@RequestLogger@@ use this date to log request duration.
|
|
687
667
|
*/
|
|
688
668
|
|
|
669
|
+
Object.defineProperty(this, _container, {
|
|
670
|
+
writable: true,
|
|
671
|
+
value: void 0
|
|
672
|
+
});
|
|
673
|
+
Object.defineProperty(this, _injector, {
|
|
674
|
+
writable: true,
|
|
675
|
+
value: void 0
|
|
676
|
+
});
|
|
689
677
|
this.dateStart = new Date();
|
|
690
|
-
|
|
691
|
-
* The request container used by the Ts.ED DI. It contain all services annotated with `@Scope(ProviderScope.REQUEST)`
|
|
692
|
-
*/
|
|
693
|
-
|
|
694
|
-
this.container = new LocalsContainer();
|
|
678
|
+
_classPrivateFieldLooseBase(this, _container)[_container] = new LocalsContainer();
|
|
695
679
|
this.id = id;
|
|
696
|
-
injector && (this
|
|
680
|
+
injector && (_classPrivateFieldLooseBase(this, _injector)[_injector] = injector);
|
|
697
681
|
this.logger = new ContextLogger(logger, _extends({}, options, {
|
|
698
682
|
dateStart: this.dateStart,
|
|
699
683
|
id,
|
|
@@ -701,6 +685,21 @@ class DIContext extends Map {
|
|
|
701
685
|
}));
|
|
702
686
|
}
|
|
703
687
|
|
|
688
|
+
/**
|
|
689
|
+
* The request container used by the Ts.ED DI. It contain all services annotated with `@Scope(ProviderScope.REQUEST)`
|
|
690
|
+
*/
|
|
691
|
+
get container() {
|
|
692
|
+
return _classPrivateFieldLooseBase(this, _container)[_container];
|
|
693
|
+
}
|
|
694
|
+
/**
|
|
695
|
+
*
|
|
696
|
+
*/
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
get injector() {
|
|
700
|
+
return _classPrivateFieldLooseBase(this, _injector)[_injector];
|
|
701
|
+
}
|
|
702
|
+
|
|
704
703
|
get env() {
|
|
705
704
|
return this.injector.settings.env;
|
|
706
705
|
}
|
|
@@ -709,11 +708,7 @@ class DIContext extends Map {
|
|
|
709
708
|
await this.container.destroy();
|
|
710
709
|
this.logger.destroy(); // @ts-ignore
|
|
711
710
|
|
|
712
|
-
delete this.
|
|
713
|
-
|
|
714
|
-
delete this.logger; // @ts-ignore
|
|
715
|
-
|
|
716
|
-
delete this.injector;
|
|
711
|
+
delete this.logger;
|
|
717
712
|
}
|
|
718
713
|
|
|
719
714
|
async emit(eventName, ...args) {
|
|
@@ -739,9 +734,7 @@ function Scope(scope = ProviderScope.REQUEST) {
|
|
|
739
734
|
*
|
|
740
735
|
*/
|
|
741
736
|
|
|
742
|
-
GlobalProviders.createRegistry(ProviderType.CONTROLLER, Provider
|
|
743
|
-
injectable: false
|
|
744
|
-
});
|
|
737
|
+
GlobalProviders.createRegistry(ProviderType.CONTROLLER, Provider);
|
|
745
738
|
/**
|
|
746
739
|
* Register a provider configuration.
|
|
747
740
|
* @param {IProvider<any>} provider
|
|
@@ -856,37 +849,6 @@ const registerValue = (provider, value) => {
|
|
|
856
849
|
});
|
|
857
850
|
GlobalProviders.merge(provider.provide, provider);
|
|
858
851
|
};
|
|
859
|
-
/**
|
|
860
|
-
* Add a new service in the `ProviderRegistry`. This service will be built when `InjectorService` will be loaded.
|
|
861
|
-
*
|
|
862
|
-
* #### Example
|
|
863
|
-
*
|
|
864
|
-
* ```typescript
|
|
865
|
-
* import {registerService, InjectorService} from "@tsed/di";
|
|
866
|
-
*
|
|
867
|
-
* export default class MyFooService {
|
|
868
|
-
* constructor(){}
|
|
869
|
-
* getFoo() {
|
|
870
|
-
* return "test";
|
|
871
|
-
* }
|
|
872
|
-
* }
|
|
873
|
-
*
|
|
874
|
-
* registerService({provide: MyFooService});
|
|
875
|
-
* // or
|
|
876
|
-
* registerService(MyFooService);
|
|
877
|
-
*
|
|
878
|
-
* const injector = new InjectorService();
|
|
879
|
-
* injector.load();
|
|
880
|
-
*
|
|
881
|
-
* const myFooService = injector.get<MyFooService>(MyFooService);
|
|
882
|
-
* myFooService.getFoo(); // test
|
|
883
|
-
* ```
|
|
884
|
-
*
|
|
885
|
-
* @param provider Provider configuration.
|
|
886
|
-
* @deprecated Since 2021-05-15. Use registerProvider instead.
|
|
887
|
-
*/
|
|
888
|
-
|
|
889
|
-
const registerService = GlobalProviders.createRegisterFn(ProviderType.SERVICE);
|
|
890
852
|
/**
|
|
891
853
|
* Add a new controller in the `ProviderRegistry`. This controller will be built when `InjectorService` will be loaded.
|
|
892
854
|
*
|
|
@@ -2075,17 +2037,7 @@ let InjectorService = InjectorService_1 = class InjectorService extends Containe
|
|
|
2075
2037
|
} = this.mapInvokeOptions(target, locals, options);
|
|
2076
2038
|
|
|
2077
2039
|
if (provider) {
|
|
2078
|
-
|
|
2079
|
-
throw new InjectionError(token, `${nameOf(token)} ${provider.type} is not injectable to another provider`);
|
|
2080
|
-
}
|
|
2081
|
-
|
|
2082
|
-
const {
|
|
2083
|
-
onInvoke
|
|
2084
|
-
} = GlobalProviders.getRegistrySettings(target);
|
|
2085
|
-
|
|
2086
|
-
if (onInvoke) {
|
|
2087
|
-
onInvoke(provider, locals, deps);
|
|
2088
|
-
}
|
|
2040
|
+
GlobalProviders.onInvoke(provider, locals, deps);
|
|
2089
2041
|
}
|
|
2090
2042
|
|
|
2091
2043
|
let instance;
|
|
@@ -2328,103 +2280,6 @@ class DITest {
|
|
|
2328
2280
|
}
|
|
2329
2281
|
DITest._injector = null;
|
|
2330
2282
|
|
|
2331
|
-
function isTsEnv() {
|
|
2332
|
-
return require && require.extensions && require.extensions[".ts"] || process.env["TS_TEST"] || process.env.JEST_WORKER_ID !== undefined || process.env.NODE_ENV === "test";
|
|
2333
|
-
}
|
|
2334
|
-
|
|
2335
|
-
function mapExcludes(excludes) {
|
|
2336
|
-
return excludes.map(s => `!${s.replace(/!/gi, "")}`);
|
|
2337
|
-
}
|
|
2338
|
-
|
|
2339
|
-
function mapExtensions(file) {
|
|
2340
|
-
if (!isTsEnv()) {
|
|
2341
|
-
file = file.replace(/\.ts$/i, ".js").replace(/{\.ts,\.js}$/i, ".js");
|
|
2342
|
-
}
|
|
2343
|
-
|
|
2344
|
-
return file;
|
|
2345
|
-
}
|
|
2346
|
-
|
|
2347
|
-
function cleanGlobPatterns(files, excludes) {
|
|
2348
|
-
return [].concat(files).map(s => resolve(s)).concat(mapExcludes(excludes)).map(mapExtensions).map(s => normalizePath(s));
|
|
2349
|
-
}
|
|
2350
|
-
|
|
2351
|
-
async function importFiles(patterns, exclude) {
|
|
2352
|
-
const files = await globby(cleanGlobPatterns(patterns, exclude));
|
|
2353
|
-
const symbols = [];
|
|
2354
|
-
|
|
2355
|
-
for (const file of files) {
|
|
2356
|
-
if (!file.endsWith(".d.ts")) {
|
|
2357
|
-
// prevent .d.ts import if the global pattern isn't correctly configured
|
|
2358
|
-
try {
|
|
2359
|
-
const exports = await import(file);
|
|
2360
|
-
Object.keys(exports).forEach(key => symbols.push(exports[key]));
|
|
2361
|
-
} catch (er) {
|
|
2362
|
-
// istanbul ignore next
|
|
2363
|
-
console.error(er); // istanbul ignore next
|
|
2364
|
-
|
|
2365
|
-
process.exit(1);
|
|
2366
|
-
}
|
|
2367
|
-
}
|
|
2368
|
-
}
|
|
2369
|
-
|
|
2370
|
-
return symbols;
|
|
2371
|
-
}
|
|
2372
|
-
|
|
2373
|
-
async function resolveSymbols(item, excludes) {
|
|
2374
|
-
if (isClass(item)) {
|
|
2375
|
-
return [item];
|
|
2376
|
-
}
|
|
2377
|
-
/* istanbul ignore else */
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
if (!process.env.WEBPACK) {
|
|
2381
|
-
return importFiles(item, excludes);
|
|
2382
|
-
}
|
|
2383
|
-
/* istanbul ignore next */
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
return [];
|
|
2387
|
-
}
|
|
2388
|
-
|
|
2389
|
-
function mapConfiguration(config) {
|
|
2390
|
-
if (isArray(config)) {
|
|
2391
|
-
return config.map(value => {
|
|
2392
|
-
return {
|
|
2393
|
-
values: [].concat(value)
|
|
2394
|
-
};
|
|
2395
|
-
});
|
|
2396
|
-
}
|
|
2397
|
-
|
|
2398
|
-
return Object.keys(config).reduce((list, key) => {
|
|
2399
|
-
list.push({
|
|
2400
|
-
endpoint: key,
|
|
2401
|
-
values: [].concat(config[key])
|
|
2402
|
-
});
|
|
2403
|
-
return list;
|
|
2404
|
-
}, []);
|
|
2405
|
-
}
|
|
2406
|
-
async function importComponents(config, excludes) {
|
|
2407
|
-
if (!config) {
|
|
2408
|
-
return [];
|
|
2409
|
-
}
|
|
2410
|
-
|
|
2411
|
-
config = mapConfiguration(config);
|
|
2412
|
-
const promises = [];
|
|
2413
|
-
|
|
2414
|
-
for (const option of config) {
|
|
2415
|
-
promises.push(...option.values.map(async value => {
|
|
2416
|
-
const symbols = await resolveSymbols(value, excludes);
|
|
2417
|
-
return symbols.filter(isClass).map(symbol => ({
|
|
2418
|
-
token: symbol,
|
|
2419
|
-
route: option.endpoint
|
|
2420
|
-
}));
|
|
2421
|
-
}));
|
|
2422
|
-
}
|
|
2423
|
-
|
|
2424
|
-
const result = await Promise.all(promises);
|
|
2425
|
-
return result.flat();
|
|
2426
|
-
}
|
|
2427
|
-
|
|
2428
2283
|
function getConfiguration(module, configuration = {}) {
|
|
2429
2284
|
const store = Store.from(module).get("configuration") || {};
|
|
2430
2285
|
|
|
@@ -2441,34 +2296,5 @@ function getConfiguration(module, configuration = {}) {
|
|
|
2441
2296
|
return config;
|
|
2442
2297
|
}
|
|
2443
2298
|
|
|
2444
|
-
|
|
2445
|
-
const {
|
|
2446
|
-
exclude = []
|
|
2447
|
-
} = settings;
|
|
2448
|
-
const promises = providers.map(({
|
|
2449
|
-
token
|
|
2450
|
-
}) => GlobalProviders.get(token)).filter(provider => (provider == null ? void 0 : provider.type) === ProviderType.MODULE && provider.configuration).map(provider => importProviders(_extends({
|
|
2451
|
-
exclude
|
|
2452
|
-
}, provider.configuration), properties));
|
|
2453
|
-
return (await Promise.all(promises)).flat();
|
|
2454
|
-
}
|
|
2455
|
-
/**
|
|
2456
|
-
* Import providers from given patterns.
|
|
2457
|
-
*
|
|
2458
|
-
* @param settings
|
|
2459
|
-
* @param properties
|
|
2460
|
-
*/
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
async function importProviders(settings, properties = ["imports"]) {
|
|
2464
|
-
const {
|
|
2465
|
-
exclude = []
|
|
2466
|
-
} = settings;
|
|
2467
|
-
const promises = properties.map(key => importComponents(settings[key], exclude));
|
|
2468
|
-
const providers = (await Promise.all(promises)).flat();
|
|
2469
|
-
const children = await recursiveImports(providers, settings, properties);
|
|
2470
|
-
return [...children, ...providers];
|
|
2471
|
-
}
|
|
2472
|
-
|
|
2473
|
-
export { Configuration, Constant, Container, ContextLogger, DIConfiguration, DIContext, DITest, DI_PARAMS, DI_PARAM_OPTIONS, GlobalProviderRegistry, GlobalProviders, INJECTABLE_PROP, Inject, Injectable, InjectablePropertyType, InjectionError, InjectorService, Intercept, Interceptor, LocalsContainer, Module, Opts, OverrideProvider, Provider, ProviderScope, ProviderType, Scope, Service, UndefinedTokenError, UseOpts, Value, createContainer, getConfiguration, importComponents, importFiles, importProviders, mapConfiguration, registerController, registerFactory, registerProvider, registerService, registerValue, setLoggerLevel };
|
|
2299
|
+
export { Configuration, Constant, Container, ContextLogger, DIConfiguration, DIContext, DITest, DI_PARAMS, DI_PARAM_OPTIONS, GlobalProviderRegistry, GlobalProviders, INJECTABLE_PROP, Inject, Injectable, InjectablePropertyType, InjectionError, InjectorService, Intercept, Interceptor, LocalsContainer, Module, Opts, OverrideProvider, Provider, ProviderScope, ProviderType, Scope, Service, UndefinedTokenError, UseOpts, Value, createContainer, getConfiguration, registerController, registerFactory, registerProvider, registerValue, setLoggerLevel };
|
|
2474
2300
|
//# sourceMappingURL=index.modern.js.map
|