@nestjs/core 8.3.1 → 8.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +1 -1
- package/discovery/discovery-module.js +1 -1
- package/discovery/discovery-service.js +3 -3
- package/errors/exceptions/invalid-class-module.exception.js +1 -1
- package/errors/exceptions/invalid-class-scope.exception.js +2 -2
- package/errors/exceptions/invalid-class.exception.js +1 -1
- package/errors/exceptions/invalid-middleware.exception.js +1 -1
- package/errors/exceptions/invalid-module.exception.js +1 -1
- package/errors/exceptions/undefined-dependency.exception.js +1 -1
- package/errors/exceptions/undefined-forwardref.exception.js +1 -1
- package/errors/exceptions/undefined-module.exception.js +1 -1
- package/errors/exceptions/unknown-dependencies.exception.js +1 -1
- package/errors/exceptions/unknown-export.exception.js +1 -1
- package/errors/messages.js +9 -9
- package/exceptions/base-exception-filter-context.js +3 -3
- package/exceptions/base-exception-filter.js +4 -4
- package/exceptions/exceptions-handler.js +1 -1
- package/exceptions/external-exception-filter-context.js +2 -2
- package/exceptions/external-exceptions-handler.js +1 -1
- package/guards/guards-consumer.js +2 -2
- package/guards/guards-context-creator.js +4 -4
- package/helpers/context-utils.js +1 -1
- package/helpers/external-context-creator.js +3 -3
- package/hooks/before-app-shutdown.hook.js +5 -5
- package/hooks/on-app-bootstrap.hook.js +5 -5
- package/hooks/on-app-shutdown.hook.js +5 -5
- package/hooks/on-module-destroy.hook.js +5 -5
- package/hooks/on-module-init.hook.js +5 -5
- package/injector/helpers/transient-instances.js +2 -2
- package/injector/injector.d.ts +4 -1
- package/injector/injector.js +48 -19
- package/injector/instance-links-host.js +1 -2
- package/injector/instance-loader.js +1 -1
- package/injector/instance-wrapper.d.ts +2 -1
- package/injector/instance-wrapper.js +6 -6
- package/injector/internal-core-module.js +2 -2
- package/injector/module-ref.js +1 -1
- package/injector/module-token-factory.js +4 -4
- package/injector/module.d.ts +12 -8
- package/injector/module.js +21 -24
- package/injector/modules-container.js +1 -1
- package/interceptors/interceptors-consumer.js +4 -4
- package/interceptors/interceptors-context-creator.js +4 -4
- package/metadata-scanner.js +4 -4
- package/middleware/builder.js +3 -3
- package/middleware/container.js +1 -1
- package/middleware/middleware-module.js +9 -8
- package/middleware/routes-mapper.js +6 -6
- package/middleware/utils.js +6 -6
- package/nest-application-context.js +9 -10
- package/nest-application.js +13 -13
- package/nest-factory.js +6 -6
- package/package.json +3 -3
- package/pipes/pipes-context-creator.js +4 -4
- package/router/route-path-factory.js +8 -8
- package/router/router-exception-filters.js +2 -2
- package/router/router-execution-context.js +4 -4
- package/router/router-explorer.js +36 -12
- package/router/router-module.js +4 -4
- package/router/router-response-controller.js +6 -6
- package/router/routes-resolver.js +2 -2
- package/router/sse-stream.js +1 -1
- package/router/utils/exclude-route.util.js +1 -1
- package/router/utils/flatten-route-paths.util.js +2 -2
- package/scanner.js +10 -10
- package/services/reflector.service.js +2 -2
- package/CHANGELOG.md +0 -12
package/injector/injector.js
CHANGED
|
@@ -37,7 +37,7 @@ class Injector {
|
|
|
37
37
|
const token = wrapper.token || wrapper.name;
|
|
38
38
|
const { inject } = wrapper;
|
|
39
39
|
const targetWrapper = collection.get(token);
|
|
40
|
-
if (shared_utils_1.isUndefined(targetWrapper)) {
|
|
40
|
+
if ((0, shared_utils_1.isUndefined)(targetWrapper)) {
|
|
41
41
|
throw new runtime_exception_1.RuntimeException();
|
|
42
42
|
}
|
|
43
43
|
if (instanceHost.isResolved) {
|
|
@@ -54,7 +54,7 @@ class Injector {
|
|
|
54
54
|
async loadMiddleware(wrapper, collection, moduleRef, contextId = constants_2.STATIC_CONTEXT, inquirer) {
|
|
55
55
|
const { metatype, token } = wrapper;
|
|
56
56
|
const targetWrapper = collection.get(token);
|
|
57
|
-
if (!shared_utils_1.isUndefined(targetWrapper.instance)) {
|
|
57
|
+
if (!(0, shared_utils_1.isUndefined)(targetWrapper.instance)) {
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
targetWrapper.instance = Object.create(metatype.prototype);
|
|
@@ -89,12 +89,10 @@ class Injector {
|
|
|
89
89
|
const deps = await this.loadCtorMetadata(metadata, contextId, inquirer, parentInquirer);
|
|
90
90
|
return callback(deps);
|
|
91
91
|
}
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
? this.reflectOptionalParams(wrapper.metatype)
|
|
97
|
-
: [];
|
|
92
|
+
const isFactoryProvider = !(0, shared_utils_1.isNil)(inject);
|
|
93
|
+
const [dependencies, optionalDependenciesIds] = isFactoryProvider
|
|
94
|
+
? this.getFactoryProviderDependencies(wrapper)
|
|
95
|
+
: this.getClassDependencies(wrapper);
|
|
98
96
|
let isResolved = true;
|
|
99
97
|
const resolveParam = async (param, index) => {
|
|
100
98
|
try {
|
|
@@ -123,6 +121,35 @@ class Injector {
|
|
|
123
121
|
const instances = await Promise.all(dependencies.map(resolveParam));
|
|
124
122
|
isResolved && (await callback(instances));
|
|
125
123
|
}
|
|
124
|
+
getClassDependencies(wrapper) {
|
|
125
|
+
const ctorRef = wrapper.metatype;
|
|
126
|
+
return [
|
|
127
|
+
this.reflectConstructorParams(ctorRef),
|
|
128
|
+
this.reflectOptionalParams(ctorRef),
|
|
129
|
+
];
|
|
130
|
+
}
|
|
131
|
+
getFactoryProviderDependencies(wrapper) {
|
|
132
|
+
var _a, _b;
|
|
133
|
+
const optionalDependenciesIds = [];
|
|
134
|
+
const isOptionalFactoryDep = (item) => !(0, shared_utils_1.isUndefined)(item.token) &&
|
|
135
|
+
!(0, shared_utils_1.isUndefined)(item.optional);
|
|
136
|
+
const mapFactoryProviderInjectArray = (item, index) => {
|
|
137
|
+
if (typeof item !== 'object') {
|
|
138
|
+
return item;
|
|
139
|
+
}
|
|
140
|
+
if (isOptionalFactoryDep(item)) {
|
|
141
|
+
if (item.optional) {
|
|
142
|
+
optionalDependenciesIds.push(index);
|
|
143
|
+
}
|
|
144
|
+
return item === null || item === void 0 ? void 0 : item.token;
|
|
145
|
+
}
|
|
146
|
+
return item;
|
|
147
|
+
};
|
|
148
|
+
return [
|
|
149
|
+
(_b = (_a = wrapper.inject) === null || _a === void 0 ? void 0 : _a.map) === null || _b === void 0 ? void 0 : _b.call(_a, mapFactoryProviderInjectArray),
|
|
150
|
+
optionalDependenciesIds,
|
|
151
|
+
];
|
|
152
|
+
}
|
|
126
153
|
reflectConstructorParams(type) {
|
|
127
154
|
const paramtypes = Reflect.getMetadata(constants_1.PARAMTYPES_METADATA, type) || [];
|
|
128
155
|
const selfParams = this.reflectSelfParams(type);
|
|
@@ -136,7 +163,7 @@ class Injector {
|
|
|
136
163
|
return Reflect.getMetadata(constants_1.SELF_DECLARED_DEPS_METADATA, type) || [];
|
|
137
164
|
}
|
|
138
165
|
async resolveSingleParam(wrapper, param, dependencyContext, moduleRef, contextId = constants_2.STATIC_CONTEXT, inquirer, keyOrIndex) {
|
|
139
|
-
if (shared_utils_1.isUndefined(param)) {
|
|
166
|
+
if ((0, shared_utils_1.isUndefined)(param)) {
|
|
140
167
|
this.logger.log('Nest encountered an undefined dependency. This may be due to a circular import or a missing dependency declaration.');
|
|
141
168
|
throw new undefined_dependency_exception_1.UndefinedDependencyException(wrapper.name, dependencyContext, moduleRef);
|
|
142
169
|
}
|
|
@@ -158,10 +185,11 @@ class Injector {
|
|
|
158
185
|
return this.resolveComponentHost(moduleRef, instanceWrapper, contextId, inquirer);
|
|
159
186
|
}
|
|
160
187
|
async resolveComponentHost(moduleRef, instanceWrapper, contextId = constants_2.STATIC_CONTEXT, inquirer) {
|
|
188
|
+
var _a;
|
|
161
189
|
const inquirerId = this.getInquirerId(inquirer);
|
|
162
190
|
const instanceHost = instanceWrapper.getInstanceByContextId(contextId, inquirerId);
|
|
163
191
|
if (!instanceHost.isResolved && !instanceWrapper.forwardRef) {
|
|
164
|
-
await this.loadProvider(instanceWrapper, moduleRef, contextId, inquirer);
|
|
192
|
+
await this.loadProvider(instanceWrapper, (_a = instanceWrapper.host) !== null && _a !== void 0 ? _a : moduleRef, contextId, inquirer);
|
|
165
193
|
}
|
|
166
194
|
else if (!instanceHost.isResolved &&
|
|
167
195
|
instanceWrapper.forwardRef &&
|
|
@@ -184,8 +212,9 @@ class Injector {
|
|
|
184
212
|
return instanceWrapper;
|
|
185
213
|
}
|
|
186
214
|
async lookupComponent(providers, moduleRef, dependencyContext, wrapper, contextId = constants_2.STATIC_CONTEXT, inquirer, keyOrIndex) {
|
|
215
|
+
const token = wrapper.token || wrapper.name;
|
|
187
216
|
const { name } = dependencyContext;
|
|
188
|
-
if (wrapper &&
|
|
217
|
+
if (wrapper && token === name) {
|
|
189
218
|
throw new unknown_dependencies_exception_1.UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef);
|
|
190
219
|
}
|
|
191
220
|
if (providers.has(name)) {
|
|
@@ -198,7 +227,7 @@ class Injector {
|
|
|
198
227
|
}
|
|
199
228
|
async lookupComponentInParentModules(dependencyContext, moduleRef, wrapper, contextId = constants_2.STATIC_CONTEXT, inquirer, keyOrIndex) {
|
|
200
229
|
const instanceWrapper = await this.lookupComponentInImports(moduleRef, dependencyContext.name, wrapper, [], contextId, inquirer, keyOrIndex);
|
|
201
|
-
if (shared_utils_1.isNil(instanceWrapper)) {
|
|
230
|
+
if ((0, shared_utils_1.isNil)(instanceWrapper)) {
|
|
202
231
|
throw new unknown_dependencies_exception_1.UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef);
|
|
203
232
|
}
|
|
204
233
|
return instanceWrapper;
|
|
@@ -240,7 +269,7 @@ class Injector {
|
|
|
240
269
|
return instanceWrapperRef;
|
|
241
270
|
}
|
|
242
271
|
async resolveProperties(wrapper, moduleRef, inject, contextId = constants_2.STATIC_CONTEXT, inquirer, parentInquirer) {
|
|
243
|
-
if (!shared_utils_1.isNil(inject)) {
|
|
272
|
+
if (!(0, shared_utils_1.isNil)(inject)) {
|
|
244
273
|
return [];
|
|
245
274
|
}
|
|
246
275
|
const metadata = wrapper.getPropertiesMetadata();
|
|
@@ -280,11 +309,11 @@ class Injector {
|
|
|
280
309
|
return properties.map((item) => (Object.assign(Object.assign({}, item), { name: item.type, isOptional: optionalKeys.includes(item.key) })));
|
|
281
310
|
}
|
|
282
311
|
applyProperties(instance, properties) {
|
|
283
|
-
if (!shared_utils_1.isObject(instance)) {
|
|
312
|
+
if (!(0, shared_utils_1.isObject)(instance)) {
|
|
284
313
|
return undefined;
|
|
285
314
|
}
|
|
286
|
-
iterare_1.iterate(properties)
|
|
287
|
-
.filter(item => !shared_utils_1.isNil(item.instance))
|
|
315
|
+
(0, iterare_1.iterate)(properties)
|
|
316
|
+
.filter(item => !(0, shared_utils_1.isNil)(item.instance))
|
|
288
317
|
.forEach(item => (instance[item.key] = item.instance));
|
|
289
318
|
}
|
|
290
319
|
async instantiateClass(instances, wrapper, targetMetatype, contextId = constants_2.STATIC_CONTEXT, inquirer) {
|
|
@@ -295,7 +324,7 @@ class Injector {
|
|
|
295
324
|
wrapper.isInRequestScope(contextId, inquirer) ||
|
|
296
325
|
wrapper.isLazyTransient(contextId, inquirer) ||
|
|
297
326
|
wrapper.isExplicitlyRequested(contextId, inquirer);
|
|
298
|
-
if (shared_utils_1.isNil(inject) && isInContext) {
|
|
327
|
+
if ((0, shared_utils_1.isNil)(inject) && isInContext) {
|
|
299
328
|
instanceHost.instance = wrapper.forwardRef
|
|
300
329
|
? Object.assign(instanceHost.instance, new metatype(...instances))
|
|
301
330
|
: new metatype(...instances);
|
|
@@ -357,12 +386,12 @@ class Injector {
|
|
|
357
386
|
return param === inquirer_1.INQUIRER && parentInquirer;
|
|
358
387
|
}
|
|
359
388
|
addDependencyMetadata(keyOrIndex, hostWrapper, instanceWrapper) {
|
|
360
|
-
shared_utils_1.isString(keyOrIndex)
|
|
389
|
+
(0, shared_utils_1.isString)(keyOrIndex)
|
|
361
390
|
? hostWrapper.addPropertiesMetadata(keyOrIndex, instanceWrapper)
|
|
362
391
|
: hostWrapper.addCtorMetadata(keyOrIndex, instanceWrapper);
|
|
363
392
|
}
|
|
364
393
|
getTokenName(token) {
|
|
365
|
-
return shared_utils_1.isFunction(token) ? token.name : token.toString();
|
|
394
|
+
return (0, shared_utils_1.isFunction)(token) ? token.name : token.toString();
|
|
366
395
|
}
|
|
367
396
|
printResolvingDependenciesLog(token, inquirer) {
|
|
368
397
|
var _a, _b, _c;
|
|
@@ -47,8 +47,7 @@ class InstanceLinksHost {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
getInstanceNameByToken(token) {
|
|
50
|
-
|
|
51
|
-
return shared_utils_1.isFunction(token) ? (_a = token) === null || _a === void 0 ? void 0 : _a.name : token;
|
|
50
|
+
return (0, shared_utils_1.isFunction)(token) ? token === null || token === void 0 ? void 0 : token.name : token;
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
exports.InstanceLinksHost = InstanceLinksHost;
|
|
@@ -31,7 +31,7 @@ class InstanceLoader {
|
|
|
31
31
|
await this.createInstancesOfControllers(moduleRef);
|
|
32
32
|
const { name } = moduleRef.metatype;
|
|
33
33
|
this.isModuleWhitelisted(name) &&
|
|
34
|
-
this.logger.log(messages_1.MODULE_INIT_MESSAGE `${name}`);
|
|
34
|
+
this.logger.log((0, messages_1.MODULE_INIT_MESSAGE) `${name}`);
|
|
35
35
|
}));
|
|
36
36
|
}
|
|
37
37
|
createPrototypesOfProviders(moduleRef) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Provider, Scope, Type } from '@nestjs/common';
|
|
2
|
+
import { FactoryProvider } from '@nestjs/common/interfaces';
|
|
2
3
|
import { InstanceToken, Module } from './module';
|
|
3
4
|
export declare const INSTANCE_METADATA_SYMBOL: unique symbol;
|
|
4
5
|
export declare const INSTANCE_ID_SYMBOL: unique symbol;
|
|
@@ -23,7 +24,7 @@ export declare class InstanceWrapper<T = any> {
|
|
|
23
24
|
readonly isAlias: boolean;
|
|
24
25
|
scope?: Scope;
|
|
25
26
|
metatype: Type<T> | Function;
|
|
26
|
-
inject?:
|
|
27
|
+
inject?: FactoryProvider['inject'];
|
|
27
28
|
forwardRef?: boolean;
|
|
28
29
|
private readonly values;
|
|
29
30
|
private readonly [INSTANCE_METADATA_SYMBOL];
|
|
@@ -16,7 +16,7 @@ class InstanceWrapper {
|
|
|
16
16
|
this.scope = common_1.Scope.DEFAULT;
|
|
17
17
|
this.values = new WeakMap();
|
|
18
18
|
this[_a] = {};
|
|
19
|
-
this[exports.INSTANCE_ID_SYMBOL] = random_string_generator_util_1.randomStringGenerator();
|
|
19
|
+
this[exports.INSTANCE_ID_SYMBOL] = (0, random_string_generator_util_1.randomStringGenerator)();
|
|
20
20
|
this.initialize(metadata);
|
|
21
21
|
}
|
|
22
22
|
get id() {
|
|
@@ -30,7 +30,7 @@ class InstanceWrapper {
|
|
|
30
30
|
return instancePerContext.instance;
|
|
31
31
|
}
|
|
32
32
|
get isNotMetatype() {
|
|
33
|
-
const isFactory = this.metatype && !shared_utils_1.isNil(this.inject);
|
|
33
|
+
const isFactory = this.metatype && !(0, shared_utils_1.isNil)(this.inject);
|
|
34
34
|
return !this.metatype || isFactory;
|
|
35
35
|
}
|
|
36
36
|
get isTransient() {
|
|
@@ -101,7 +101,7 @@ class InstanceWrapper {
|
|
|
101
101
|
return this[exports.INSTANCE_METADATA_SYMBOL].enhancers;
|
|
102
102
|
}
|
|
103
103
|
isDependencyTreeStatic(lookupRegistry = []) {
|
|
104
|
-
if (!shared_utils_1.isUndefined(this.isTreeStatic)) {
|
|
104
|
+
if (!(0, shared_utils_1.isUndefined)(this.isTreeStatic)) {
|
|
105
105
|
return this.isTreeStatic;
|
|
106
106
|
}
|
|
107
107
|
if (this.scope === common_1.Scope.REQUEST) {
|
|
@@ -190,13 +190,13 @@ class InstanceWrapper {
|
|
|
190
190
|
return [];
|
|
191
191
|
}
|
|
192
192
|
const instances = [...this.transientMap.values()];
|
|
193
|
-
return iterare_1.iterate(instances)
|
|
193
|
+
return (0, iterare_1.iterate)(instances)
|
|
194
194
|
.map(item => item.get(constants_1.STATIC_CONTEXT))
|
|
195
195
|
.filter(item => !!item)
|
|
196
196
|
.toArray();
|
|
197
197
|
}
|
|
198
198
|
mergeWith(provider) {
|
|
199
|
-
if (!shared_utils_1.isUndefined(provider.useValue)) {
|
|
199
|
+
if (!(0, shared_utils_1.isUndefined)(provider.useValue)) {
|
|
200
200
|
this.metatype = null;
|
|
201
201
|
this.inject = null;
|
|
202
202
|
this.scope = common_1.Scope.DEFAULT;
|
|
@@ -216,7 +216,7 @@ class InstanceWrapper {
|
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
isNewable() {
|
|
219
|
-
return shared_utils_1.isNil(this.inject) && this.metatype && this.metatype.prototype;
|
|
219
|
+
return (0, shared_utils_1.isNil)(this.inject) && this.metatype && this.metatype.prototype;
|
|
220
220
|
}
|
|
221
221
|
isWrapperListStatic(tree, lookupRegistry) {
|
|
222
222
|
return tree.every((item) => item.isDependencyTreeStatic(lookupRegistry));
|
|
@@ -21,8 +21,8 @@ let InternalCoreModule = InternalCoreModule_1 = class InternalCoreModule {
|
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
InternalCoreModule = InternalCoreModule_1 = tslib_1.__decorate([
|
|
24
|
-
common_1.Global(),
|
|
25
|
-
common_1.Module({
|
|
24
|
+
(0, common_1.Global)(),
|
|
25
|
+
(0, common_1.Module)({
|
|
26
26
|
providers: [
|
|
27
27
|
services_1.Reflector,
|
|
28
28
|
ReflectorAliasProvider,
|
package/injector/module-ref.js
CHANGED
|
@@ -63,7 +63,7 @@ class ModuleRef {
|
|
|
63
63
|
name: type && type.name,
|
|
64
64
|
metatype: type,
|
|
65
65
|
isResolved: false,
|
|
66
|
-
scope: get_class_scope_1.getClassScope(type),
|
|
66
|
+
scope: (0, get_class_scope_1.getClassScope)(type),
|
|
67
67
|
host: moduleRef,
|
|
68
68
|
});
|
|
69
69
|
return new Promise(async (resolve, reject) => {
|
|
@@ -23,7 +23,7 @@ class ModuleTokenFactory {
|
|
|
23
23
|
// The replacer function is also required in order to obtain real class names
|
|
24
24
|
// instead of the unified "Function" key
|
|
25
25
|
return dynamicModuleMetadata
|
|
26
|
-
? fast_safe_stringify_1.default(dynamicModuleMetadata, this.replacer)
|
|
26
|
+
? (0, fast_safe_stringify_1.default)(dynamicModuleMetadata, this.replacer)
|
|
27
27
|
: '';
|
|
28
28
|
}
|
|
29
29
|
getModuleId(metatype) {
|
|
@@ -31,7 +31,7 @@ class ModuleTokenFactory {
|
|
|
31
31
|
if (moduleId) {
|
|
32
32
|
return moduleId;
|
|
33
33
|
}
|
|
34
|
-
moduleId = random_string_generator_util_1.randomStringGenerator();
|
|
34
|
+
moduleId = (0, random_string_generator_util_1.randomStringGenerator)();
|
|
35
35
|
this.moduleIdsCache.set(metatype, moduleId);
|
|
36
36
|
return moduleId;
|
|
37
37
|
}
|
|
@@ -39,7 +39,7 @@ class ModuleTokenFactory {
|
|
|
39
39
|
return metatype.name;
|
|
40
40
|
}
|
|
41
41
|
replacer(key, value) {
|
|
42
|
-
if (shared_utils_1.isFunction(value)) {
|
|
42
|
+
if ((0, shared_utils_1.isFunction)(value)) {
|
|
43
43
|
const funcAsString = value.toString();
|
|
44
44
|
const isClass = /^class\s/.test(funcAsString);
|
|
45
45
|
if (isClass) {
|
|
@@ -47,7 +47,7 @@ class ModuleTokenFactory {
|
|
|
47
47
|
}
|
|
48
48
|
return hash(funcAsString, { ignoreUnknown: true });
|
|
49
49
|
}
|
|
50
|
-
if (shared_utils_1.isSymbol(value)) {
|
|
50
|
+
if ((0, shared_utils_1.isSymbol)(value)) {
|
|
51
51
|
return value.toString();
|
|
52
52
|
}
|
|
53
53
|
return value;
|
package/injector/module.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ClassProvider, Controller, DynamicModule, ExistingProvider, FactoryProvider, Injectable, InjectionToken, NestModule, Provider, ValueProvider } from '@nestjs/common/interfaces';
|
|
2
2
|
import { Type } from '@nestjs/common/interfaces/type.interface';
|
|
3
3
|
import { NestContainer } from './container';
|
|
4
4
|
import { InstanceWrapper } from './instance-wrapper';
|
|
5
5
|
import { ModuleRef } from './module-ref';
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* @note
|
|
8
|
+
* Left for backward compatibility
|
|
9
|
+
*/
|
|
10
|
+
export declare type InstanceToken = InjectionToken;
|
|
7
11
|
export declare class Module {
|
|
8
12
|
private readonly _metatype;
|
|
9
13
|
private readonly container;
|
|
@@ -46,10 +50,10 @@ export declare class Module {
|
|
|
46
50
|
addModuleRef(): void;
|
|
47
51
|
addModuleAsProvider(): void;
|
|
48
52
|
addApplicationConfig(): void;
|
|
49
|
-
addInjectable<T extends Injectable>(injectable: Provider, host?: Type<T>):
|
|
50
|
-
addProvider(provider: Provider):
|
|
53
|
+
addInjectable<T extends Injectable>(injectable: Provider, host?: Type<T>): InjectionToken;
|
|
54
|
+
addProvider(provider: Provider): InjectionToken;
|
|
51
55
|
isCustomProvider(provider: Provider): provider is ClassProvider | FactoryProvider | ValueProvider | ExistingProvider;
|
|
52
|
-
addCustomProvider(provider: ClassProvider | FactoryProvider | ValueProvider | ExistingProvider, collection: Map<Function | string | symbol, any>):
|
|
56
|
+
addCustomProvider(provider: ClassProvider | FactoryProvider | ValueProvider | ExistingProvider, collection: Map<Function | string | symbol, any>): InjectionToken;
|
|
53
57
|
isCustomClass(provider: any): provider is ClassProvider;
|
|
54
58
|
isCustomValue(provider: any): provider is ValueProvider;
|
|
55
59
|
isCustomFactory(provider: any): provider is FactoryProvider;
|
|
@@ -59,9 +63,9 @@ export declare class Module {
|
|
|
59
63
|
addCustomValue(provider: ValueProvider, collection: Map<Function | string | symbol, InstanceWrapper>): void;
|
|
60
64
|
addCustomFactory(provider: FactoryProvider, collection: Map<Function | string | symbol, InstanceWrapper>): void;
|
|
61
65
|
addCustomUseExisting(provider: ExistingProvider, collection: Map<Function | string | symbol, InstanceWrapper>): void;
|
|
62
|
-
addExportedProvider(provider: Provider | string | symbol | DynamicModule): Set<
|
|
63
|
-
addCustomExportedProvider(provider: FactoryProvider | ValueProvider | ClassProvider | ExistingProvider): Set<
|
|
64
|
-
validateExportedProvider(token: InstanceToken):
|
|
66
|
+
addExportedProvider(provider: Provider | string | symbol | DynamicModule): Set<InjectionToken>;
|
|
67
|
+
addCustomExportedProvider(provider: FactoryProvider | ValueProvider | ClassProvider | ExistingProvider): Set<InjectionToken>;
|
|
68
|
+
validateExportedProvider(token: InstanceToken): InjectionToken;
|
|
65
69
|
addController(controller: Type<Controller>): void;
|
|
66
70
|
assignControllerUniqueId(controller: Type<Controller>): void;
|
|
67
71
|
addRelatedModule(module: Module): void;
|
package/injector/module.js
CHANGED
|
@@ -25,7 +25,7 @@ class Module {
|
|
|
25
25
|
this._exports = new Set();
|
|
26
26
|
this._distance = 0;
|
|
27
27
|
this.addCoreProviders();
|
|
28
|
-
this._id = random_string_generator_util_1.randomStringGenerator();
|
|
28
|
+
this._id = (0, random_string_generator_util_1.randomStringGenerator)();
|
|
29
29
|
}
|
|
30
30
|
get id() {
|
|
31
31
|
return this._id;
|
|
@@ -135,7 +135,7 @@ class Module {
|
|
|
135
135
|
metatype: injectable,
|
|
136
136
|
instance: null,
|
|
137
137
|
isResolved: false,
|
|
138
|
-
scope: get_class_scope_1.getClassScope(injectable),
|
|
138
|
+
scope: (0, get_class_scope_1.getClassScope)(injectable),
|
|
139
139
|
host: this,
|
|
140
140
|
});
|
|
141
141
|
this._injectables.set(injectable, instanceWrapper);
|
|
@@ -155,13 +155,13 @@ class Module {
|
|
|
155
155
|
metatype: provider,
|
|
156
156
|
instance: null,
|
|
157
157
|
isResolved: false,
|
|
158
|
-
scope: get_class_scope_1.getClassScope(provider),
|
|
158
|
+
scope: (0, get_class_scope_1.getClassScope)(provider),
|
|
159
159
|
host: this,
|
|
160
160
|
}));
|
|
161
161
|
return provider;
|
|
162
162
|
}
|
|
163
163
|
isCustomProvider(provider) {
|
|
164
|
-
return !shared_utils_1.isNil(provider.provide);
|
|
164
|
+
return !(0, shared_utils_1.isNil)(provider.provide);
|
|
165
165
|
}
|
|
166
166
|
addCustomProvider(provider, collection) {
|
|
167
167
|
if (this.isCustomClass(provider)) {
|
|
@@ -179,16 +179,16 @@ class Module {
|
|
|
179
179
|
return provider.provide;
|
|
180
180
|
}
|
|
181
181
|
isCustomClass(provider) {
|
|
182
|
-
return !shared_utils_1.isUndefined(provider.useClass);
|
|
182
|
+
return !(0, shared_utils_1.isUndefined)(provider.useClass);
|
|
183
183
|
}
|
|
184
184
|
isCustomValue(provider) {
|
|
185
|
-
return !shared_utils_1.isUndefined(provider.useValue);
|
|
185
|
+
return !(0, shared_utils_1.isUndefined)(provider.useValue);
|
|
186
186
|
}
|
|
187
187
|
isCustomFactory(provider) {
|
|
188
|
-
return !shared_utils_1.isUndefined(provider.useFactory);
|
|
188
|
+
return !(0, shared_utils_1.isUndefined)(provider.useFactory);
|
|
189
189
|
}
|
|
190
190
|
isCustomUseExisting(provider) {
|
|
191
|
-
return !shared_utils_1.isUndefined(provider.useExisting);
|
|
191
|
+
return !(0, shared_utils_1.isUndefined)(provider.useExisting);
|
|
192
192
|
}
|
|
193
193
|
isDynamicModule(exported) {
|
|
194
194
|
return exported && exported.module;
|
|
@@ -196,8 +196,8 @@ class Module {
|
|
|
196
196
|
addCustomClass(provider, collection) {
|
|
197
197
|
let { scope } = provider;
|
|
198
198
|
const { useClass } = provider;
|
|
199
|
-
if (shared_utils_1.isUndefined(scope)) {
|
|
200
|
-
scope = get_class_scope_1.getClassScope(useClass);
|
|
199
|
+
if ((0, shared_utils_1.isUndefined)(scope)) {
|
|
200
|
+
scope = (0, get_class_scope_1.getClassScope)(useClass);
|
|
201
201
|
}
|
|
202
202
|
collection.set(provider.provide, new instance_wrapper_1.InstanceWrapper({
|
|
203
203
|
token: provider.provide,
|
|
@@ -210,11 +210,10 @@ class Module {
|
|
|
210
210
|
}));
|
|
211
211
|
}
|
|
212
212
|
addCustomValue(provider, collection) {
|
|
213
|
-
var _a;
|
|
214
213
|
const { useValue: value, provide: providerToken } = provider;
|
|
215
214
|
collection.set(providerToken, new instance_wrapper_1.InstanceWrapper({
|
|
216
215
|
token: providerToken,
|
|
217
|
-
name: (
|
|
216
|
+
name: (providerToken === null || providerToken === void 0 ? void 0 : providerToken.name) || providerToken,
|
|
218
217
|
metatype: null,
|
|
219
218
|
instance: value,
|
|
220
219
|
isResolved: true,
|
|
@@ -223,11 +222,10 @@ class Module {
|
|
|
223
222
|
}));
|
|
224
223
|
}
|
|
225
224
|
addCustomFactory(provider, collection) {
|
|
226
|
-
var _a;
|
|
227
225
|
const { useFactory: factory, inject, scope, provide: providerToken, } = provider;
|
|
228
226
|
collection.set(providerToken, new instance_wrapper_1.InstanceWrapper({
|
|
229
227
|
token: providerToken,
|
|
230
|
-
name: (
|
|
228
|
+
name: (providerToken === null || providerToken === void 0 ? void 0 : providerToken.name) || providerToken,
|
|
231
229
|
metatype: factory,
|
|
232
230
|
instance: null,
|
|
233
231
|
isResolved: false,
|
|
@@ -237,11 +235,10 @@ class Module {
|
|
|
237
235
|
}));
|
|
238
236
|
}
|
|
239
237
|
addCustomUseExisting(provider, collection) {
|
|
240
|
-
var _a;
|
|
241
238
|
const { useExisting, provide: providerToken } = provider;
|
|
242
239
|
collection.set(providerToken, new instance_wrapper_1.InstanceWrapper({
|
|
243
240
|
token: providerToken,
|
|
244
|
-
name: (
|
|
241
|
+
name: (providerToken === null || providerToken === void 0 ? void 0 : providerToken.name) || providerToken,
|
|
245
242
|
metatype: (instance => instance),
|
|
246
243
|
instance: null,
|
|
247
244
|
isResolved: false,
|
|
@@ -255,7 +252,7 @@ class Module {
|
|
|
255
252
|
if (this.isCustomProvider(provider)) {
|
|
256
253
|
return this.addCustomExportedProvider(provider);
|
|
257
254
|
}
|
|
258
|
-
else if (shared_utils_1.isString(provider) || shared_utils_1.isSymbol(provider)) {
|
|
255
|
+
else if ((0, shared_utils_1.isString)(provider) || (0, shared_utils_1.isSymbol)(provider)) {
|
|
259
256
|
return addExportedUnit(provider);
|
|
260
257
|
}
|
|
261
258
|
else if (this.isDynamicModule(provider)) {
|
|
@@ -266,7 +263,7 @@ class Module {
|
|
|
266
263
|
}
|
|
267
264
|
addCustomExportedProvider(provider) {
|
|
268
265
|
const provide = provider.provide;
|
|
269
|
-
if (shared_utils_1.isString(provide) || shared_utils_1.isSymbol(provide)) {
|
|
266
|
+
if ((0, shared_utils_1.isString)(provide) || (0, shared_utils_1.isSymbol)(provide)) {
|
|
270
267
|
return this._exports.add(this.validateExportedProvider(provide));
|
|
271
268
|
}
|
|
272
269
|
this._exports.add(this.validateExportedProvider(provide));
|
|
@@ -275,14 +272,14 @@ class Module {
|
|
|
275
272
|
if (this._providers.has(token)) {
|
|
276
273
|
return token;
|
|
277
274
|
}
|
|
278
|
-
const imports = iterare_1.iterate(this._imports.values())
|
|
275
|
+
const imports = (0, iterare_1.iterate)(this._imports.values())
|
|
279
276
|
.filter(item => !!item)
|
|
280
277
|
.map(({ metatype }) => metatype)
|
|
281
278
|
.filter(metatype => !!metatype)
|
|
282
279
|
.toArray();
|
|
283
280
|
if (!imports.includes(token)) {
|
|
284
281
|
const { name } = this.metatype;
|
|
285
|
-
const providerName = shared_utils_1.isFunction(token) ? token.name : token;
|
|
282
|
+
const providerName = (0, shared_utils_1.isFunction)(token) ? token.name : token;
|
|
286
283
|
throw new unknown_export_exception_1.UnknownExportException(providerName, name);
|
|
287
284
|
}
|
|
288
285
|
return token;
|
|
@@ -294,7 +291,7 @@ class Module {
|
|
|
294
291
|
metatype: controller,
|
|
295
292
|
instance: null,
|
|
296
293
|
isResolved: false,
|
|
297
|
-
scope: get_class_scope_1.getClassScope(controller),
|
|
294
|
+
scope: (0, get_class_scope_1.getClassScope)(controller),
|
|
298
295
|
host: this,
|
|
299
296
|
}));
|
|
300
297
|
this.assignControllerUniqueId(controller);
|
|
@@ -304,7 +301,7 @@ class Module {
|
|
|
304
301
|
enumerable: false,
|
|
305
302
|
writable: false,
|
|
306
303
|
configurable: true,
|
|
307
|
-
value: random_string_generator_util_1.randomStringGenerator(),
|
|
304
|
+
value: (0, random_string_generator_util_1.randomStringGenerator)(),
|
|
308
305
|
});
|
|
309
306
|
}
|
|
310
307
|
addRelatedModule(module) {
|
|
@@ -344,11 +341,11 @@ class Module {
|
|
|
344
341
|
? this.find(typeOrToken)
|
|
345
342
|
: this.find(typeOrToken, self);
|
|
346
343
|
}
|
|
347
|
-
resolve(typeOrToken, contextId = context_id_factory_1.createContextId(), options = { strict: true }) {
|
|
344
|
+
resolve(typeOrToken, contextId = (0, context_id_factory_1.createContextId)(), options = { strict: true }) {
|
|
348
345
|
return this.resolvePerContext(typeOrToken, self, contextId, options);
|
|
349
346
|
}
|
|
350
347
|
async create(type) {
|
|
351
|
-
if (!(type && shared_utils_1.isFunction(type) && type.prototype)) {
|
|
348
|
+
if (!(type && (0, shared_utils_1.isFunction)(type) && type.prototype)) {
|
|
352
349
|
throw new invalid_class_exception_1.InvalidClassException(type);
|
|
353
350
|
}
|
|
354
351
|
return this.instantiateClass(type, self);
|
|
@@ -7,18 +7,18 @@ const operators_1 = require("rxjs/operators");
|
|
|
7
7
|
const execution_context_host_1 = require("../helpers/execution-context-host");
|
|
8
8
|
class InterceptorsConsumer {
|
|
9
9
|
async intercept(interceptors, args, instance, callback, next, type) {
|
|
10
|
-
if (shared_utils_1.isEmpty(interceptors)) {
|
|
10
|
+
if ((0, shared_utils_1.isEmpty)(interceptors)) {
|
|
11
11
|
return next();
|
|
12
12
|
}
|
|
13
13
|
const context = this.createContext(args, instance, callback);
|
|
14
14
|
context.setType(type);
|
|
15
|
-
const start$ = rxjs_1.defer(() => this.transformDeferred(next));
|
|
15
|
+
const start$ = (0, rxjs_1.defer)(() => this.transformDeferred(next));
|
|
16
16
|
const nextFn = (i = 0) => async () => {
|
|
17
17
|
if (i >= interceptors.length) {
|
|
18
18
|
return start$;
|
|
19
19
|
}
|
|
20
20
|
const handler = {
|
|
21
|
-
handle: () => rxjs_1.from(nextFn(i + 1)()).pipe(operators_1.mergeAll()),
|
|
21
|
+
handle: () => (0, rxjs_1.from)(nextFn(i + 1)()).pipe((0, operators_1.mergeAll)()),
|
|
22
22
|
};
|
|
23
23
|
return interceptors[i].intercept(context, handler);
|
|
24
24
|
};
|
|
@@ -28,7 +28,7 @@ class InterceptorsConsumer {
|
|
|
28
28
|
return new execution_context_host_1.ExecutionContextHost(args, instance.constructor, callback);
|
|
29
29
|
}
|
|
30
30
|
transformDeferred(next) {
|
|
31
|
-
return rxjs_1.from(next()).pipe(operators_1.switchMap(res => {
|
|
31
|
+
return (0, rxjs_1.from)(next()).pipe((0, operators_1.switchMap)(res => {
|
|
32
32
|
const isDeferred = res instanceof Promise || res instanceof rxjs_1.Observable;
|
|
33
33
|
return isDeferred ? res : Promise.resolve(res);
|
|
34
34
|
}));
|
|
@@ -17,13 +17,13 @@ class InterceptorsContextCreator extends context_creator_1.ContextCreator {
|
|
|
17
17
|
return this.createContext(instance, callback, constants_1.INTERCEPTORS_METADATA, contextId, inquirerId);
|
|
18
18
|
}
|
|
19
19
|
createConcreteContext(metadata, contextId = constants_2.STATIC_CONTEXT, inquirerId) {
|
|
20
|
-
if (shared_utils_1.isEmpty(metadata)) {
|
|
20
|
+
if ((0, shared_utils_1.isEmpty)(metadata)) {
|
|
21
21
|
return [];
|
|
22
22
|
}
|
|
23
|
-
return iterare_1.iterate(metadata)
|
|
23
|
+
return (0, iterare_1.iterate)(metadata)
|
|
24
24
|
.filter(interceptor => interceptor && (interceptor.name || interceptor.intercept))
|
|
25
25
|
.map(interceptor => this.getInterceptorInstance(interceptor, contextId, inquirerId))
|
|
26
|
-
.filter((interceptor) => interceptor && shared_utils_1.isFunction(interceptor.intercept))
|
|
26
|
+
.filter((interceptor) => interceptor && (0, shared_utils_1.isFunction)(interceptor.intercept))
|
|
27
27
|
.toArray();
|
|
28
28
|
}
|
|
29
29
|
getInterceptorInstance(metatype, contextId = constants_2.STATIC_CONTEXT, inquirerId) {
|
|
@@ -58,7 +58,7 @@ class InterceptorsContextCreator extends context_creator_1.ContextCreator {
|
|
|
58
58
|
return globalInterceptors;
|
|
59
59
|
}
|
|
60
60
|
const scopedInterceptorWrappers = this.config.getGlobalRequestInterceptors();
|
|
61
|
-
const scopedInterceptors = iterare_1.iterate(scopedInterceptorWrappers)
|
|
61
|
+
const scopedInterceptors = (0, iterare_1.iterate)(scopedInterceptorWrappers)
|
|
62
62
|
.map(wrapper => wrapper.getInstanceByContextId(contextId, inquirerId))
|
|
63
63
|
.filter(host => !!host)
|
|
64
64
|
.map(host => host.instance)
|
package/metadata-scanner.js
CHANGED
|
@@ -6,9 +6,9 @@ const iterare_1 = require("iterare");
|
|
|
6
6
|
class MetadataScanner {
|
|
7
7
|
scanFromPrototype(instance, prototype, callback) {
|
|
8
8
|
const methodNames = new Set(this.getAllFilteredMethodNames(prototype));
|
|
9
|
-
return iterare_1.iterate(methodNames)
|
|
9
|
+
return (0, iterare_1.iterate)(methodNames)
|
|
10
10
|
.map(callback)
|
|
11
|
-
.filter(metadata => !shared_utils_1.isNil(metadata))
|
|
11
|
+
.filter(metadata => !(0, shared_utils_1.isNil)(metadata))
|
|
12
12
|
.toArray();
|
|
13
13
|
}
|
|
14
14
|
*getAllFilteredMethodNames(prototype) {
|
|
@@ -17,10 +17,10 @@ class MetadataScanner {
|
|
|
17
17
|
if (descriptor.set || descriptor.get) {
|
|
18
18
|
return false;
|
|
19
19
|
}
|
|
20
|
-
return !shared_utils_1.isConstructor(prop) && shared_utils_1.isFunction(prototype[prop]);
|
|
20
|
+
return !(0, shared_utils_1.isConstructor)(prop) && (0, shared_utils_1.isFunction)(prototype[prop]);
|
|
21
21
|
};
|
|
22
22
|
do {
|
|
23
|
-
yield* iterare_1.iterate(Object.getOwnPropertyNames(prototype))
|
|
23
|
+
yield* (0, iterare_1.iterate)(Object.getOwnPropertyNames(prototype))
|
|
24
24
|
.filter(isMethod)
|
|
25
25
|
.toArray();
|
|
26
26
|
} while ((prototype = Reflect.getPrototypeOf(prototype)) &&
|
package/middleware/builder.js
CHANGED
|
@@ -11,7 +11,7 @@ class MiddlewareBuilder {
|
|
|
11
11
|
this.middlewareCollection = new Set();
|
|
12
12
|
}
|
|
13
13
|
apply(...middleware) {
|
|
14
|
-
return new MiddlewareBuilder.ConfigProxy(this, dependencies_decorator_1.flatten(middleware));
|
|
14
|
+
return new MiddlewareBuilder.ConfigProxy(this, (0, dependencies_decorator_1.flatten)(middleware));
|
|
15
15
|
}
|
|
16
16
|
build() {
|
|
17
17
|
return [...this.middlewareCollection];
|
|
@@ -38,7 +38,7 @@ MiddlewareBuilder.ConfigProxy = class {
|
|
|
38
38
|
const { middlewareCollection } = this.builder;
|
|
39
39
|
const forRoutes = this.getRoutesFlatList(routes);
|
|
40
40
|
const configuration = {
|
|
41
|
-
middleware: utils_1.filterMiddleware(this.middleware, this.excludedRoutes, this.builder.getHttpAdapter()),
|
|
41
|
+
middleware: (0, utils_1.filterMiddleware)(this.middleware, this.excludedRoutes, this.builder.getHttpAdapter()),
|
|
42
42
|
forRoutes,
|
|
43
43
|
};
|
|
44
44
|
middlewareCollection.add(configuration);
|
|
@@ -46,7 +46,7 @@ MiddlewareBuilder.ConfigProxy = class {
|
|
|
46
46
|
}
|
|
47
47
|
getRoutesFlatList(routes) {
|
|
48
48
|
const { routesMapper } = this.builder;
|
|
49
|
-
return iterare_1.iterate(routes)
|
|
49
|
+
return (0, iterare_1.iterate)(routes)
|
|
50
50
|
.map(route => routesMapper.mapRouteToRouteInfo(route))
|
|
51
51
|
.flatten()
|
|
52
52
|
.toArray();
|
package/middleware/container.js
CHANGED
|
@@ -26,7 +26,7 @@ class MiddlewareContainer {
|
|
|
26
26
|
const insertMiddleware = (metatype) => {
|
|
27
27
|
const token = metatype;
|
|
28
28
|
middleware.set(token, new instance_wrapper_1.InstanceWrapper({
|
|
29
|
-
scope: get_class_scope_1.getClassScope(metatype),
|
|
29
|
+
scope: (0, get_class_scope_1.getClassScope)(metatype),
|
|
30
30
|
name: token,
|
|
31
31
|
metatype,
|
|
32
32
|
token,
|