Skip to content

Commit 042dfd9

Browse files
sommeeeervicb
andauthored
add(patches): Drop babel from getting pulled in by node-environment (#948)
* add(patches): Drop babel from getting pulled in by node-environment * changeset * fix tests * biome * review * Update packages/open-next/src/build/patch/patches/patchNodeEnvironment.ts Co-authored-by: Victor Berchet <[email protected]> * rm import --------- Co-authored-by: Victor Berchet <[email protected]>
1 parent e1048ac commit 042dfd9

File tree

7 files changed

+88
-54
lines changed

7 files changed

+88
-54
lines changed

.changeset/twenty-tools-stare.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@opennextjs/aws": patch
3+
---
4+
5+
add(patches): Drop babel from getting pulled in by node-environment

packages/open-next/src/build/createServerBundle.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ async function generateBundle(
206206
patches.patchEnvVars,
207207
patches.patchBackgroundRevalidation,
208208
patches.patchUseCacheForISR,
209+
patches.patchNodeEnvironment,
209210
...additionalCodePatches,
210211
]);
211212

packages/open-next/src/build/patch/patches/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ export {
77
} from "./patchFetchCacheISR.js";
88
export { patchFetchCacheSetMissingWaitUntil } from "./patchFetchCacheWaitUntil.js";
99
export { patchBackgroundRevalidation } from "./patchBackgroundRevalidation.js";
10+
export { patchNodeEnvironment } from "./patchNodeEnvironment.js";

packages/open-next/src/build/patch/patches/patchNextServer.ts

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,6 @@ fix: |-
5353
`;
5454
}
5555

56-
/**
57-
* Drops `require("./node-environment-extensions/error-inspect");`
58-
*/
59-
export const errorInspectRule = `
60-
rule:
61-
pattern: require("./node-environment-extensions/error-inspect");
62-
fix: |-
63-
// Removed by OpenNext
64-
// require("./node-environment-extensions/error-inspect");
65-
`;
66-
6756
const pathFilter = getCrossPlatformPathRegex(
6857
String.raw`/next/dist/server/next-server\.js$`,
6958
{
@@ -91,12 +80,6 @@ const babelPatches = [
9180
contentFilter: /runEdgeFunction\(/,
9281
patchCode: createPatchCode(createEmptyBodyRule("runEdgeFunction")),
9382
},
94-
// Drop `error-inspect` that pulls babel
95-
{
96-
pathFilter,
97-
contentFilter: /error-inspect/,
98-
patchCode: createPatchCode(errorInspectRule),
99-
},
10083
];
10184

10285
export const patchNextServer: CodePatcher = {
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { getCrossPlatformPathRegex } from "utils/regex.js";
2+
import { createPatchCode } from "../astCodePatcher.js";
3+
import type { CodePatcher } from "../codePatcher.js";
4+
5+
/**
6+
* Drops `require("./node-environment-extensions/error-inspect");`
7+
*
8+
* This is to avoid pulling babel (~4MB)
9+
*/
10+
export const rule = `
11+
rule:
12+
pattern: require("./node-environment-extensions/error-inspect");
13+
fix: |-
14+
// Removed by OpenNext
15+
// require("./node-environment-extensions/error-inspect");
16+
`;
17+
18+
export const patchNodeEnvironment: CodePatcher = {
19+
name: "patch-node-environment-error-inspect",
20+
patches: [
21+
{
22+
pathFilter: getCrossPlatformPathRegex(
23+
String.raw`/next/dist/server/node-environment\.js$`,
24+
{
25+
escape: false,
26+
},
27+
),
28+
contentFilter: /error-inspect/,
29+
patchCode: createPatchCode(rule),
30+
versions: ">=15.0.0",
31+
},
32+
],
33+
};

packages/tests-unit/tests/build/patch/patches/patchNextServer.test.ts

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { patchCode } from "@opennextjs/aws/build/patch/astCodePatcher.js";
22
import {
33
createEmptyBodyRule,
44
disablePreloadingRule,
5-
errorInspectRule,
65
removeMiddlewareManifestRule,
76
} from "@opennextjs/aws/build/patch/patches/patchNextServer.js";
87
import { describe, it } from "vitest";
@@ -943,41 +942,5 @@ class NextNodeServer extends _baseserver.default {
943942
"
944943
`);
945944
});
946-
947-
test("Error Inspect", () => {
948-
const code = `
949-
// This file should be imported before any others. It sets up the environment
950-
// for later imports to work properly.
951-
"use strict";
952-
Object.defineProperty(exports, "__esModule", {
953-
value: true
954-
});
955-
require("./node-environment-baseline");
956-
require("./node-environment-extensions/error-inspect");
957-
require("./node-environment-extensions/random");
958-
require("./node-environment-extensions/date");
959-
require("./node-environment-extensions/web-crypto");
960-
require("./node-environment-extensions/node-crypto");
961-
//# sourceMappingURL=node-environment.js.map
962-
}`;
963-
964-
expect(patchCode(code, errorInspectRule)).toMatchInlineSnapshot(`
965-
"// This file should be imported before any others. It sets up the environment
966-
// for later imports to work properly.
967-
"use strict";
968-
Object.defineProperty(exports, "__esModule", {
969-
value: true
970-
});
971-
require("./node-environment-baseline");
972-
// Removed by OpenNext
973-
// require("./node-environment-extensions/error-inspect");
974-
require("./node-environment-extensions/random");
975-
require("./node-environment-extensions/date");
976-
require("./node-environment-extensions/web-crypto");
977-
require("./node-environment-extensions/node-crypto");
978-
//# sourceMappingURL=node-environment.js.map
979-
}"
980-
`);
981-
});
982945
});
983946
});
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import { rule } from "@opennextjs/aws/build/patch/patches/patchNodeEnvironment.js";
2+
import { computePatchDiff } from "./util.js";
3+
4+
test("nodeEnvironment", () => {
5+
const code = `
6+
// This file should be imported before any others. It sets up the environment
7+
// for later imports to work properly.
8+
"use strict";
9+
Object.defineProperty(exports, "__esModule", {
10+
value: true
11+
});
12+
require("./node-environment-baseline");
13+
require("./node-environment-extensions/error-inspect");
14+
require("./node-environment-extensions/random");
15+
require("./node-environment-extensions/date");
16+
require("./node-environment-extensions/web-crypto");
17+
require("./node-environment-extensions/node-crypto");
18+
if (process.env.NODE_ENV === 'development') {
19+
require('./node-environment-extensions/console-dev');
20+
}
21+
22+
//# sourceMappingURL=node-environment.js.map`;
23+
expect(
24+
computePatchDiff("node-environment.js", code, rule),
25+
).toMatchInlineSnapshot(`
26+
"Index: node-environment.js
27+
===================================================================
28+
--- node-environment.js
29+
+++ node-environment.js
30+
@@ -1,13 +1,13 @@
31+
-
32+
// This file should be imported before any others. It sets up the environment
33+
// for later imports to work properly.
34+
"use strict";
35+
Object.defineProperty(exports, "__esModule", {
36+
value: true
37+
});
38+
require("./node-environment-baseline");
39+
-require("./node-environment-extensions/error-inspect");
40+
+// Removed by OpenNext
41+
+// require("./node-environment-extensions/error-inspect");
42+
require("./node-environment-extensions/random");
43+
require("./node-environment-extensions/date");
44+
require("./node-environment-extensions/web-crypto");
45+
require("./node-environment-extensions/node-crypto");
46+
"
47+
`);
48+
});

0 commit comments

Comments
 (0)