Skip to content

Commit 321ca2e

Browse files
committed
Lift resetFetch into router-server
1 parent 1ea9605 commit 321ca2e

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

packages/next/src/server/lib/router-server.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import {
4646
type AppIsrManifestAction,
4747
} from '../dev/hot-reloader-types'
4848
import { normalizedAssetPrefix } from '../../shared/lib/normalized-asset-prefix'
49+
import { NEXT_PATCH_SYMBOL } from './patch-fetch'
4950

5051
const debug = setupDebug('next:router-server:main')
5152
const isNextFont = (pathname: string | null) =>
@@ -111,6 +112,8 @@ export async function initialize(opts: {
111112

112113
let devBundlerService: DevBundlerService | undefined
113114

115+
let originalFetch = globalThis.fetch
116+
114117
if (opts.dev) {
115118
const { Telemetry } =
116119
require('../../telemetry/storage') as typeof import('../../telemetry/storage')
@@ -123,6 +126,12 @@ export async function initialize(opts: {
123126
const { setupDevBundler } =
124127
require('./router-utils/setup-dev-bundler') as typeof import('./router-utils/setup-dev-bundler')
125128

129+
const resetFetch = () => {
130+
global.fetch = originalFetch
131+
// @ts-ignore
132+
global[NEXT_PATCH_SYMBOL] = false
133+
}
134+
126135
const setupDevBundlerSpan = opts.startServerSpan
127136
? opts.startServerSpan.traceChild('setup-dev-bundler')
128137
: trace('setup-dev-bundler')
@@ -140,6 +149,7 @@ export async function initialize(opts: {
140149
turbo: !!process.env.TURBOPACK,
141150
port: opts.port,
142151
onCleanup: opts.onCleanup,
152+
resetFetch,
143153
})
144154
)
145155

@@ -593,12 +603,12 @@ export async function initialize(opts: {
593603
let requestHandler: WorkerRequestHandler = requestHandlerImpl
594604
if (config.experimental.testProxy) {
595605
// Intercept fetch and other testmode apis.
596-
const {
597-
wrapRequestHandlerWorker,
598-
interceptTestApis,
599-
} = require('next/dist/experimental/testmode/server')
606+
const { wrapRequestHandlerWorker, interceptTestApis } =
607+
require('next/dist/experimental/testmode/server') as typeof import('next/src/experimental/testmode/server')
600608
requestHandler = wrapRequestHandlerWorker(requestHandler)
601609
interceptTestApis()
610+
// We treat the intercepted fetch as "original" fetch that should be reset to during HMR.
611+
originalFetch = globalThis.fetch
602612
}
603613
requestHandlers[opts.dir] = requestHandler
604614

packages/next/src/server/lib/router-utils/setup-dev-bundler.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ import { normalizeMetadataPageToRoute } from '../../../lib/metadata/get-metadata
8989
import { createEnvDefinitions } from '../experimental/create-env-definitions'
9090
import { JsConfigPathsPlugin } from '../../../build/webpack/plugins/jsconfig-paths-plugin'
9191
import { store as consoleStore } from '../../../build/output/store'
92-
import { NEXT_PATCH_SYMBOL } from '../patch-fetch'
9392

9493
export type SetupOpts = {
9594
renderServer: LazyRenderServerInstance
@@ -105,6 +104,7 @@ export type SetupOpts = {
105104
nextConfig: NextConfigComplete
106105
port: number
107106
onCleanup: (listener: () => Promise<void>) => void
107+
resetFetch: () => void
108108
}
109109

110110
export type ServerFields = {
@@ -154,7 +154,7 @@ export async function propagateServerField(
154154
}
155155

156156
async function startWatcher(opts: SetupOpts) {
157-
const { nextConfig, appDir, pagesDir, dir } = opts
157+
const { nextConfig, appDir, pagesDir, dir, resetFetch } = opts
158158
const { useFileSystemPublicRoutes } = nextConfig
159159
const usingTypeScript = await verifyTypeScript(opts)
160160

@@ -183,13 +183,6 @@ async function startWatcher(opts: SetupOpts) {
183183
logging: nextConfig.logging !== false,
184184
})
185185

186-
const originalFetch = global.fetch
187-
const resetFetch = () => {
188-
global.fetch = originalFetch
189-
// @ts-ignore
190-
global[NEXT_PATCH_SYMBOL] = false
191-
}
192-
193186
const hotReloader: NextJsHotReloaderInterface = opts.turbo
194187
? await createHotReloaderTurbopack(opts, serverFields, distDir, resetFetch)
195188
: new HotReloaderWebpack(opts.dir, {
@@ -202,7 +195,7 @@ async function startWatcher(opts: SetupOpts) {
202195
telemetry: opts.telemetry,
203196
rewrites: opts.fsChecker.rewrites,
204197
previewProps: opts.fsChecker.prerenderManifest.preview,
205-
resetFetch: resetFetch,
198+
resetFetch,
206199
})
207200

208201
await hotReloader.start()

0 commit comments

Comments
 (0)