Skip to content

Commit f754a00

Browse files
authored
Reflect runtime type of resHeaders in static types (#87145)
1 parent 20da8ea commit f754a00

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ export async function initialize(opts: {
414414
req.url = removePathPrefix(origUrl, config.assetPrefix)
415415
}
416416

417-
if (resHeaders) {
417+
if (resHeaders !== null) {
418418
for (const key of Object.keys(resHeaders)) {
419419
res.setHeader(key, resHeaders[key])
420420
}
@@ -441,8 +441,10 @@ export async function initialize(opts: {
441441
})
442442

443443
// apply any response headers from routing
444-
for (const key of Object.keys(resHeaders || {})) {
445-
res.setHeader(key, resHeaders[key])
444+
if (resHeaders !== null) {
445+
for (const key of Object.keys(resHeaders)) {
446+
res.setHeader(key, resHeaders[key])
447+
}
446448
}
447449

448450
// handle redirect

packages/next/src/server/lib/router-utils/resolve-routes.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ export function getResolveRoutes(
117117
finished: boolean
118118
statusCode?: number
119119
bodyStream?: ReadableStream | null
120-
resHeaders: Record<string, string | string[]>
120+
resHeaders: Record<string, string | string[]> | null
121121
parsedUrl: NextUrlWithParsedQuery
122122
matchedOutput?: FsOutput | null
123123
}> {
@@ -752,10 +752,12 @@ export function getResolveRoutes(
752752
parsedDestination.pathname
753753
)
754754

755+
// @ts-expect-error // custom ParsedUrl
756+
const unsafeParsedUrl: NextUrlWithParsedQuery = parsedDestination
755757
return {
756758
finished: true,
757-
// @ts-expect-error custom ParsedUrl
758-
parsedUrl: parsedDestination,
759+
parsedUrl: unsafeParsedUrl,
760+
resHeaders: null,
759761
statusCode: getRedirectStatus(route),
760762
}
761763
}
@@ -826,9 +828,11 @@ export function getResolveRoutes(
826828
}
827829

828830
if (parsedDestination.protocol) {
831+
// @ts-expect-error // custom ParsedUrl
832+
const unsafeParsedUrl: NextUrlWithParsedQuery = parsedDestination
829833
return {
830-
// @ts-expect-error custom ParsedUrl
831-
parsedUrl: parsedDestination,
834+
parsedUrl: unsafeParsedUrl,
835+
resHeaders: null,
832836
finished: true,
833837
}
834838
}

0 commit comments

Comments
 (0)