From 1b3a972873752676ccf7a2db5c132cacb6fbb9f7 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Wed, 29 Jan 2025 09:19:34 +0100 Subject: [PATCH] Dump ESBuild metadata to handler.mjs.meta.json (#295) --- .changeset/four-crabs-carry.md | 8 ++++++++ packages/cloudflare/package.json | 2 +- packages/cloudflare/src/cli/build/bundle-server.ts | 10 +++++++++- pnpm-lock.yaml | 10 +++++----- 4 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 .changeset/four-crabs-carry.md diff --git a/.changeset/four-crabs-carry.md b/.changeset/four-crabs-carry.md new file mode 100644 index 00000000..8670296b --- /dev/null +++ b/.changeset/four-crabs-carry.md @@ -0,0 +1,8 @@ +--- +"@opennextjs/cloudflare": patch +--- + +Dump ESBuild metadata to `handler.mjs.meta.json` + +The ESBuild metadata are written to a file alongside `handler.mjs` +in `.open-next/server-functions/default/...` diff --git a/packages/cloudflare/package.json b/packages/cloudflare/package.json index 1aa61beb..72bcf3ca 100644 --- a/packages/cloudflare/package.json +++ b/packages/cloudflare/package.json @@ -73,7 +73,7 @@ "dependencies": { "@ast-grep/napi": "^0.34.1", "@dotenvx/dotenvx": "catalog:", - "@opennextjs/aws": "https://pkg.pr.new/@opennextjs/aws@712", + "@opennextjs/aws": "https://pkg.pr.new/@opennextjs/aws@715", "enquirer": "^2.4.1", "glob": "catalog:", "ts-morph": "catalog:", diff --git a/packages/cloudflare/src/cli/build/bundle-server.ts b/packages/cloudflare/src/cli/build/bundle-server.ts index c7eb7ebe..db993820 100644 --- a/packages/cloudflare/src/cli/build/bundle-server.ts +++ b/packages/cloudflare/src/cli/build/bundle-server.ts @@ -43,13 +43,14 @@ export async function bundleServer(buildOpts: BuildOptions): Promise { const openNextServer = path.join(outputPath, packagePath, `index.mjs`); const openNextServerBundle = path.join(outputPath, packagePath, `handler.mjs`); - await build({ + const result = await build({ entryPoints: [openNextServer], bundle: true, outfile: openNextServerBundle, format: "esm", target: "esnext", minify: false, + metafile: true, plugins: [ createFixRequiresESBuildPlugin(buildOpts), inlineRequirePagePlugin(buildOpts), @@ -135,6 +136,13 @@ globalThis.__BUILD_TIMESTAMP_MS__ = ${Date.now()}; }, }); + if (result.errors.length > 0) { + result.errors.forEach((error) => console.error(error)); + throw new Error(`There was a problem bundling the server.`); + } + + fs.writeFileSync(openNextServerBundle + ".meta.json", JSON.stringify(result.metafile, null, 2)); + await updateWorkerBundledCode(openNextServerBundle, buildOpts); const isMonorepo = monorepoRoot !== appPath; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c49799e9..f0501b03 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -538,8 +538,8 @@ importers: specifier: 'catalog:' version: 1.31.0 '@opennextjs/aws': - specifier: https://pkg.pr.new/@opennextjs/aws@712 - version: https://pkg.pr.new/@opennextjs/aws@712 + specifier: https://pkg.pr.new/@opennextjs/aws@715 + version: https://pkg.pr.new/@opennextjs/aws@715 enquirer: specifier: ^2.4.1 version: 2.4.1 @@ -2289,8 +2289,8 @@ packages: '@octokit/types@13.6.1': resolution: {integrity: sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==} - '@opennextjs/aws@https://pkg.pr.new/@opennextjs/aws@712': - resolution: {tarball: https://pkg.pr.new/@opennextjs/aws@712} + '@opennextjs/aws@https://pkg.pr.new/@opennextjs/aws@715': + resolution: {tarball: https://pkg.pr.new/@opennextjs/aws@715} version: 3.4.1 hasBin: true @@ -8599,7 +8599,7 @@ snapshots: dependencies: '@octokit/openapi-types': 22.2.0 - '@opennextjs/aws@https://pkg.pr.new/@opennextjs/aws@712': + '@opennextjs/aws@https://pkg.pr.new/@opennextjs/aws@715': dependencies: '@aws-sdk/client-cloudfront': 3.398.0 '@aws-sdk/client-dynamodb': 3.699.0