From 3b372b6824957cf1fc020befb3bc1320e0ddeb46 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Wed, 30 Oct 2024 18:14:48 +0100 Subject: [PATCH] feat(middleware): add ability to force single build pass --- .changeset/yellow-phones-juggle.md | 5 +++++ packages/open-next/src/build/createMiddleware.ts | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/yellow-phones-juggle.md diff --git a/.changeset/yellow-phones-juggle.md b/.changeset/yellow-phones-juggle.md new file mode 100644 index 000000000..8dd8261a6 --- /dev/null +++ b/.changeset/yellow-phones-juggle.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/aws": patch +--- + +feat(middleware): add ability to force single build pass diff --git a/packages/open-next/src/build/createMiddleware.ts b/packages/open-next/src/build/createMiddleware.ts index 2271b0af4..86ed60b5f 100644 --- a/packages/open-next/src/build/createMiddleware.ts +++ b/packages/open-next/src/build/createMiddleware.ts @@ -14,8 +14,12 @@ import { installDependencies } from "./installDeps.js"; * Compiles the middleware bundle. * * @param options Build Options. + * @param forceOnlyBuildOnce force to build only once. */ -export async function createMiddleware(options: buildHelper.BuildOptions) { +export async function createMiddleware( + options: buildHelper.BuildOptions, + { forceOnlyBuildOnce = false } = {}, +) { logger.info(`Bundling middleware function...`); const { appBuildOutputPath, config, outputDir } = options; @@ -57,6 +61,7 @@ export async function createMiddleware(options: buildHelper.BuildOptions) { defaultConverter: "aws-cloudfront", includeCache: config.dangerous?.enableCacheInterception, additionalExternals: config.edgeExternals, + onlyBuildOnce: forceOnlyBuildOnce === true, }); installDependencies(outputPath, config.middleware?.install);