Skip to content

Commit 276f327

Browse files
committed
fix: make sure appDir exists before running requireHooks
1 parent 3f4bed7 commit 276f327

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

packages/runtime/src/helpers/utils.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ export const getFunctionNameForPage = (page: string, background = false) =>
2424
.replace(DYNAMIC_PARAMETER_REGEX, '_$1-PARAM')
2525
.replace(RESERVED_FILENAME, '_')}-${background ? 'background' : 'handler'}`
2626

27-
type ExperimentalConfigWithLegacy = ExperimentalConfig & {
27+
export type ExperimentalConfigWithLegacy = ExperimentalConfig & {
2828
images?: Pick<ImageConfigComplete, 'remotePatterns'>
29+
appDir?: boolean
2930
}
3031

3132
export const toNetlifyRoute = (nextRoute: string): Array<string> => {

packages/runtime/src/templates/getHandler.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type { Bridge as NodeBridge } from '@vercel/node-bridge/bridge'
44
import { outdent as javascript } from 'outdent'
55

66
import type { NextConfig } from '../helpers/config'
7+
import { ExperimentalConfigWithLegacy } from '../helpers/utils'
78

89
import type { NextServerType } from './handlerUtils'
910
import type { NetlifyNextServerType } from './server'
@@ -57,10 +58,13 @@ const makeHandler = ({ conf, app, pageRoot, NextServer, staticManifest = [], mod
5758
require.resolve('./pages.js')
5859
} catch {}
5960

61+
const { appDir }: ExperimentalConfigWithLegacy = conf.experimental
6062
// Next 13.4 conditionally uses different React versions and we need to make sure we use the same one
61-
overrideRequireHooks(conf)
63+
// With the release of 13.5 experimental.appDir is no longer used.
64+
// we will need to check if appDir exists to run requireHooks for older versions
65+
if (appDir) overrideRequireHooks(conf.experimental)
6266
const NetlifyNextServer: NetlifyNextServerType = getNetlifyNextServer(NextServer)
63-
applyRequireHooks()
67+
if (appDir) applyRequireHooks()
6468

6569
const ONE_YEAR_IN_SECONDS = 31536000
6670

packages/runtime/src/templates/requireHooks.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55

66
import mod from 'module'
77

8-
import type { NextConfig } from '../helpers/config'
8+
import type { ExperimentalConfigWithLegacy } from '../helpers/utils'
99

1010
const resolveFilename = (mod as any)._resolveFilename
1111
const requireHooks = new Map<string, Map<string, string>>()
1212

13-
export const overrideRequireHooks = (config: NextConfig) => {
14-
setRequireHooks(config)
13+
export const overrideRequireHooks = (experimental: ExperimentalConfigWithLegacy) => {
14+
setRequireHooks(experimental)
1515
resolveRequireHooks()
1616
}
1717

18-
const setRequireHooks = (config: NextConfig) => {
18+
const setRequireHooks = (experimental: ExperimentalConfigWithLegacy) => {
1919
requireHooks.set(
2020
'default',
2121
new Map([
@@ -24,8 +24,8 @@ const setRequireHooks = (config: NextConfig) => {
2424
]),
2525
)
2626

27-
if (config.experimental.appDir) {
28-
if (config.experimental.serverActions) {
27+
if (experimental.appDir) {
28+
if (experimental.serverActions) {
2929
requireHooks.set(
3030
'experimental',
3131
new Map([

0 commit comments

Comments
 (0)