1
1
import fs from "node:fs" ;
2
- import fsAsync from "node:fs/promises" ;
3
2
import path from "node:path" ;
4
3
4
+ import { loadFunctionsConfigManifest } from "config/util.js" ;
5
5
import logger from "../logger.js" ;
6
6
import type {
7
- FunctionsConfigManifest ,
8
7
MiddlewareInfo ,
9
8
MiddlewareManifest ,
10
9
} from "../types/next-types.js" ;
@@ -38,25 +37,20 @@ export async function createMiddleware(
38
37
) ,
39
38
) as MiddlewareManifest ;
40
39
41
- const middlewareInfo = middlewareManifest . middleware [ "/" ] as
40
+ const edgeMiddlewareInfo = middlewareManifest . middleware [ "/" ] as
42
41
| MiddlewareInfo
43
42
| undefined ;
44
43
45
- if ( ! middlewareInfo ) {
44
+ if ( ! edgeMiddlewareInfo ) {
46
45
// If there is no middleware info, it might be a node middleware
47
- const functionsConfigManifestPath = path . join (
48
- appBuildOutputPath ,
49
- ".next/server/functions-config-manifest.json" ,
46
+ const functionsConfigManifest = loadFunctionsConfigManifest (
47
+ path . join ( appBuildOutputPath , ".next" ) ,
50
48
) ;
51
- const functionsConfigManifest = JSON . parse (
52
- await fsAsync
53
- . readFile ( functionsConfigManifestPath , "utf8" )
54
- . catch ( ( ) => '{"functions":{}, "version": 1}' ) ,
55
- ) as FunctionsConfigManifest ;
56
49
57
50
if ( functionsConfigManifest ?. functions [ "/_middleware" ] ) {
58
- await ( config . middleware ?. external ? buildExternalNodeMiddleware ( options ) : buildBundledNodeMiddleware ( options ) ) ;
59
- return ;
51
+ await ( config . middleware ?. external
52
+ ? buildExternalNodeMiddleware ( options )
53
+ : buildBundledNodeMiddleware ( options ) ) ;
60
54
return ;
61
55
}
62
56
}
@@ -80,7 +74,7 @@ export async function createMiddleware(
80
74
"middleware.js" ,
81
75
) ,
82
76
outfile : path . join ( outputPath , "handler.mjs" ) ,
83
- middlewareInfo,
77
+ middlewareInfo : edgeMiddlewareInfo ,
84
78
options,
85
79
overrides : {
86
80
...config . middleware . override ,
@@ -102,7 +96,7 @@ export async function createMiddleware(
102
96
"edgeFunctionHandler.js" ,
103
97
) ,
104
98
outfile : path . join ( options . buildDir , "middleware.mjs" ) ,
105
- middlewareInfo,
99
+ middlewareInfo : edgeMiddlewareInfo ,
106
100
options,
107
101
onlyBuildOnce : true ,
108
102
name : "middleware" ,
0 commit comments