Skip to content

Commit 2e3dbfb

Browse files
committed
feat: provide common js globals to esm context
1 parent a092ab0 commit 2e3dbfb

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

src/lib/esbuild/buildOptimizer.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { knownCjs } from "./knownCjs";
44
const awsSdkV2 = "aws-sdk";
55
const awsSdkV3 = "@aws-sdk/*";
66
const awslambda = `${__dirname.slice(0, -5)}/src/lib/runtime/awslambda.ts`;
7+
const requirePoly = (nodePrefix: "node:" | "") =>
8+
`import { createRequire as __crE_ } from "${nodePrefix}module";import { fileURLToPath as __futP_ } from "${nodePrefix}url";import { dirname as __dN_ } from "${nodePrefix}path";global.__filename = __futP_(import.meta.url);global.__dirname = __dN_(__filename);global.require = __crE_(__filename);\n`;
79

810
export const buildOptimizer = ({
911
isLocal,
@@ -50,6 +52,23 @@ export const buildOptimizer = ({
5052
} else {
5153
build.initialOptions.external!.push(nodeVersion < 18 ? awsSdkV2 : awsSdkV3);
5254
}
55+
56+
if (build.initialOptions.format != "esm") {
57+
return;
58+
}
59+
60+
const r = requirePoly(nodeVersion < 18 ? "" : "node:");
61+
if (build.initialOptions.banner) {
62+
if (build.initialOptions.banner.js) {
63+
build.initialOptions.banner.js = `${r}${build.initialOptions.banner.js}`;
64+
} else {
65+
build.initialOptions.banner.js = r;
66+
}
67+
} else {
68+
build.initialOptions.banner = {
69+
js: r,
70+
};
71+
}
5372
},
5473
};
5574
};

0 commit comments

Comments
 (0)