@nestjs/platform-express 8.1.0 → 8.2.1
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/CHANGELOG.md +12 -0
- package/adapters/express-adapter.js +10 -6
- package/adapters/index.js +1 -1
- package/index.js +3 -3
- package/interfaces/index.js +1 -1
- package/multer/index.js +3 -3
- package/multer/interceptors/any-files.interceptor.js +6 -6
- package/multer/interceptors/file-fields.interceptor.js +6 -6
- package/multer/interceptors/file.interceptor.js +6 -6
- package/multer/interceptors/files.interceptor.js +6 -6
- package/multer/interceptors/index.js +4 -4
- package/multer/interfaces/index.js +1 -1
- package/multer/multer.module.js +4 -4
- package/package.json +3 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
|
|
6
|
+
<a name="8.2.0"></a>
|
|
7
|
+
# [8.2.0](https://github.com/nestjs/nest/compare/v8.1.2...v8.2.0) (2021-11-08)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* **common:** add the ability to set some extra metadata about returned files ([5100573](https://github.com/nestjs/nest/commit/5100573))
|
|
@@ -20,16 +20,20 @@ class ExpressAdapter extends http_adapter_1.AbstractHttpAdapter {
|
|
|
20
20
|
if (statusCode) {
|
|
21
21
|
response.status(statusCode);
|
|
22
22
|
}
|
|
23
|
-
if (
|
|
23
|
+
if (shared_utils_1.isNil(body)) {
|
|
24
24
|
return response.send();
|
|
25
25
|
}
|
|
26
26
|
if (body instanceof common_1.StreamableFile) {
|
|
27
|
+
const streamHeaders = body.getHeaders();
|
|
27
28
|
if (response.getHeader('Content-Type') === undefined) {
|
|
28
|
-
response.setHeader('Content-Type',
|
|
29
|
+
response.setHeader('Content-Type', streamHeaders.type);
|
|
30
|
+
}
|
|
31
|
+
if (response.getHeader('Content-Disposition') === undefined) {
|
|
32
|
+
response.setHeader('Content-Disposition', streamHeaders.disposition);
|
|
29
33
|
}
|
|
30
34
|
return body.getStream().pipe(response);
|
|
31
35
|
}
|
|
32
|
-
return
|
|
36
|
+
return shared_utils_1.isObject(body) ? response.json(body) : response.send(String(body));
|
|
33
37
|
}
|
|
34
38
|
status(response, statusCode) {
|
|
35
39
|
return response.status(statusCode);
|
|
@@ -148,7 +152,7 @@ class ExpressAdapter extends http_adapter_1.AbstractHttpAdapter {
|
|
|
148
152
|
return handler(req, res, next);
|
|
149
153
|
}
|
|
150
154
|
}
|
|
151
|
-
else if (
|
|
155
|
+
else if (shared_utils_1.isString(version)) {
|
|
152
156
|
if (version === headerVersion) {
|
|
153
157
|
return handler(req, res, next);
|
|
154
158
|
}
|
|
@@ -165,7 +169,7 @@ class ExpressAdapter extends http_adapter_1.AbstractHttpAdapter {
|
|
|
165
169
|
return handler(req, res, next);
|
|
166
170
|
}
|
|
167
171
|
}
|
|
168
|
-
else if (
|
|
172
|
+
else if (shared_utils_1.isString(version)) {
|
|
169
173
|
if (version === customHeaderVersionParameter) {
|
|
170
174
|
return handler(req, res, next);
|
|
171
175
|
}
|
|
@@ -182,7 +186,7 @@ class ExpressAdapter extends http_adapter_1.AbstractHttpAdapter {
|
|
|
182
186
|
const app = this.getInstance();
|
|
183
187
|
return (!!app._router &&
|
|
184
188
|
!!app._router.stack &&
|
|
185
|
-
|
|
189
|
+
shared_utils_1.isFunction(app._router.stack.filter) &&
|
|
186
190
|
app._router.stack.some((layer) => layer && layer.handle && layer.handle.name === name));
|
|
187
191
|
}
|
|
188
192
|
}
|
package/adapters/index.js
CHANGED
package/index.js
CHANGED
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
const tslib_1 = require("tslib");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
tslib_1.__exportStar(require("./adapters"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./interfaces"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./multer"), exports);
|
package/interfaces/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
|
|
4
|
+
tslib_1.__exportStar(require("./nest-express-application.interface"), exports);
|
package/multer/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
tslib_1.__exportStar(require("./interceptors"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./interfaces"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./multer.module"), exports);
|
|
@@ -15,7 +15,7 @@ function AnyFilesInterceptor(localOptions) {
|
|
|
15
15
|
const ctx = context.switchToHttp();
|
|
16
16
|
await new Promise((resolve, reject) => this.multer.any()(ctx.getRequest(), ctx.getResponse(), (err) => {
|
|
17
17
|
if (err) {
|
|
18
|
-
const error =
|
|
18
|
+
const error = multer_utils_1.transformException(err);
|
|
19
19
|
return reject(error);
|
|
20
20
|
}
|
|
21
21
|
resolve();
|
|
@@ -23,12 +23,12 @@ function AnyFilesInterceptor(localOptions) {
|
|
|
23
23
|
return next.handle();
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
-
MixinInterceptor =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
MixinInterceptor = tslib_1.__decorate([
|
|
27
|
+
tslib_1.__param(0, common_1.Optional()),
|
|
28
|
+
tslib_1.__param(0, common_1.Inject(files_constants_1.MULTER_MODULE_OPTIONS)),
|
|
29
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
30
30
|
], MixinInterceptor);
|
|
31
|
-
const Interceptor =
|
|
31
|
+
const Interceptor = common_1.mixin(MixinInterceptor);
|
|
32
32
|
return Interceptor;
|
|
33
33
|
}
|
|
34
34
|
exports.AnyFilesInterceptor = AnyFilesInterceptor;
|
|
@@ -15,7 +15,7 @@ function FileFieldsInterceptor(uploadFields, localOptions) {
|
|
|
15
15
|
const ctx = context.switchToHttp();
|
|
16
16
|
await new Promise((resolve, reject) => this.multer.fields(uploadFields)(ctx.getRequest(), ctx.getResponse(), (err) => {
|
|
17
17
|
if (err) {
|
|
18
|
-
const error =
|
|
18
|
+
const error = multer_utils_1.transformException(err);
|
|
19
19
|
return reject(error);
|
|
20
20
|
}
|
|
21
21
|
resolve();
|
|
@@ -23,12 +23,12 @@ function FileFieldsInterceptor(uploadFields, localOptions) {
|
|
|
23
23
|
return next.handle();
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
-
MixinInterceptor =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
MixinInterceptor = tslib_1.__decorate([
|
|
27
|
+
tslib_1.__param(0, common_1.Optional()),
|
|
28
|
+
tslib_1.__param(0, common_1.Inject(files_constants_1.MULTER_MODULE_OPTIONS)),
|
|
29
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
30
30
|
], MixinInterceptor);
|
|
31
|
-
const Interceptor =
|
|
31
|
+
const Interceptor = common_1.mixin(MixinInterceptor);
|
|
32
32
|
return Interceptor;
|
|
33
33
|
}
|
|
34
34
|
exports.FileFieldsInterceptor = FileFieldsInterceptor;
|
|
@@ -15,7 +15,7 @@ function FileInterceptor(fieldName, localOptions) {
|
|
|
15
15
|
const ctx = context.switchToHttp();
|
|
16
16
|
await new Promise((resolve, reject) => this.multer.single(fieldName)(ctx.getRequest(), ctx.getResponse(), (err) => {
|
|
17
17
|
if (err) {
|
|
18
|
-
const error =
|
|
18
|
+
const error = multer_utils_1.transformException(err);
|
|
19
19
|
return reject(error);
|
|
20
20
|
}
|
|
21
21
|
resolve();
|
|
@@ -23,12 +23,12 @@ function FileInterceptor(fieldName, localOptions) {
|
|
|
23
23
|
return next.handle();
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
-
MixinInterceptor =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
MixinInterceptor = tslib_1.__decorate([
|
|
27
|
+
tslib_1.__param(0, common_1.Optional()),
|
|
28
|
+
tslib_1.__param(0, common_1.Inject(files_constants_1.MULTER_MODULE_OPTIONS)),
|
|
29
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
30
30
|
], MixinInterceptor);
|
|
31
|
-
const Interceptor =
|
|
31
|
+
const Interceptor = common_1.mixin(MixinInterceptor);
|
|
32
32
|
return Interceptor;
|
|
33
33
|
}
|
|
34
34
|
exports.FileInterceptor = FileInterceptor;
|
|
@@ -15,7 +15,7 @@ function FilesInterceptor(fieldName, maxCount, localOptions) {
|
|
|
15
15
|
const ctx = context.switchToHttp();
|
|
16
16
|
await new Promise((resolve, reject) => this.multer.array(fieldName, maxCount)(ctx.getRequest(), ctx.getResponse(), (err) => {
|
|
17
17
|
if (err) {
|
|
18
|
-
const error =
|
|
18
|
+
const error = multer_utils_1.transformException(err);
|
|
19
19
|
return reject(error);
|
|
20
20
|
}
|
|
21
21
|
resolve();
|
|
@@ -23,12 +23,12 @@ function FilesInterceptor(fieldName, maxCount, localOptions) {
|
|
|
23
23
|
return next.handle();
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
-
MixinInterceptor =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
MixinInterceptor = tslib_1.__decorate([
|
|
27
|
+
tslib_1.__param(0, common_1.Optional()),
|
|
28
|
+
tslib_1.__param(0, common_1.Inject(files_constants_1.MULTER_MODULE_OPTIONS)),
|
|
29
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
30
30
|
], MixinInterceptor);
|
|
31
|
-
const Interceptor =
|
|
31
|
+
const Interceptor = common_1.mixin(MixinInterceptor);
|
|
32
32
|
return Interceptor;
|
|
33
33
|
}
|
|
34
34
|
exports.FilesInterceptor = FilesInterceptor;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
tslib_1.__exportStar(require("./any-files.interceptor"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./file-fields.interceptor"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./file.interceptor"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./files.interceptor"), exports);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
|
|
4
|
+
tslib_1.__exportStar(require("./files-upload-module.interface"), exports);
|
package/multer/multer.module.js
CHANGED
|
@@ -15,7 +15,7 @@ let MulterModule = MulterModule_1 = class MulterModule {
|
|
|
15
15
|
{ provide: files_constants_1.MULTER_MODULE_OPTIONS, useValue: options },
|
|
16
16
|
{
|
|
17
17
|
provide: multer_constants_1.MULTER_MODULE_ID,
|
|
18
|
-
useValue:
|
|
18
|
+
useValue: random_string_generator_util_1.randomStringGenerator(),
|
|
19
19
|
},
|
|
20
20
|
],
|
|
21
21
|
exports: [files_constants_1.MULTER_MODULE_OPTIONS],
|
|
@@ -29,7 +29,7 @@ let MulterModule = MulterModule_1 = class MulterModule {
|
|
|
29
29
|
...this.createAsyncProviders(options),
|
|
30
30
|
{
|
|
31
31
|
provide: multer_constants_1.MULTER_MODULE_ID,
|
|
32
|
-
useValue:
|
|
32
|
+
useValue: random_string_generator_util_1.randomStringGenerator(),
|
|
33
33
|
},
|
|
34
34
|
],
|
|
35
35
|
exports: [files_constants_1.MULTER_MODULE_OPTIONS],
|
|
@@ -62,7 +62,7 @@ let MulterModule = MulterModule_1 = class MulterModule {
|
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
|
-
MulterModule = MulterModule_1 =
|
|
66
|
-
|
|
65
|
+
MulterModule = MulterModule_1 = tslib_1.__decorate([
|
|
66
|
+
common_1.Module({})
|
|
67
67
|
], MulterModule);
|
|
68
68
|
exports.MulterModule = MulterModule;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestjs/platform-express",
|
|
3
|
-
"version": "8.1
|
|
3
|
+
"version": "8.2.1",
|
|
4
4
|
"description": "Nest - modern, fast, powerful node.js web framework (@platform-express)",
|
|
5
5
|
"author": "Kamil Mysliwiec",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"tslib": "2.3.1"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@nestjs/common": "8.1
|
|
28
|
-
"@nestjs/core": "8.1
|
|
27
|
+
"@nestjs/common": "8.2.1",
|
|
28
|
+
"@nestjs/core": "8.2.1"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"@nestjs/common": "^8.0.0",
|