@nestjs/platform-express 8.2.6 → 8.4.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/Readme.md CHANGED
@@ -54,7 +54,7 @@ With official support, you can get expert help straight from Nest core team. We
54
54
 
55
55
  ## Support
56
56
 
57
- Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
57
+ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support from the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
58
58
 
59
59
  #### Principal Sponsors
60
60
  <table style="text-align:center;"><tr>
@@ -84,7 +84,8 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
84
84
  <a href="https://www.myleodsc.com/" target="_blank"><img src="https://nestjs.com/img/myleo-logo.png" width="180" valign="middle" /></td><td>
85
85
  <a href="https://careers.meetdandy.com/?gh_src=063ba61e3us" target="_blank"><img src="https://nestjs.com/img/dandy-roles-logo.svg" width="150" valign="middle" /></td><td>
86
86
  <a href="https://www.castlecraft.in" target="_blank"><img src="https://nestjs.com/img/castlecraft-logo.png" width="150" valign="middle" /></td>
87
- <td><a href="https://www.tinystacks.com" target="_blank"><img src="https://nestjs.com/img/tinystacks-logo.png#1" width="140" valign="middle" /></td></tr></table>
87
+ <td><a href="https://www.tinystacks.com" target="_blank"><img src="https://nestjs.com/img/tinystacks-logo.png#1" width="140" valign="middle" /></td>
88
+ <td><a href="https://n.inc" target="_blank"><img src="https://nestjs.com/img/n-inc-logo.svg" width="120" valign="middle" /></td></tr></table>
88
89
 
89
90
  #### Sponsors
90
91
 
@@ -118,6 +119,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
118
119
  <td align="center" valign="middle"><a href="https://www.naologic.com/" target="_blank"><img src="https://nestjs.com/img/naologic-logo.svg" width="125" valign="middle" /></a></td>
119
120
  <td align="center" valign="middle"><a href="https://messaged.com/" target="_blank"><img src="https://nestjs.com/img/messaged-logo.png" width="50" valign="middle" /></a></td>
120
121
  <td align="center" valign="middle"><a href="https://triplecore.io" target="_blank"><img src="https://nestjs.com/img/triplecore-logo.svg" width="50" valign="middle" /></a></td>
122
+ <td align="center" valign="middle"><a href="https://klqc.de" target="_blank"><img src="https://nestjs.com/img/klcqcl-logo.png" width="120" valign="middle" /></a></td>
123
+ <td align="center" valign="middle"><a href="https://thecasinowizard.com/bonuses/no-deposit-bonuses/" target="_blank"><img src="https://nestjs.com/img/casinowizard-logo.png" width="120" valign="middle" /></a></td></tr><tr>
124
+ <td align="center" valign="middle"><a href="https://polygon-software.ch/" target="_blank"><img src="https://nestjs.com/img/polygon-logo.svg" width="120" valign="middle" /></a></td>
125
+ <td align="center" valign="middle"><a href="https://mobilereality.pl/" target="_blank"><img src="https://nestjs.com/img/mobile-reality-logo.png" width="45" valign="middle" /></a></td>
126
+ <td align="center" valign="middle"><a href="https://boringowl.io/" target="_blank"><img src="https://nestjs.com/img/boringowl-logo.svg" width="120" valign="middle" /></a></td>
121
127
  </tr></table>
122
128
 
123
129
  ## Backers
@@ -25,12 +25,18 @@ class ExpressAdapter extends http_adapter_1.AbstractHttpAdapter {
25
25
  }
26
26
  if (body instanceof common_1.StreamableFile) {
27
27
  const streamHeaders = body.getHeaders();
28
- if (response.getHeader('Content-Type') === undefined) {
28
+ if (response.getHeader('Content-Type') === undefined &&
29
+ streamHeaders.type !== undefined) {
29
30
  response.setHeader('Content-Type', streamHeaders.type);
30
31
  }
31
- if (response.getHeader('Content-Disposition') === undefined) {
32
+ if (response.getHeader('Content-Disposition') === undefined &&
33
+ streamHeaders.disposition !== undefined) {
32
34
  response.setHeader('Content-Disposition', streamHeaders.disposition);
33
35
  }
36
+ if (response.getHeader('Content-Length') === undefined &&
37
+ streamHeaders.length !== undefined) {
38
+ response.setHeader('Content-Length', streamHeaders.length);
39
+ }
34
40
  return body.getStream().pipe(response);
35
41
  }
36
42
  return shared_utils_1.isObject(body) ? response.json(body) : response.send(String(body));
@@ -137,6 +143,34 @@ class ExpressAdapter extends http_adapter_1.AbstractHttpAdapter {
137
143
  if (versioningOptions.type === common_1.VersioningType.URI) {
138
144
  return handler(req, res, next);
139
145
  }
146
+ // Custom Extractor Versioning Handler
147
+ if (versioningOptions.type === common_1.VersioningType.CUSTOM) {
148
+ const extractedVersion = versioningOptions.extractor(req);
149
+ if (Array.isArray(version)) {
150
+ if (Array.isArray(extractedVersion) &&
151
+ version.filter(v => extractedVersion.includes(v)).length) {
152
+ return handler(req, res, next);
153
+ }
154
+ else if (shared_utils_1.isString(extractedVersion) &&
155
+ version.includes(extractedVersion)) {
156
+ return handler(req, res, next);
157
+ }
158
+ }
159
+ else if (shared_utils_1.isString(version)) {
160
+ // Known bug here - if there are multiple versions supported across separate
161
+ // handlers/controllers, we can't select the highest matching handler.
162
+ // Since this code is evaluated per-handler, then we can't see if the highest
163
+ // specified version exists in a different handler.
164
+ if (Array.isArray(extractedVersion) &&
165
+ extractedVersion.includes(version)) {
166
+ return handler(req, res, next);
167
+ }
168
+ else if (shared_utils_1.isString(extractedVersion) &&
169
+ version === extractedVersion) {
170
+ return handler(req, res, next);
171
+ }
172
+ }
173
+ }
140
174
  // Media Type (Accept Header) Versioning Handler
141
175
  if (versioningOptions.type === common_1.VersioningType.MEDIA_TYPE) {
142
176
  const MEDIA_TYPE_HEADER = 'Accept';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestjs/platform-express",
3
- "version": "8.2.6",
3
+ "version": "8.4.0",
4
4
  "description": "Nest - modern, fast, powerful node.js web framework (@platform-express)",
5
5
  "author": "Kamil Mysliwiec",
6
6
  "license": "MIT",
@@ -17,15 +17,15 @@
17
17
  "access": "public"
18
18
  },
19
19
  "dependencies": {
20
- "body-parser": "1.19.1",
20
+ "body-parser": "1.19.2",
21
21
  "cors": "2.8.5",
22
- "express": "4.17.2",
22
+ "express": "4.17.3",
23
23
  "multer": "1.4.4",
24
24
  "tslib": "2.3.1"
25
25
  },
26
26
  "devDependencies": {
27
- "@nestjs/common": "8.2.6",
28
- "@nestjs/core": "8.2.6"
27
+ "@nestjs/common": "8.4.0",
28
+ "@nestjs/core": "8.4.0"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "@nestjs/common": "^8.0.0",
package/CHANGELOG.md DELETED
@@ -1,12 +0,0 @@
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))