Skip to content

Commit 72c9635

Browse files
authored
Pass filterStackFrame everywhere (#81516)
1 parent 2f97e3c commit 72c9635

File tree

4 files changed

+44
-61
lines changed

4 files changed

+44
-61
lines changed

packages/next/src/server/app-render/app-render.tsx

Lines changed: 6 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,12 @@ const flightDataPathHeadKey = 'h'
253253
const getFlightViewportKey = (requestId: string) => requestId + 'v'
254254
const getFlightMetadataKey = (requestId: string) => requestId + 'm'
255255

256+
const filterStackFrame =
257+
process.env.NODE_ENV !== 'production'
258+
? (require('../lib/source-maps') as typeof import('../lib/source-maps'))
259+
.filterStackFrameDEV
260+
: undefined
261+
256262
interface ParsedRequestHeaders {
257263
/**
258264
* Router state provided from the client-side router. Used to handle rendering
@@ -633,11 +639,6 @@ async function generateDynamicFlightRenderResult(
633639
)
634640
}
635641

636-
const filterStackFrame =
637-
process.env.NODE_ENV !== 'production'
638-
? (require('../lib/source-maps') as typeof import('../lib/source-maps'))
639-
.filterStackFrameDEV
640-
: undefined
641642
// For app dir, use the bundled version of Flight server renderer (renderToReadableStream)
642643
// which contains the subset React.
643644
const flightReadableStream = workUnitAsyncStorage.run(
@@ -740,11 +741,6 @@ async function warmupDevRender(
740741
ctx
741742
)
742743

743-
const filterStackFrame =
744-
process.env.NODE_ENV !== 'production'
745-
? (require('../lib/source-maps') as typeof import('../lib/source-maps'))
746-
.filterStackFrameDEV
747-
: undefined
748744
// For app dir, use the bundled version of Flight server renderer (renderToReadableStream)
749745
// which contains the subset React.
750746
workUnitAsyncStorage.run(
@@ -1877,11 +1873,6 @@ async function renderToStream(
18771873
const setHeader = res.setHeader.bind(res)
18781874
const appendHeader = res.appendHeader.bind(res)
18791875

1880-
const filterStackFrame =
1881-
process.env.NODE_ENV !== 'production'
1882-
? (require('../lib/source-maps') as typeof import('../lib/source-maps'))
1883-
.filterStackFrameDEV
1884-
: undefined
18851876
try {
18861877
if (
18871878
// We only want this behavior when running `next dev`
@@ -2368,11 +2359,6 @@ async function spawnDynamicValidationInDev(
23682359
isNotFound
23692360
)
23702361

2371-
const filterStackFrame =
2372-
process.env.NODE_ENV !== 'production'
2373-
? (require('../lib/source-maps') as typeof import('../lib/source-maps'))
2374-
.filterStackFrameDEV
2375-
: undefined
23762362
const pendingInitialServerResult = workUnitAsyncStorage.run(
23772363
initialServerPrerenderStore,
23782364
ComponentMod.prerender,
@@ -3004,12 +2990,6 @@ async function prerenderToStream(
30042990
res.statusCode === 404
30052991
)
30062992

3007-
const filterStackFrame =
3008-
process.env.NODE_ENV !== 'production'
3009-
? (
3010-
require('../lib/source-maps') as typeof import('../lib/source-maps')
3011-
).filterStackFrameDEV
3012-
: undefined
30132993
const pendingInitialServerResult = workUnitAsyncStorage.run(
30142994
initialServerPrerenderStore,
30152995
ComponentMod.prerender,
@@ -3494,12 +3474,6 @@ async function prerenderToStream(
34943474
ctx,
34953475
res.statusCode === 404
34963476
)
3497-
const filterStackFrame =
3498-
process.env.NODE_ENV !== 'production'
3499-
? (
3500-
require('../lib/source-maps') as typeof import('../lib/source-maps')
3501-
).filterStackFrameDEV
3502-
: undefined
35033477
const reactServerResult = (reactServerPrerenderResult =
35043478
await createReactServerPrerenderResultFromRender(
35053479
workUnitAsyncStorage.run(
@@ -3730,12 +3704,6 @@ async function prerenderToStream(
37303704
res.statusCode === 404
37313705
)
37323706

3733-
const filterStackFrame =
3734-
process.env.NODE_ENV !== 'production'
3735-
? (
3736-
require('../lib/source-maps') as typeof import('../lib/source-maps')
3737-
).filterStackFrameDEV
3738-
: undefined
37393707
const reactServerResult = (reactServerPrerenderResult =
37403708
await createReactServerPrerenderResultFromRender(
37413709
workUnitAsyncStorage.run(
@@ -3909,11 +3877,6 @@ async function prerenderToStream(
39093877
errorType
39103878
)
39113879

3912-
const filterStackFrame =
3913-
process.env.NODE_ENV !== 'production'
3914-
? (require('../lib/source-maps') as typeof import('../lib/source-maps'))
3915-
.filterStackFrameDEV
3916-
: undefined
39173880
const errorServerStream = workUnitAsyncStorage.run(
39183881
prerenderLegacyStore,
39193882
ComponentMod.renderToReadableStream,

packages/next/src/server/app-render/collect-segment-data.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ export type SegmentPrefetch = {
6464
isPartial: boolean
6565
}
6666

67+
const filterStackFrame =
68+
process.env.NODE_ENV !== 'production'
69+
? (require('../lib/source-maps') as typeof import('../lib/source-maps'))
70+
.filterStackFrameDEV
71+
: undefined
72+
6773
function onSegmentPrerenderError(error: unknown) {
6874
const digest = getDigestForWellKnownError(error)
6975
if (digest) {
@@ -128,6 +134,7 @@ export async function collectSegmentData(
128134
/>,
129135
clientModules,
130136
{
137+
filterStackFrame,
131138
signal: abortController.signal,
132139
onError: onSegmentPrerenderError,
133140
}
@@ -349,6 +356,7 @@ async function renderSegmentPrefetch(
349356
segmentPrefetch,
350357
clientModules,
351358
{
359+
filterStackFrame,
352360
signal: abortController.signal,
353361
onError: onSegmentPrerenderError,
354362
}
@@ -379,6 +387,7 @@ async function isPartialRSCData(
379387
abortController.abort()
380388
})
381389
await prerender(rsc, clientModules, {
390+
filterStackFrame,
382391
signal: abortController.signal,
383392
onError() {},
384393
onPostpone() {

packages/next/src/server/use-cache/use-cache-wrapper.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ const debug = process.env.NEXT_PRIVATE_DEBUG_CACHE
8080
? console.debug.bind(console, 'use-cache:')
8181
: undefined
8282

83+
const filterStackFrame =
84+
process.env.NODE_ENV !== 'production'
85+
? (require('../lib/source-maps') as typeof import('../lib/source-maps'))
86+
.filterStackFrameDEV
87+
: undefined
88+
8389
function generateCacheEntry(
8490
workStore: WorkStore,
8591
outerWorkUnitStore: WorkUnitStore | undefined,
@@ -446,6 +452,7 @@ async function generateCacheEntryImpl(
446452
clientReferenceManifest.clientModules,
447453
{
448454
environmentName: 'Cache',
455+
filterStackFrame,
449456
signal: abortSignal,
450457
temporaryReferences,
451458
onError(error) {
@@ -490,12 +497,6 @@ async function generateCacheEntryImpl(
490497
stream = prelude
491498
}
492499
} else {
493-
const filterStackFrame =
494-
process.env.NODE_ENV !== 'production'
495-
? (require('../lib/source-maps') as typeof import('../lib/source-maps'))
496-
.filterStackFrameDEV
497-
: undefined
498-
499500
stream = renderToReadableStream(
500501
resultPromise,
501502
clientReferenceManifest.clientModules,

packages/next/types/$$compiled.internal.d.ts

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,17 @@ declare module 'react-server-dom-webpack/server.edge' {
141141
options?: {
142142
temporaryReferences?: TemporaryReferenceSet
143143
environmentName?: string | (() => string)
144-
filterStackFrame?: (
145-
url: string,
146-
functionName: string,
147-
lineNumber: number,
148-
columnNumber: number
149-
) => boolean
144+
// This is actually optional.
145+
// But we want to not miss callsites accidentally and explicitly choose
146+
// at each callsite which implementation to choose.
147+
filterStackFrame:
148+
| ((
149+
url: string,
150+
functionName: string,
151+
lineNumber: number,
152+
columnNumber: number
153+
) => boolean)
154+
| undefined
150155
onError?: (error: unknown) => void
151156
onPostpone?: (reason: string) => void
152157
signal?: AbortSignal
@@ -267,12 +272,17 @@ declare module 'react-server-dom-webpack/static' {
267272
},
268273
options?: {
269274
environmentName?: string | (() => string)
270-
filterStackFrame?: (
271-
url: string,
272-
functionName: string,
273-
lineNumber: number,
274-
columnNumber: number
275-
) => boolean
275+
// This is actually optional.
276+
// But we want to not miss callsites accidentally and explicitly choose
277+
// at each callsite which implementation to choose.
278+
filterStackFrame:
279+
| ((
280+
url: string,
281+
functionName: string,
282+
lineNumber: number,
283+
columnNumber: number
284+
) => boolean)
285+
| undefined
276286
identifierPrefix?: string
277287
signal?: AbortSignal
278288
temporaryReferences?: TemporaryReferenceSet

0 commit comments

Comments
 (0)