1- import fs from "node:fs" ;
2- import path from "node:path" ;
3-
41import {
52 buildNextjsApp ,
63 setStandaloneBuildMode ,
@@ -12,11 +9,11 @@ import { createImageOptimizationBundle } from "./build/createImageOptimizationBu
129import { createMiddleware } from "./build/createMiddleware.js" ;
1310import { createRevalidationBundle } from "./build/createRevalidationBundle.js" ;
1411import { createServerBundle } from "./build/createServerBundle.js" ;
12+ import { createWarmerBundle } from "./build/createWarmerBundle.js" ;
1513import { generateOutput } from "./build/generateOutput.js" ;
1614import * as buildHelper from "./build/helper.js" ;
1715import { printHeader } from "./build/utils.js" ;
1816import logger from "./logger.js" ;
19- import { openNextResolvePlugin } from "./plugins/resolve.js" ;
2017
2118export type PublicFiles = {
2219 files : string [ ] ;
@@ -74,48 +71,3 @@ export async function build(
7471 await generateOutput ( options ) ;
7572 logger . info ( "OpenNext build complete." ) ;
7673}
77-
78- async function createWarmerBundle ( options : buildHelper . BuildOptions ) {
79- logger . info ( `Bundling warmer function...` ) ;
80-
81- const { config, outputDir } = options ;
82-
83- // Create output folder
84- const outputPath = path . join ( outputDir , "warmer-function" ) ;
85- fs . mkdirSync ( outputPath , { recursive : true } ) ;
86-
87- // Copy open-next.config.mjs into the bundle
88- buildHelper . copyOpenNextConfig ( options . buildDir , outputPath ) ;
89-
90- // Build Lambda code
91- // note: bundle in OpenNext package b/c the adatper relys on the
92- // "serverless-http" package which is not a dependency in user's
93- // Next.js app.
94- await buildHelper . esbuildAsync (
95- {
96- entryPoints : [
97- path . join ( options . openNextDistDir , "adapters" , "warmer-function.js" ) ,
98- ] ,
99- external : [ "next" ] ,
100- outfile : path . join ( outputPath , "index.mjs" ) ,
101- plugins : [
102- openNextResolvePlugin ( {
103- overrides : {
104- converter : config . warmer ?. override ?. converter ?? "dummy" ,
105- wrapper : config . warmer ?. override ?. wrapper ,
106- } ,
107- fnName : "warmer" ,
108- } ) ,
109- ] ,
110- banner : {
111- js : [
112- "import { createRequire as topLevelCreateRequire } from 'module';" ,
113- "const require = topLevelCreateRequire(import.meta.url);" ,
114- "import bannerUrl from 'url';" ,
115- "const __dirname = bannerUrl.fileURLToPath(new URL('.', import.meta.url));" ,
116- ] . join ( "" ) ,
117- } ,
118- } ,
119- options ,
120- ) ;
121- }
0 commit comments