@@ -17,15 +17,13 @@ const path = require('path')
17
17
const { URLSearchParams, URL } = require ( 'url' )
18
18
19
19
const { Bridge } = require ( '@vercel/node-bridge/bridge' )
20
- const { satisfies } = require ( 'semver' )
21
20
22
21
const {
23
22
augmentFsModule,
24
23
getMaxAge,
25
24
getMultiValueHeaders,
26
25
getPrefetchResponse,
27
26
normalizePath,
28
- nextVersionNum,
29
27
} = require ( './handlerUtils' )
30
28
const { overrideRequireHooks, applyRequireHooks } = require ( './requireHooks' )
31
29
const { getNetlifyNextServer } = require ( './server' )
@@ -42,11 +40,20 @@ type MakeHandlerParams = {
42
40
NextServer : NextServerType
43
41
staticManifest : Array < [ string , string ] >
44
42
mode : 'ssr' | 'odb'
43
+ useHooks : boolean
45
44
}
46
45
47
46
// We return a function and then call `toString()` on it to serialise it as the launcher function
48
47
// eslint-disable-next-line max-lines-per-function
49
- const makeHandler = ( { conf, app, pageRoot, NextServer, staticManifest = [ ] , mode = 'ssr' } : MakeHandlerParams ) => {
48
+ const makeHandler = ( {
49
+ conf,
50
+ app,
51
+ pageRoot,
52
+ NextServer,
53
+ staticManifest = [ ] ,
54
+ mode = 'ssr' ,
55
+ useHooks,
56
+ } : MakeHandlerParams ) => {
50
57
// Change working directory into the site root, unless using Nx, which moves the
51
58
// dist directory and handles this itself
52
59
const dir = path . resolve ( __dirname , app )
@@ -63,15 +70,10 @@ const makeHandler = ({ conf, app, pageRoot, NextServer, staticManifest = [], mod
63
70
const { appDir } : ExperimentalConfigWithLegacy = conf . experimental
64
71
// Next 13.4 conditionally uses different React versions and we need to make sure we use the same one
65
72
// With the release of 13.5 experimental.appDir is no longer used.
66
- // we will need to check if appDir is set and Next version before running requireHooks
67
- const runRequireHooks = async ( hook ) =>
68
- await nextVersionNum ( satisfies )
69
- . then ( ( version ) => ( appDir && version ? hook : null ) )
70
- . catch ( ( ) => ( { } ) )
71
-
72
- runRequireHooks ( overrideRequireHooks ( conf . experimental ) )
73
+ // we will need to check if appDir is set and Next version before running requireHook
74
+ if ( appDir && useHooks ) return overrideRequireHooks ( conf . experimental )
73
75
const NetlifyNextServer : NetlifyNextServerType = getNetlifyNextServer ( NextServer )
74
- runRequireHooks ( applyRequireHooks ( ) )
76
+ if ( appDir && useHooks ) return applyRequireHooks ( )
75
77
76
78
const ONE_YEAR_IN_SECONDS = 31536000
77
79
@@ -216,6 +218,7 @@ export const getHandler = ({
216
218
publishDir = '../../../.next' ,
217
219
appDir = '../../..' ,
218
220
nextServerModuleRelativeLocation,
221
+ useHooks,
219
222
} ) : string =>
220
223
// This is a string, but if you have the right editor plugin it should format as js (e.g. bierner.comment-tagged-templates in VS Code)
221
224
javascript /* javascript */ `
@@ -227,7 +230,6 @@ export const getHandler = ({
227
230
228
231
const { Server } = require ( "http" ) ;
229
232
const { promises } = require ( "fs" ) ;
230
- const { satisfies } = require ( 'semver' )
231
233
// We copy the file here rather than requiring from the node module
232
234
const { Bridge } = require ( "./bridge" ) ;
233
235
const { augmentFsModule, getMaxAge, getMultiValueHeaders, getPrefetchResponse, normalizePath, nextVersionNum } = require ( './handlerUtils' )
@@ -244,7 +246,7 @@ export const getHandler = ({
244
246
const pageRoot = path . resolve ( path . join ( __dirname , "${ publishDir } " , "server" ) ) ;
245
247
exports . handler = ${
246
248
isODB
247
- ? `builder((${ makeHandler . toString ( ) } )({ conf: config, app: "${ appDir } ", pageRoot, NextServer, staticManifest, mode: 'odb' }));`
248
- : `(${ makeHandler . toString ( ) } )({ conf: config, app: "${ appDir } ", pageRoot, NextServer, staticManifest, mode: 'ssr' });`
249
+ ? `builder((${ makeHandler . toString ( ) } )({ conf: config, app: "${ appDir } ", pageRoot, NextServer, staticManifest, mode: 'odb', useHooks: ${ useHooks } }));`
250
+ : `(${ makeHandler . toString ( ) } )({ conf: config, app: "${ appDir } ", pageRoot, NextServer, staticManifest, mode: 'ssr', useHooks: ${ useHooks } });`
249
251
}
250
252
`
0 commit comments