@nestjs/core 9.3.7 → 9.3.8
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/injector/module.d.ts +3 -0
- package/injector/module.js +22 -5
- package/package.json +2 -2
- package/scanner.d.ts +1 -1
- package/scanner.js +4 -3
package/injector/module.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export declare class Module {
|
|
|
17
17
|
private readonly _injectables;
|
|
18
18
|
private readonly _middlewares;
|
|
19
19
|
private readonly _controllers;
|
|
20
|
+
private readonly _entryProviderKeys;
|
|
20
21
|
private readonly _exports;
|
|
21
22
|
private _distance;
|
|
22
23
|
private _initOnPreview;
|
|
@@ -48,6 +49,7 @@ export declare class Module {
|
|
|
48
49
|
get routes(): Map<InstanceToken, InstanceWrapper<Controller>>;
|
|
49
50
|
get injectables(): Map<InstanceToken, InstanceWrapper<Injectable>>;
|
|
50
51
|
get controllers(): Map<InstanceToken, InstanceWrapper<Controller>>;
|
|
52
|
+
get entryProviders(): Array<InstanceWrapper<Injectable>>;
|
|
51
53
|
get exports(): Set<InstanceToken>;
|
|
52
54
|
get instance(): NestModule;
|
|
53
55
|
get metatype(): Type<any>;
|
|
@@ -90,5 +92,6 @@ export declare class Module {
|
|
|
90
92
|
InstanceWrapper<Injectable>
|
|
91
93
|
]>;
|
|
92
94
|
createModuleReferenceType(): Type<ModuleRef>;
|
|
95
|
+
private isEntryProvider;
|
|
93
96
|
private generateUuid;
|
|
94
97
|
}
|
package/injector/module.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Module = void 0;
|
|
4
|
+
const constants_1 = require("@nestjs/common/constants");
|
|
4
5
|
const random_string_generator_util_1 = require("@nestjs/common/utils/random-string-generator.util");
|
|
5
6
|
const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
|
|
6
7
|
const iterare_1 = require("iterare");
|
|
@@ -10,7 +11,7 @@ const context_id_factory_1 = require("../helpers/context-id-factory");
|
|
|
10
11
|
const get_class_scope_1 = require("../helpers/get-class-scope");
|
|
11
12
|
const is_durable_1 = require("../helpers/is-durable");
|
|
12
13
|
const uuid_factory_1 = require("../inspector/uuid-factory");
|
|
13
|
-
const
|
|
14
|
+
const constants_2 = require("./constants");
|
|
14
15
|
const instance_wrapper_1 = require("./instance-wrapper");
|
|
15
16
|
const module_ref_1 = require("./module-ref");
|
|
16
17
|
class Module {
|
|
@@ -22,6 +23,7 @@ class Module {
|
|
|
22
23
|
this._injectables = new Map();
|
|
23
24
|
this._middlewares = new Map();
|
|
24
25
|
this._controllers = new Map();
|
|
26
|
+
this._entryProviderKeys = new Set();
|
|
25
27
|
this._exports = new Set();
|
|
26
28
|
this._distance = 0;
|
|
27
29
|
this._initOnPreview = false;
|
|
@@ -86,6 +88,9 @@ class Module {
|
|
|
86
88
|
get controllers() {
|
|
87
89
|
return this._controllers;
|
|
88
90
|
}
|
|
91
|
+
get entryProviders() {
|
|
92
|
+
return Array.from(this._entryProviderKeys).map(token => this.providers.get(token));
|
|
93
|
+
}
|
|
89
94
|
get exports() {
|
|
90
95
|
return this._exports;
|
|
91
96
|
}
|
|
@@ -142,7 +147,7 @@ class Module {
|
|
|
142
147
|
}
|
|
143
148
|
addInjectable(injectable, enhancerSubtype, host) {
|
|
144
149
|
if (this.isCustomProvider(injectable)) {
|
|
145
|
-
return this.addCustomProvider(injectable, this._injectables);
|
|
150
|
+
return this.addCustomProvider(injectable, this._injectables, enhancerSubtype);
|
|
146
151
|
}
|
|
147
152
|
let instanceWrapper = this.injectables.get(injectable);
|
|
148
153
|
if (!instanceWrapper) {
|
|
@@ -167,6 +172,9 @@ class Module {
|
|
|
167
172
|
}
|
|
168
173
|
addProvider(provider, enhancerSubtype) {
|
|
169
174
|
if (this.isCustomProvider(provider)) {
|
|
175
|
+
if (this.isEntryProvider(provider.provide)) {
|
|
176
|
+
this._entryProviderKeys.add(provider.provide);
|
|
177
|
+
}
|
|
170
178
|
return this.addCustomProvider(provider, this._providers, enhancerSubtype);
|
|
171
179
|
}
|
|
172
180
|
this._providers.set(provider, new instance_wrapper_1.InstanceWrapper({
|
|
@@ -179,6 +187,9 @@ class Module {
|
|
|
179
187
|
durable: (0, is_durable_1.isDurable)(provider),
|
|
180
188
|
host: this,
|
|
181
189
|
}));
|
|
190
|
+
if (this.isEntryProvider(provider)) {
|
|
191
|
+
this._entryProviderKeys.add(provider);
|
|
192
|
+
}
|
|
182
193
|
return provider;
|
|
183
194
|
}
|
|
184
195
|
isCustomProvider(provider) {
|
|
@@ -223,8 +234,9 @@ class Module {
|
|
|
223
234
|
if ((0, shared_utils_1.isUndefined)(durable)) {
|
|
224
235
|
durable = (0, is_durable_1.isDurable)(useClass);
|
|
225
236
|
}
|
|
226
|
-
|
|
227
|
-
|
|
237
|
+
const token = provider.provide;
|
|
238
|
+
collection.set(token, new instance_wrapper_1.InstanceWrapper({
|
|
239
|
+
token,
|
|
228
240
|
name: (useClass === null || useClass === void 0 ? void 0 : useClass.name) || useClass,
|
|
229
241
|
metatype: useClass,
|
|
230
242
|
instance: null,
|
|
@@ -328,7 +340,7 @@ class Module {
|
|
|
328
340
|
this.assignControllerUniqueId(controller);
|
|
329
341
|
}
|
|
330
342
|
assignControllerUniqueId(controller) {
|
|
331
|
-
Object.defineProperty(controller,
|
|
343
|
+
Object.defineProperty(controller, constants_2.CONTROLLER_ID_KEY, {
|
|
332
344
|
enumerable: false,
|
|
333
345
|
writable: false,
|
|
334
346
|
configurable: true,
|
|
@@ -404,6 +416,11 @@ class Module {
|
|
|
404
416
|
}
|
|
405
417
|
};
|
|
406
418
|
}
|
|
419
|
+
isEntryProvider(metatype) {
|
|
420
|
+
return typeof metatype === 'function'
|
|
421
|
+
? !!Reflect.getMetadata(constants_1.ENTRY_PROVIDER_WATERMARK, metatype)
|
|
422
|
+
: false;
|
|
423
|
+
}
|
|
407
424
|
generateUuid() {
|
|
408
425
|
var _a, _b, _c;
|
|
409
426
|
const prefix = 'M_';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestjs/core",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.8",
|
|
4
4
|
"description": "Nest - modern, fast, powerful node.js web framework (@core)",
|
|
5
5
|
"author": "Kamil Mysliwiec",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"uid": "2.0.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@nestjs/common": "9.3.
|
|
38
|
+
"@nestjs/common": "9.3.8"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"@nestjs/common": "^9.0.0",
|
package/scanner.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DynamicModule, ForwardReference, Provider } from '@nestjs/common';
|
|
2
2
|
import { EnhancerSubtype } from '@nestjs/common/constants';
|
|
3
|
-
import { ClassProvider, ExistingProvider, FactoryProvider,
|
|
3
|
+
import { ClassProvider, Controller, ExistingProvider, FactoryProvider, Injectable, Type, ValueProvider } from '@nestjs/common/interfaces';
|
|
4
4
|
import { ApplicationConfig } from './application-config';
|
|
5
5
|
import { NestContainer } from './injector/container';
|
|
6
6
|
import { InstanceWrapper } from './injector/instance-wrapper';
|
package/scanner.js
CHANGED
|
@@ -290,10 +290,11 @@ class DependenciesScanner {
|
|
|
290
290
|
const modulesContainer = this.container.getModules();
|
|
291
291
|
const { injectables } = modulesContainer.get(moduleKey);
|
|
292
292
|
const instanceWrapper = injectables.get(providerKey);
|
|
293
|
-
|
|
294
|
-
|
|
293
|
+
const iterableIterator = modulesContainer.values();
|
|
294
|
+
(0, iterare_1.iterate)(iterableIterator)
|
|
295
|
+
.map(moduleRef => Array.from(moduleRef.controllers.values()).concat(moduleRef.entryProviders))
|
|
295
296
|
.flatten()
|
|
296
|
-
.forEach(
|
|
297
|
+
.forEach(controllerOrEntryProvider => controllerOrEntryProvider.addEnhancerMetadata(instanceWrapper));
|
|
297
298
|
});
|
|
298
299
|
}
|
|
299
300
|
applyApplicationProviders() {
|