diff --git a/.changeset/thirty-donuts-buy.md b/.changeset/thirty-donuts-buy.md new file mode 100644 index 000000000..ce2059e5b --- /dev/null +++ b/.changeset/thirty-donuts-buy.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/aws": patch +--- + +Fix esbuild edge plugins not matching Windows paths. diff --git a/packages/open-next/src/plugins/edge.ts b/packages/open-next/src/plugins/edge.ts index 325c5f896..c31d970ce 100644 --- a/packages/open-next/src/plugins/edge.ts +++ b/packages/open-next/src/plugins/edge.ts @@ -58,7 +58,7 @@ export function openNextEdgePlugins({ logger.debug(chalk.blue("OpenNext Edge plugin")); if (edgeFunctionHandlerPath) { // If we bundle the routing, we need to resolve the middleware - build.onResolve({ filter: /\.\/middleware.mjs/g }, () => { + build.onResolve({ filter: /\.(\/|\\)middleware.mjs/g }, () => { return { path: edgeFunctionHandlerPath, }; @@ -93,9 +93,11 @@ export function openNextEdgePlugins({ ); // We inject the entry files into the edgeFunctionHandler - build.onLoad({ filter: /\/edgeFunctionHandler.js/g }, async (args) => { - let contents = readFileSync(args.path, "utf-8"); - contents = ` + build.onLoad( + { filter: /(\/|\\)edgeFunctionHandler.js/g }, + async (args) => { + let contents = readFileSync(args.path, "utf-8"); + contents = ` globalThis._ENTRIES = {}; globalThis.self = globalThis; globalThis._ROUTES = ${JSON.stringify(routes)}; @@ -155,24 +157,27 @@ ${wasmFiles ${entryFiles.map((file) => `require("${file}");`).join("\n")} ${contents} `; - return { - contents, - }; - }); + return { + contents, + }; + }, + ); - build.onLoad({ filter: /adapters\/config\/index/g }, async () => { - const NextConfig = loadConfig(nextDir); - const BuildId = loadBuildId(nextDir); - const HtmlPages = loadHtmlPages(nextDir); - const RoutesManifest = loadRoutesManifest(nextDir); - const ConfigHeaders = loadConfigHeaders(nextDir); - const PrerenderManifest = loadPrerenderManifest(nextDir); - const AppPathsManifestKeys = loadAppPathsManifestKeys(nextDir); - const MiddlewareManifest = loadMiddlewareManifest(nextDir); - const AppPathsManifest = loadAppPathsManifest(nextDir); - const AppPathRoutesManifest = loadAppPathRoutesManifest(nextDir); - - const contents = ` + build.onLoad( + { filter: /adapters(\/|\\)config(\/|\\)index/g }, + async () => { + const NextConfig = loadConfig(nextDir); + const BuildId = loadBuildId(nextDir); + const HtmlPages = loadHtmlPages(nextDir); + const RoutesManifest = loadRoutesManifest(nextDir); + const ConfigHeaders = loadConfigHeaders(nextDir); + const PrerenderManifest = loadPrerenderManifest(nextDir); + const AppPathsManifestKeys = loadAppPathsManifestKeys(nextDir); + const MiddlewareManifest = loadMiddlewareManifest(nextDir); + const AppPathsManifest = loadAppPathsManifest(nextDir); + const AppPathRoutesManifest = loadAppPathRoutesManifest(nextDir); + + const contents = ` import path from "node:path"; import { debug } from "../logger"; @@ -198,8 +203,9 @@ ${contents} process.env.NEXT_BUILD_ID = BuildId; `; - return { contents }; - }); + return { contents }; + }, + ); }, }; } diff --git a/packages/open-next/src/plugins/replacement.ts b/packages/open-next/src/plugins/replacement.ts index 897c1a2c5..7e6a771e9 100644 --- a/packages/open-next/src/plugins/replacement.ts +++ b/packages/open-next/src/plugins/replacement.ts @@ -18,7 +18,7 @@ const importPattern = /\/\/#import([\s\S]*?)\n\/\/#endImport/gm; /** * * openNextPlugin({ - * target: /plugins\/default\.js/g, + * target: /plugins(\/|\\)default\.js/g, * replacements: [require.resolve("./plugins/default.js")], * deletes: ["id1"], * })