@vercel/remix-builder 2.1.6 → 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/dist/index.js CHANGED
@@ -3164,6 +3164,7 @@ var build = async ({
3164
3164
  spawnOpts.env = (0, import_build_utils3.getEnvForPackageManager)({
3165
3165
  cliType,
3166
3166
  lockfileVersion,
3167
+ packageJsonPackageManager: packageJson?.packageManager,
3167
3168
  nodeVersion,
3168
3169
  env: spawnOpts.env
3169
3170
  });
@@ -3557,7 +3558,13 @@ var build2 = async ({
3557
3558
  config,
3558
3559
  meta
3559
3560
  );
3560
- const { cliType, packageJsonPath, lockfileVersion, lockfilePath } = await (0, import_build_utils4.scanParentDirs)(entrypointFsDirname);
3561
+ const {
3562
+ cliType,
3563
+ packageJsonPath,
3564
+ packageJson,
3565
+ lockfileVersion,
3566
+ lockfilePath
3567
+ } = await (0, import_build_utils4.scanParentDirs)(entrypointFsDirname, true);
3561
3568
  if (!packageJsonPath) {
3562
3569
  throw new Error("Failed to locate `package.json` file in your project");
3563
3570
  }
@@ -3573,6 +3580,7 @@ var build2 = async ({
3573
3580
  spawnOpts.env = (0, import_build_utils4.getEnvForPackageManager)({
3574
3581
  cliType,
3575
3582
  lockfileVersion,
3583
+ packageJsonPackageManager: packageJson?.packageManager,
3576
3584
  nodeVersion,
3577
3585
  env: spawnOpts.env
3578
3586
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercel/remix-builder",
3
- "version": "2.1.6",
3
+ "version": "2.1.8",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/index.js",
6
6
  "homepage": "https://vercel.com/docs",
@@ -16,7 +16,7 @@
16
16
  ],
17
17
  "dependencies": {
18
18
  "@vercel/error-utils": "2.0.2",
19
- "@vercel/nft": "0.27.0",
19
+ "@vercel/nft": "0.27.2",
20
20
  "@vercel/static-config": "3.0.0",
21
21
  "ts-morph": "12.0.0"
22
22
  },
@@ -25,16 +25,19 @@
25
25
  "@types/jest": "27.5.1",
26
26
  "@types/node": "14.18.33",
27
27
  "@types/semver": "7.3.13",
28
- "@vercel/build-utils": "8.1.0",
28
+ "@vercel/build-utils": "8.2.2",
29
+ "glob": "10.3.16",
29
30
  "jest-junit": "16.0.0",
30
31
  "path-to-regexp": "6.2.1",
31
- "semver": "7.5.2"
32
+ "semver": "7.5.2",
33
+ "vitest": "1.3.1"
32
34
  },
33
35
  "scripts": {
34
36
  "build": "node ../../utils/build-builder.mjs",
35
37
  "test": "jest --reporters=default --reporters=jest-junit --env node --verbose --bail --runInBand",
36
- "test-unit": "pnpm test test/unit.*test.*",
37
- "test-e2e": "pnpm test test/integration-*.test.ts",
38
+ "vitest-run": "vitest",
39
+ "vitest-unit": "glob --absolute 'test/unit/**/*.test.ts'",
40
+ "vitest-e2e": "glob --absolute test/integration-*.test.ts",
38
41
  "type-check": "tsc --noEmit"
39
42
  }
40
43
  }