@vercel/remix-builder 2.1.7 → 2.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.
@@ -4,7 +4,11 @@ import {
4
4
  installGlobals,
5
5
  } from '@remix-run/node';
6
6
 
7
- installGlobals();
7
+ installGlobals({
8
+ nativeFetch:
9
+ parseInt(process.versions.node, 10) >= 20 &&
10
+ process.env.VERCEL_REMIX_NATIVE_FETCH === '1',
11
+ });
8
12
 
9
13
  import * as build from '@remix-run/dev/server-build';
10
14
 
@@ -13,11 +17,11 @@ const handleRequest = createRemixRequestHandler(
13
17
  process.env.NODE_ENV
14
18
  );
15
19
 
16
- function createRemixHeaders(requestHeaders) {
20
+ function toWebHeaders(nodeHeaders) {
17
21
  const headers = new Headers();
18
22
 
19
- for (const key in requestHeaders) {
20
- const header = requestHeaders[key];
23
+ for (const key in nodeHeaders) {
24
+ const header = nodeHeaders[key];
21
25
  // set-cookie is an array (maybe others)
22
26
  if (Array.isArray(header)) {
23
27
  for (const value of header) {
@@ -31,8 +35,12 @@ function createRemixHeaders(requestHeaders) {
31
35
  return headers;
32
36
  }
33
37
 
38
+ function toNodeHeaders(webHeaders) {
39
+ return webHeaders.raw?.() || [...webHeaders].flat();
40
+ }
41
+
34
42
  function createRemixRequest(req, res) {
35
- const host = req.headers['x-forwarded-host'] || req.headers['host'];
43
+ const host = req.headers['x-forwarded-host'] || req.headers.host;
36
44
  const protocol = req.headers['x-forwarded-proto'] || 'https';
37
45
  const url = new URL(req.url, `${protocol}://${host}`);
38
46
 
@@ -42,7 +50,7 @@ function createRemixRequest(req, res) {
42
50
 
43
51
  const init = {
44
52
  method: req.method,
45
- headers: createRemixHeaders(req.headers),
53
+ headers: toWebHeaders(req.headers),
46
54
  signal: controller.signal,
47
55
  };
48
56
 
@@ -55,11 +63,10 @@ function createRemixRequest(req, res) {
55
63
 
56
64
  async function sendRemixResponse(res, nodeResponse) {
57
65
  res.statusMessage = nodeResponse.statusText;
58
- let multiValueHeaders = nodeResponse.headers.raw();
59
66
  res.writeHead(
60
67
  nodeResponse.status,
61
68
  nodeResponse.statusText,
62
- multiValueHeaders
69
+ toNodeHeaders(nodeResponse.headers)
63
70
  );
64
71
 
65
72
  if (nodeResponse.body) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercel/remix-builder",
3
- "version": "2.1.7",
3
+ "version": "2.1.8",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/index.js",
6
6
  "homepage": "https://vercel.com/docs",