@nestjs/common 11.1.6 → 11.1.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/Readme.md +3 -9
- package/enums/route-paramtypes.enum.d.ts +2 -1
- package/enums/route-paramtypes.enum.js +1 -0
- package/interfaces/nest-application-context-options.interface.d.ts +6 -0
- package/interfaces/websockets/web-socket-adapter.interface.d.ts +1 -0
- package/module-utils/configurable-module.builder.js +13 -1
- package/module-utils/constants.d.ts +5 -0
- package/module-utils/constants.js +13 -1
- package/package.json +2 -2
- package/services/console-logger.service.d.ts +6 -0
- package/services/console-logger.service.js +29 -4
- package/utils/cli-colors.util.d.ts +1 -0
- package/utils/cli-colors.util.js +3 -2
package/Readme.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<p align="center">A progressive <a href="https://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
|
|
9
9
|
<p align="center">
|
|
10
10
|
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
|
11
|
-
<a href="https://
|
|
11
|
+
<a href="https://github.com/nestjs/nest/blob/master/LICENSE" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
|
12
12
|
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
|
|
13
13
|
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
|
|
14
14
|
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
|
|
@@ -78,10 +78,7 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
|
|
|
78
78
|
</tr>
|
|
79
79
|
<tr>
|
|
80
80
|
<td><a href="https://snyk.co/nestjs" target="_blank"><img src="https://nestjs.com/img/logos/snyk-logo-black.png" width="185" valign="middle" /></a></td>
|
|
81
|
-
<td><a href="https://fuseautotech.com/" target="_blank"><img src="https://nestjs.com/img/logos/fuse-logo.svg" width="105" valign="middle" /></a></td>
|
|
82
|
-
<td><a href="https://ridicorp.com/career/" target="_blank"><img src="https://nestjs.com/img/logos/ridi-logo.svg" width="105" valign="middle" /></a></td>
|
|
83
81
|
<td><a href="https://www.movavi.com/imovie-for-windows.html" target="_blank"><img src="https://nestjs.com/img/logos/movavi-logo.svg" width="105" valign="middle" /></a></td>
|
|
84
|
-
<td><a href="https://skunk.team" target="_blank"><img src="https://nestjs.com/img/logos/skunk-logo.png" height="60" valign="middle" /></a></td>
|
|
85
82
|
</tr>
|
|
86
83
|
</table>
|
|
87
84
|
|
|
@@ -91,10 +88,10 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
|
|
|
91
88
|
<tr>
|
|
92
89
|
<td><a href="https://www.mercedes-benz.com/" target="_blank"><img src="https://nestjs.com/img/logos/mercedes-logo.png" width="100" valign="middle" /></a></td>
|
|
93
90
|
<td><a href="https://www.dinii.jp/" target="_blank"><img src="https://nestjs.com/img/logos/dinii-logo.png" width="65" valign="middle" /></a></td>
|
|
94
|
-
<td><a href="https://bloodycase.com/?promocode=NEST" target="_blank"><img src="https://nestjs.com/img/logos/bloodycase-logo.png" width="65" valign="middle" /></a></td>
|
|
95
91
|
<td><a href="https://handsontable.com/docs/react-data-grid/?utm_source=NestJS_GH&utm_medium=sponsorship&utm_campaign=library_sponsorship_2024" target="_blank"><img src="https://nestjs.com/img/logos/handsontable-dark-logo.svg#2" width="150" valign="middle" /></a></td>
|
|
96
92
|
<td align="center" valign="middle"><a href="https://www.itflashcards.com/" target="_blank"><img src="https://nestjs.com/img/logos/it_flashcards-logo.png" width="170" valign="middle" /></a></td>
|
|
97
93
|
<td align="center" valign="middle"><a href="https://arcjet.com/?ref=nestjs" target="_blank"><img src="https://nestjs.com/img/logos/arcjet-logo.svg" width="170" valign="middle" /></a></td>
|
|
94
|
+
<td align="center" valign="middle"><a href="https://crawljobs.com" target="_blank"><img src="https://nestjs.com/img/logos/crawljobs-logo.svg" width="130" valign="middle" /></a></td>
|
|
98
95
|
</tr>
|
|
99
96
|
</table>
|
|
100
97
|
|
|
@@ -118,19 +115,16 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
|
|
|
118
115
|
<td align="center" valign="middle"><a href="https://triplecore.io" target="_blank"><img src="https://nestjs.com/img/logos/triplecore-logo.svg" width="50" valign="middle" /></a></td>
|
|
119
116
|
</tr>
|
|
120
117
|
<tr>
|
|
121
|
-
<td align="center" valign="middle"><a href="https://thecasinowizard.com/bonuses/no-deposit-bonuses/" target="_blank"><img src="https://nestjs.com/img/logos/casinowizard-logo.png" width="120" valign="middle" /></a></td>
|
|
122
118
|
<td align="center" valign="middle"><a href="https://polygon-software.ch/" target="_blank"><img src="https://nestjs.com/img/logos/polygon-logo.svg" width="120" valign="middle" /></a></td>
|
|
123
119
|
<td align="center" valign="middle"><a href="https://boringowl.io/" target="_blank"><img src="https://nestjs.com/img/logos/boringowl-logo.svg" width="120" valign="middle" /></a></td>
|
|
124
120
|
<td align="center" valign="middle"><a href="https://nordbot.app/" target="_blank"><img src="https://nestjs.com/img/logos/nordbot-logo.png" width="120" valign="middle" /></a></td>
|
|
125
121
|
<td align="center" valign="middle"><a href="https://doppio.sh/" target="_blank"><img src="https://nestjs.com/img/logos/dopiosh-logo.png" width="50" valign="middle" /></a></td>
|
|
126
122
|
<td align="center" valign="middle"><a href="https://www.hingehealth.com/" target="_blank"><img src="https://nestjs.com/img/logos/hinge-health-logo.svg" width="100" valign="middle" /></a></td>
|
|
123
|
+
<td align="center" valign="middle"><a href="https://www.tripoffice.com/" target="_blank"><img src="https://nestjs.com/img/logos/tripoffice-logo.png" width="140" valign="middle" /></a></td>
|
|
127
124
|
</tr>
|
|
128
125
|
<tr>
|
|
129
|
-
<td align="center" valign="middle"><a href="https://julienferand.dev/" target="_blank"><img src="https://nestjs.com/img/logos/julienferand-logo.jpeg" width="55" valign="middle" /></a></td>
|
|
130
|
-
<td align="center" valign="middle"><a href="https://www.tripoffice.com/" target="_blank"><img src="https://nestjs.com/img/logos/tripoffice-logo.png" width="140" valign="middle" /></a></td>
|
|
131
126
|
<td align="center" valign="middle"><a href="https://solcellsforetag.se/" target="_blank"><img src="https://nestjs.com/img/logos/solcellsforetag-logo.svg" width="140" valign="middle" /></a></td>
|
|
132
127
|
<td align="center" valign="middle"><a href="https://www.route4me.com/" target="_blank"><img src="https://nestjs.com/img/logos/route4me-logo.svg" width="100" valign="middle" /></a></td>
|
|
133
|
-
<td align="center" valign="middle"><a href="https://www.slotsup.com/" target="_blank"><img src="https://nestjs.com/img/logos/slotsup-logo.png" width="60" valign="middle" /></a></td>
|
|
134
128
|
</tr>
|
|
135
129
|
</table>
|
|
136
130
|
|
|
@@ -16,4 +16,5 @@ var RouteParamtypes;
|
|
|
16
16
|
RouteParamtypes[RouteParamtypes["HOST"] = 10] = "HOST";
|
|
17
17
|
RouteParamtypes[RouteParamtypes["IP"] = 11] = "IP";
|
|
18
18
|
RouteParamtypes[RouteParamtypes["RAW_BODY"] = 12] = "RAW_BODY";
|
|
19
|
+
RouteParamtypes[RouteParamtypes["ACK"] = 13] = "ACK";
|
|
19
20
|
})(RouteParamtypes || (exports.RouteParamtypes = RouteParamtypes = {}));
|
|
@@ -59,4 +59,10 @@ export declare class NestApplicationContextOptions {
|
|
|
59
59
|
*/
|
|
60
60
|
instanceDecorator: (instance: unknown) => unknown;
|
|
61
61
|
};
|
|
62
|
+
/**
|
|
63
|
+
* If enabled, will force the use of console.log/console.error instead of process.stdout/stderr.write
|
|
64
|
+
* in the default ConsoleLogger. This is useful for test environments like Jest that can buffer console calls.
|
|
65
|
+
* @default false
|
|
66
|
+
*/
|
|
67
|
+
forceConsole?: boolean;
|
|
62
68
|
}
|
|
@@ -144,7 +144,7 @@ class ConfigurableModuleBuilder {
|
|
|
144
144
|
providers,
|
|
145
145
|
}, {
|
|
146
146
|
...self.extras,
|
|
147
|
-
...options,
|
|
147
|
+
...this.extractExtrasFromAsyncOptions(options, self.extras),
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
150
|
static omitExtras(input, extras) {
|
|
@@ -160,6 +160,18 @@ class ConfigurableModuleBuilder {
|
|
|
160
160
|
});
|
|
161
161
|
return moduleOptions;
|
|
162
162
|
}
|
|
163
|
+
static extractExtrasFromAsyncOptions(input, extras) {
|
|
164
|
+
if (!extras) {
|
|
165
|
+
return {};
|
|
166
|
+
}
|
|
167
|
+
const extrasOptions = {};
|
|
168
|
+
Object.keys(input)
|
|
169
|
+
.filter(key => !constants_1.ASYNC_OPTIONS_METADATA_KEYS.includes(key))
|
|
170
|
+
.forEach(key => {
|
|
171
|
+
extrasOptions[key] = input[key];
|
|
172
|
+
});
|
|
173
|
+
return extrasOptions;
|
|
174
|
+
}
|
|
163
175
|
static createAsyncProviders(options) {
|
|
164
176
|
if (options.useExisting || options.useFactory) {
|
|
165
177
|
if (options.inject && options.provideInjectionTokensFrom) {
|
|
@@ -2,3 +2,8 @@ export declare const DEFAULT_METHOD_KEY = "register";
|
|
|
2
2
|
export declare const DEFAULT_FACTORY_CLASS_METHOD_KEY = "create";
|
|
3
3
|
export declare const ASYNC_METHOD_SUFFIX = "Async";
|
|
4
4
|
export declare const CONFIGURABLE_MODULE_ID = "CONFIGURABLE_MODULE_ID";
|
|
5
|
+
/**
|
|
6
|
+
* List of keys that are specific to ConfigurableModuleAsyncOptions
|
|
7
|
+
* and should be excluded when extracting user-defined extras.
|
|
8
|
+
*/
|
|
9
|
+
export declare const ASYNC_OPTIONS_METADATA_KEYS: readonly ["useFactory", "useClass", "useExisting", "inject", "imports", "provideInjectionTokensFrom"];
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CONFIGURABLE_MODULE_ID = exports.ASYNC_METHOD_SUFFIX = exports.DEFAULT_FACTORY_CLASS_METHOD_KEY = exports.DEFAULT_METHOD_KEY = void 0;
|
|
3
|
+
exports.ASYNC_OPTIONS_METADATA_KEYS = exports.CONFIGURABLE_MODULE_ID = exports.ASYNC_METHOD_SUFFIX = exports.DEFAULT_FACTORY_CLASS_METHOD_KEY = exports.DEFAULT_METHOD_KEY = void 0;
|
|
4
4
|
exports.DEFAULT_METHOD_KEY = 'register';
|
|
5
5
|
exports.DEFAULT_FACTORY_CLASS_METHOD_KEY = 'create';
|
|
6
6
|
exports.ASYNC_METHOD_SUFFIX = 'Async';
|
|
7
7
|
exports.CONFIGURABLE_MODULE_ID = 'CONFIGURABLE_MODULE_ID';
|
|
8
|
+
/**
|
|
9
|
+
* List of keys that are specific to ConfigurableModuleAsyncOptions
|
|
10
|
+
* and should be excluded when extracting user-defined extras.
|
|
11
|
+
*/
|
|
12
|
+
exports.ASYNC_OPTIONS_METADATA_KEYS = [
|
|
13
|
+
'useFactory',
|
|
14
|
+
'useClass',
|
|
15
|
+
'useExisting',
|
|
16
|
+
'inject',
|
|
17
|
+
'imports',
|
|
18
|
+
'provideInjectionTokensFrom',
|
|
19
|
+
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestjs/common",
|
|
3
|
-
"version": "11.1.
|
|
3
|
+
"version": "11.1.8",
|
|
4
4
|
"description": "Nest - modern, fast, powerful node.js web framework (@common)",
|
|
5
5
|
"author": "Kamil Mysliwiec",
|
|
6
6
|
"homepage": "https://nestjs.com",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"file-type": "21.0.0",
|
|
22
22
|
"iterare": "1.2.1",
|
|
23
|
-
"load-esm": "1.0.
|
|
23
|
+
"load-esm": "1.0.3",
|
|
24
24
|
"tslib": "2.8.1",
|
|
25
25
|
"uid": "2.0.2"
|
|
26
26
|
},
|
|
@@ -31,6 +31,12 @@ export interface ConsoleLoggerOptions {
|
|
|
31
31
|
* The context of the logger.
|
|
32
32
|
*/
|
|
33
33
|
context?: string;
|
|
34
|
+
/**
|
|
35
|
+
* If enabled, will force the use of console.log/console.error instead of process.stdout/stderr.write.
|
|
36
|
+
* This is useful for test environments like Jest that can buffer console calls.
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
forceConsole?: boolean;
|
|
34
40
|
/**
|
|
35
41
|
* If enabled, will print the log message in a single line, even if it is an object with multiple properties.
|
|
36
42
|
* If set to a number, the most n inner elements are united on a single line as long as all properties fit into breakLength. Short array elements are also grouped together.
|
|
@@ -38,7 +38,7 @@ let ConsoleLogger = ConsoleLogger_1 = class ConsoleLogger {
|
|
|
38
38
|
: [contextOrOptions?.context, contextOrOptions];
|
|
39
39
|
opts = opts ?? {};
|
|
40
40
|
opts.logLevels ??= DEFAULT_LOG_LEVELS;
|
|
41
|
-
opts.colors ??= opts.colors ?? (opts.json ? false :
|
|
41
|
+
opts.colors ??= opts.colors ?? (opts.json ? false : (0, cli_colors_util_1.isColorAllowed)());
|
|
42
42
|
opts.prefix ??= 'Nest';
|
|
43
43
|
this.options = opts;
|
|
44
44
|
this.inspectOptions = this.getInspectOptions();
|
|
@@ -151,7 +151,17 @@ let ConsoleLogger = ConsoleLogger_1 = class ConsoleLogger {
|
|
|
151
151
|
const timestampDiff = this.updateAndGetTimestampDiff();
|
|
152
152
|
const formattedLogLevel = logLevel.toUpperCase().padStart(7, ' ');
|
|
153
153
|
const formattedMessage = this.formatMessage(logLevel, message, pidMessage, formattedLogLevel, contextMessage, timestampDiff);
|
|
154
|
-
|
|
154
|
+
if (this.options.forceConsole) {
|
|
155
|
+
if (writeStreamType === 'stderr') {
|
|
156
|
+
console.error(formattedMessage.trim());
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
console.log(formattedMessage.trim());
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
process[writeStreamType ?? 'stdout'].write(formattedMessage);
|
|
164
|
+
}
|
|
155
165
|
});
|
|
156
166
|
}
|
|
157
167
|
printAsJson(message, options) {
|
|
@@ -159,7 +169,17 @@ let ConsoleLogger = ConsoleLogger_1 = class ConsoleLogger {
|
|
|
159
169
|
const formattedMessage = !this.options.colors && this.inspectOptions.compact === true
|
|
160
170
|
? JSON.stringify(logObject, this.stringifyReplacer)
|
|
161
171
|
: (0, util_1.inspect)(logObject, this.inspectOptions);
|
|
162
|
-
|
|
172
|
+
if (this.options.forceConsole) {
|
|
173
|
+
if (options.writeStreamType === 'stderr') {
|
|
174
|
+
console.error(formattedMessage);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
console.log(formattedMessage);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
process[options.writeStreamType ?? 'stdout'].write(`${formattedMessage}\n`);
|
|
182
|
+
}
|
|
163
183
|
}
|
|
164
184
|
getJsonLogObject(message, options) {
|
|
165
185
|
const logObject = {
|
|
@@ -226,7 +246,12 @@ let ConsoleLogger = ConsoleLogger_1 = class ConsoleLogger {
|
|
|
226
246
|
if (!stack || this.options.json) {
|
|
227
247
|
return;
|
|
228
248
|
}
|
|
229
|
-
|
|
249
|
+
if (this.options.forceConsole) {
|
|
250
|
+
console.error(stack);
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
process.stderr.write(`${stack}\n`);
|
|
254
|
+
}
|
|
230
255
|
}
|
|
231
256
|
updateAndGetTimestampDiff() {
|
|
232
257
|
const includeTimestamp = ConsoleLogger_1.lastTimestampAt && this.options?.timestamp;
|
package/utils/cli-colors.util.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.yellow = exports.clc = void 0;
|
|
3
|
+
exports.yellow = exports.clc = exports.isColorAllowed = void 0;
|
|
4
4
|
const isColorAllowed = () => !process.env.NO_COLOR;
|
|
5
|
-
|
|
5
|
+
exports.isColorAllowed = isColorAllowed;
|
|
6
|
+
const colorIfAllowed = (colorFn) => (text) => (0, exports.isColorAllowed)() ? colorFn(text) : text;
|
|
6
7
|
exports.clc = {
|
|
7
8
|
bold: colorIfAllowed((text) => `\x1B[1m${text}\x1B[0m`),
|
|
8
9
|
green: colorIfAllowed((text) => `\x1B[32m${text}\x1B[39m`),
|