From 43e436503cc3765ff9ad4a0a333cec9f1774dffb Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Tue, 29 Oct 2024 09:57:42 +0100 Subject: [PATCH 1/2] refactor: minor cleanup --- packages/open-next/src/build/compileConfig.ts | 4 ++-- .../open-next/src/build/copyTracedFiles.ts | 4 ++-- .../src/core/createGenericHandler.ts | 10 +++++----- .../open-next/src/core/createMainHandler.ts | 12 ++++++----- .../src/overrides/wrappers/cloudflare.ts | 2 +- packages/open-next/src/plugins/edge.ts | 20 ++++++++----------- packages/open-next/src/plugins/replacement.ts | 7 +++---- 7 files changed, 28 insertions(+), 31 deletions(-) diff --git a/packages/open-next/src/build/compileConfig.ts b/packages/open-next/src/build/compileConfig.ts index 65aab6672..60aec6284 100644 --- a/packages/open-next/src/build/compileConfig.ts +++ b/packages/open-next/src/build/compileConfig.ts @@ -70,6 +70,7 @@ export function compileOpenNextConfigNode( externals: string[], ) { const outputPath = path.join(outputDir, "open-next.config.mjs"); + logger.info("Compiling open-next.config.ts for Node.", outputPath); //Check if open-next.config.ts exists if (!fs.existsSync(sourcePath)) { @@ -105,8 +106,8 @@ export function compileOpenNextConfigEdge( externals: string[], ) { const outputPath = path.join(outputDir, "open-next.config.edge.mjs"); - logger.info("Compiling open-next.config.ts for edge runtime.", outputPath); + buildSync({ entryPoints: [sourcePath], outfile: outputPath, @@ -117,5 +118,4 @@ export function compileOpenNextConfigEdge( platform: "browser", external: externals, }); - logger.info("Compiled open-next.config.ts for edge runtime."); } diff --git a/packages/open-next/src/build/copyTracedFiles.ts b/packages/open-next/src/build/copyTracedFiles.ts index e60a8a061..dfae18b4d 100644 --- a/packages/open-next/src/build/copyTracedFiles.ts +++ b/packages/open-next/src/build/copyTracedFiles.ts @@ -96,7 +96,7 @@ export async function copyTracedFiles( ` -------------------------------------------------------------------------------- ${pagePath} cannot use the edge runtime. -OpenNext requires edge runtime function to be defined in a separate function. +OpenNext requires edge runtime function to be defined in a separate function. See the docs for more information on how to bundle edge runtime functions. -------------------------------------------------------------------------------- `, @@ -117,7 +117,7 @@ File ${fullFilePath} does not exist filesToCopy.set(f, f.replace(standaloneDir, outputDir)); }); - if (!existsSync(path.join(standaloneNextDir, `${fullFilePath}`))) { + if (!existsSync(path.join(standaloneNextDir, fullFilePath))) { throw new Error( `This error should only happen for static 404 and 500 page from page router. Report this if that's not the case., File ${fullFilePath} does not exist`, diff --git a/packages/open-next/src/core/createGenericHandler.ts b/packages/open-next/src/core/createGenericHandler.ts index a9a3fa08c..df871e7bc 100644 --- a/packages/open-next/src/core/createGenericHandler.ts +++ b/packages/open-next/src/core/createGenericHandler.ts @@ -45,12 +45,12 @@ export async function createGenericHandler< const override = config[handler.type] ?.override as any as DefaultOverrideOptions; - // From the config, we create the adapter - const adapter = await resolveConverter(override?.converter); + // From the config, we create the converter + const converter = await resolveConverter(override?.converter); // Then we create the handler - const wrapper = await resolveWrapper(override?.wrapper); - debug("Using wrapper", wrapper.name); + const { name, wrapper } = await resolveWrapper(override?.wrapper); + debug("Using wrapper", name); - return wrapper.wrapper(handler.handler, adapter); + return wrapper(handler.handler, converter); } diff --git a/packages/open-next/src/core/createMainHandler.ts b/packages/open-next/src/core/createMainHandler.ts index 6763668d7..5578fd4e7 100644 --- a/packages/open-next/src/core/createMainHandler.ts +++ b/packages/open-next/src/core/createMainHandler.ts @@ -53,13 +53,15 @@ export async function createMainHandler() { globalThis.lastModified = {}; - // From the config, we create the adapter - const adapter = await resolveConverter(thisFunction.override?.converter); + // From the config, we create the converter + const converter = await resolveConverter(thisFunction.override?.converter); // Then we create the handler - const wrapper = await resolveWrapper(thisFunction.override?.wrapper); + const { wrapper, name } = await resolveWrapper( + thisFunction.override?.wrapper, + ); - debug("Using wrapper", wrapper.name); + debug("Using wrapper", name); - return wrapper.wrapper(openNextHandler, adapter); + return wrapper(openNextHandler, converter); } diff --git a/packages/open-next/src/overrides/wrappers/cloudflare.ts b/packages/open-next/src/overrides/wrappers/cloudflare.ts index 55a217246..91eedbc7f 100644 --- a/packages/open-next/src/overrides/wrappers/cloudflare.ts +++ b/packages/open-next/src/overrides/wrappers/cloudflare.ts @@ -15,7 +15,7 @@ const handler: WrapperHandler< globalThis.process = process; // Set the environment variables - // Cloudlare suggests to not override the process.env object but instead apply the values to it + // Cloudflare suggests to not override the process.env object but instead apply the values to it for (const [key, value] of Object.entries(env)) { if (typeof value === "string") { process.env[key] = value; diff --git a/packages/open-next/src/plugins/edge.ts b/packages/open-next/src/plugins/edge.ts index fb8ab805c..cce2dcdf3 100644 --- a/packages/open-next/src/plugins/edge.ts +++ b/packages/open-next/src/plugins/edge.ts @@ -25,7 +25,8 @@ export interface IPluginSettings { /** * @param opts.nextDir - The path to the .next directory * @param opts.edgeFunctionHandlerPath - The path to the edgeFunctionHandler.js file that we'll use to bundle the routing - * @param opts.middlewareInfo - The entry files that we'll inject into the edgeFunctionHandler.js file + * @param opts.middlewareInfo - Information about the middleware + * @param opts.isInCloudfare - Whether the code runs on the cloudflare runtime * @returns */ export function openNextEdgePlugins({ @@ -80,12 +81,10 @@ export function openNextEdgePlugins({ // they import from `export * from "node:*";` build.onLoad( { filter: /.*/, namespace: "node-built-in-modules" }, - ({ path }) => { - return { - contents: `export * from '${path}'`, - loader: "js", - }; - }, + ({ path }) => ({ + contents: `export * from '${path}'`, + loader: "js", + }), ); // We inject the entry files into the edgeFunctionHandler @@ -190,11 +189,8 @@ ${contents} export const MiddlewareManifest = ${JSON.stringify(MiddlewareManifest)}; 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 55beb52cd..5a4818e93 100644 --- a/packages/open-next/src/plugins/replacement.ts +++ b/packages/open-next/src/plugins/replacement.ts @@ -72,9 +72,8 @@ export function openNextReplacementPlugin({ ); contents = contents.replace(pattern, ""); }), - ...(replacements ?? []).map(async (fp) => { - const p = fp; - const replacementFile = await readFile(p, "utf-8"); + ...(replacements ?? []).map(async (filename) => { + const replacementFile = await readFile(filename, "utf-8"); const matches = replacementFile.matchAll(overridePattern); const importMatch = replacementFile.match(importPattern); @@ -91,7 +90,7 @@ export function openNextReplacementPlugin({ ); logger.debug( chalk.blue(`Open-next replacement plugin ${name}`), - `-- Applying override for ${id} from ${fp}`, + `-- Applying override for ${id} from ${filename}`, ); contents = contents.replace(pattern, replacement); } From 040328cf657ae0ba7a41c1786301ea6da3d9eba1 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Tue, 29 Oct 2024 12:18:23 +0100 Subject: [PATCH 2/2] fixup! info -> debug for config compilation --- packages/open-next/src/build/compileConfig.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/open-next/src/build/compileConfig.ts b/packages/open-next/src/build/compileConfig.ts index 60aec6284..f4a9b3b1d 100644 --- a/packages/open-next/src/build/compileConfig.ts +++ b/packages/open-next/src/build/compileConfig.ts @@ -70,7 +70,7 @@ export function compileOpenNextConfigNode( externals: string[], ) { const outputPath = path.join(outputDir, "open-next.config.mjs"); - logger.info("Compiling open-next.config.ts for Node.", outputPath); + logger.debug("Compiling open-next.config.ts for Node.", outputPath); //Check if open-next.config.ts exists if (!fs.existsSync(sourcePath)) { @@ -106,7 +106,7 @@ export function compileOpenNextConfigEdge( externals: string[], ) { const outputPath = path.join(outputDir, "open-next.config.edge.mjs"); - logger.info("Compiling open-next.config.ts for edge runtime.", outputPath); + logger.debug("Compiling open-next.config.ts for edge runtime.", outputPath); buildSync({ entryPoints: [sourcePath],