@aziontech/opennextjs-azion
Version:
Azion builder for next apps
20 lines (19 loc) • 968 B
JavaScript
/**
* This code was originally copied and modified from the @opennextjs/cloudflare repository.
* Significant changes have been made to adapt it for use with Azion.
*/
import { existsSync, readFileSync } from "node:fs";
import { join } from "node:path";
import { getPackagePath } from "@opennextjs/aws/build/helper.js";
/**
* Inlines the middleware manifest from the build output to prevent a dynamic require statement
* as they result in runtime failures.
*/
export function inlineMiddlewareManifestRequire(code, buildOpts) {
const { outputDir } = buildOpts;
const middlewareManifestPath = join(outputDir, "server-functions/default", getPackagePath(buildOpts), ".next/server/middleware-manifest.json");
const middlewareManifest = existsSync(middlewareManifestPath)
? JSON.parse(readFileSync(middlewareManifestPath, "utf-8"))
: {};
return code.replace("require(this.middlewareManifestPath)", JSON.stringify(middlewareManifest));
}