@@ -13,6 +13,9 @@ import {
13
13
IMAGE_FUNCTION_NAME ,
14
14
DEFAULT_FUNCTIONS_SRC ,
15
15
NEXT_PLUGIN_NAME ,
16
+ HANDLER_FUNCTION_TITLE ,
17
+ ODB_FUNCTION_TITLE ,
18
+ IMAGE_FUNCTION_TITLE ,
16
19
} from '../constants'
17
20
import { getApiHandler } from '../templates/getApiHandler'
18
21
import { getHandler } from '../templates/getHandler'
@@ -28,24 +31,27 @@ export interface ApiRouteConfig {
28
31
compiled : string
29
32
}
30
33
31
- const writeGeneratorField = async ( functionName : string , functionTitle : string , functionsDir : string ) => {
32
- const pluginPackagePath = '.netlify/plugins/package.json' || './package.json'
33
- let nextPlugin
34
+ const checkForPackage = async ( packageDir : string ) => {
35
+ const packagePlugin = existsSync ( packageDir ) ? await readJSON ( packageDir ) : null
36
+ const nextPlugin = packagePlugin ? packagePlugin . dependencies [ '@netlify/plugin-nextjs' ] : null
37
+ return nextPlugin
38
+ }
34
39
35
- if ( existsSync ( pluginPackagePath ) ) {
36
- const packagePlugin = await readJSON ( pluginPackagePath )
37
- nextPlugin = packagePlugin . dependencies [ '@netlify/plugin-nextjs' ]
38
- }
40
+ const writeFunctionConfiguration = async ( functionName : string , functionTitle : string , functionsDir : string ) => {
41
+ const pluginPackagePath = '.netlify/plugins/package.json'
42
+ const depsPackagePath = './package.json'
43
+
44
+ const nextPluginVersion = ( await checkForPackage ( pluginPackagePath ) ) || ( await checkForPackage ( depsPackagePath ) )
39
45
40
- const generator = {
46
+ const metadata = {
41
47
config : {
42
48
name : functionTitle ,
43
- generator : nextPlugin ? `${ NEXT_PLUGIN_NAME } @${ nextPlugin } ` : 'Plugin Not Found' ,
49
+ generator : nextPluginVersion ? `${ NEXT_PLUGIN_NAME } @${ nextPluginVersion } ` : 'Plugin Not Found' ,
44
50
} ,
45
- version : nextPlugin || 'Version Not Found' ,
51
+ version : 1 ,
46
52
}
47
53
48
- await writeFile ( join ( functionsDir , functionName , `${ functionName } .json` ) , JSON . stringify ( generator ) )
54
+ await writeFile ( join ( functionsDir , functionName , `${ functionName } .json` ) , JSON . stringify ( metadata ) )
49
55
}
50
56
51
57
export const generateFunctions = async (
@@ -97,11 +103,11 @@ export const generateFunctions = async (
97
103
join ( __dirname , '..' , '..' , 'lib' , 'templates' , 'handlerUtils.js' ) ,
98
104
join ( functionsDir , functionName , 'handlerUtils.js' ) ,
99
105
)
100
- writeGeneratorField ( functionName , functionTitle , functionsDir )
106
+ writeFunctionConfiguration ( functionName , functionTitle , functionsDir )
101
107
}
102
108
103
- await writeHandler ( HANDLER_FUNCTION_NAME , 'Next.js SSR handler' , false )
104
- await writeHandler ( ODB_FUNCTION_NAME , 'Next.js ISR handler' , true )
109
+ await writeHandler ( HANDLER_FUNCTION_NAME , HANDLER_FUNCTION_TITLE , false )
110
+ await writeHandler ( ODB_FUNCTION_NAME , ODB_FUNCTION_TITLE , 'Next.js ISR handler' , true )
105
111
}
106
112
107
113
/**
@@ -165,7 +171,7 @@ export const setupImageFunction = async ({
165
171
} )
166
172
167
173
await copyFile ( join ( __dirname , '..' , '..' , 'lib' , 'templates' , 'ipx.js' ) , join ( functionDirectory , functionName ) )
168
- writeGeneratorField ( functionName . replace ( '.js' , '' ) , 'next/image handler' , functionsPath )
174
+ writeFunctionConfiguration ( functionName . replace ( '.js' , '' ) , IMAGE_FUNCTION_TITLE , functionsPath )
169
175
170
176
// If we have edge functions then the request will have already been rewritten
171
177
// so this won't match. This is matched if edge is disabled or unavailable.
0 commit comments