@whatwg-node/server 0.8.10 → 0.8.11-alpha-20230613182236-ce4ebc7

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.
Files changed (3) hide show
  1. package/cjs/utils.js +12 -19
  2. package/esm/utils.js +12 -19
  3. package/package.json +2 -2
package/cjs/utils.js CHANGED
@@ -145,20 +145,6 @@ function endResponse(serverResponse) {
145
145
  // @ts-expect-error Avoid arguments adaptor trampoline https://v8.dev/blog/adaptor-frame
146
146
  serverResponse.end(null, null, null);
147
147
  }
148
- function getHeadersArray(headers) {
149
- const headersArray = [];
150
- headers.forEach((value, key) => {
151
- if (key === 'set-cookie') {
152
- const setCookieValues = value.split(',');
153
- setCookieValues.forEach(setCookieValue => {
154
- headersArray.push('set-cookie', setCookieValue.trim());
155
- });
156
- return;
157
- }
158
- headersArray.push(key, value);
159
- });
160
- return headersArray;
161
- }
162
148
  async function sendAsyncIterable(serverResponse, asyncIterable) {
163
149
  for await (const chunk of asyncIterable) {
164
150
  if (!serverResponse
@@ -170,12 +156,19 @@ async function sendAsyncIterable(serverResponse, asyncIterable) {
170
156
  endResponse(serverResponse);
171
157
  }
172
158
  function sendNodeResponse(fetchResponse, serverResponse, nodeRequest) {
173
- serverResponse.writeHead(fetchResponse.status, fetchResponse.statusText,
174
- // @ts-expect-error Node supports arrays as headers
175
- getHeadersArray(fetchResponse.headers));
159
+ fetchResponse.headers.forEach((value, key) => {
160
+ if (key === 'set-cookie') {
161
+ const setCookieValues = value.split(',');
162
+ serverResponse.setHeader('set-cookie', setCookieValues);
163
+ return;
164
+ }
165
+ serverResponse.setHeader(key, value);
166
+ });
167
+ serverResponse.statusCode = fetchResponse.status;
168
+ serverResponse.statusMessage = fetchResponse.statusText;
176
169
  // Optimizations for node-fetch
177
- if (fetchResponse.bodyType === 'Buffer' ||
178
- fetchResponse.bodyType === 'String' ||
170
+ if (fetchResponse.bodyType === 'String' ||
171
+ fetchResponse.bodyType === 'Buffer' ||
179
172
  fetchResponse.bodyType === 'Uint8Array') {
180
173
  // @ts-expect-error http and http2 writes are actually compatible
181
174
  serverResponse.write(fetchResponse.bodyInit);
package/esm/utils.js CHANGED
@@ -135,20 +135,6 @@ function endResponse(serverResponse) {
135
135
  // @ts-expect-error Avoid arguments adaptor trampoline https://v8.dev/blog/adaptor-frame
136
136
  serverResponse.end(null, null, null);
137
137
  }
138
- function getHeadersArray(headers) {
139
- const headersArray = [];
140
- headers.forEach((value, key) => {
141
- if (key === 'set-cookie') {
142
- const setCookieValues = value.split(',');
143
- setCookieValues.forEach(setCookieValue => {
144
- headersArray.push('set-cookie', setCookieValue.trim());
145
- });
146
- return;
147
- }
148
- headersArray.push(key, value);
149
- });
150
- return headersArray;
151
- }
152
138
  async function sendAsyncIterable(serverResponse, asyncIterable) {
153
139
  for await (const chunk of asyncIterable) {
154
140
  if (!serverResponse
@@ -160,12 +146,19 @@ async function sendAsyncIterable(serverResponse, asyncIterable) {
160
146
  endResponse(serverResponse);
161
147
  }
162
148
  export function sendNodeResponse(fetchResponse, serverResponse, nodeRequest) {
163
- serverResponse.writeHead(fetchResponse.status, fetchResponse.statusText,
164
- // @ts-expect-error Node supports arrays as headers
165
- getHeadersArray(fetchResponse.headers));
149
+ fetchResponse.headers.forEach((value, key) => {
150
+ if (key === 'set-cookie') {
151
+ const setCookieValues = value.split(',');
152
+ serverResponse.setHeader('set-cookie', setCookieValues);
153
+ return;
154
+ }
155
+ serverResponse.setHeader(key, value);
156
+ });
157
+ serverResponse.statusCode = fetchResponse.status;
158
+ serverResponse.statusMessage = fetchResponse.statusText;
166
159
  // Optimizations for node-fetch
167
- if (fetchResponse.bodyType === 'Buffer' ||
168
- fetchResponse.bodyType === 'String' ||
160
+ if (fetchResponse.bodyType === 'String' ||
161
+ fetchResponse.bodyType === 'Buffer' ||
169
162
  fetchResponse.bodyType === 'Uint8Array') {
170
163
  // @ts-expect-error http and http2 writes are actually compatible
171
164
  serverResponse.write(fetchResponse.bodyInit);
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@whatwg-node/server",
3
- "version": "0.8.10",
3
+ "version": "0.8.11-alpha-20230613182236-ce4ebc7",
4
4
  "description": "Fetch API compliant HTTP Server adapter",
5
5
  "sideEffects": false,
6
6
  "dependencies": {
7
- "@whatwg-node/fetch": "^0.9.6",
7
+ "@whatwg-node/fetch": "0.9.7-alpha-20230613182236-ce4ebc7",
8
8
  "tslib": "^2.3.1"
9
9
  },
10
10
  "repository": {