From a1abeaf67bd00bfbdd2732d219bfe9aa7dc0c3ea Mon Sep 17 00:00:00 2001 From: Justin Ridgewell Date: Tue, 21 Feb 2023 13:44:53 -0500 Subject: [PATCH] build(cargo): update turbopack (#46013)Co-authored-by: JJ Kasper Co-authored-by: Tobias Koppers # New Features - https://github.com/vercel/turbo/pull/3771 - https://github.com/vercel/turbo/pull/3690 # Performance - https://github.com/vercel/turbo/pull/3768 # Fixes - https://github.com/vercel/turbo/pull/3795 - https://github.com/vercel/turbo/pull/3746 - https://github.com/vercel/turbo/pull/3832 - https://github.com/vercel/turbo/pull/3827 - https://github.com/vercel/turbo/pull/3847 # Other - https://github.com/vercel/turbo/pull/3803 - https://github.com/vercel/turbo/pull/3685 - https://github.com/vercel/turbo/pull/3848 --------- Co-authored-by: JJ Kasper Co-authored-by: Tobias Koppers --- packages/next-swc/Cargo.lock | 70 ++++++++------- packages/next-swc/crates/core/Cargo.toml | 4 +- packages/next-swc/crates/napi/Cargo.toml | 8 +- packages/next-swc/crates/wasm/Cargo.toml | 2 +- .../next/src/server/dev/next-dev-server.ts | 27 +++--- .../next/src/server/lib/route-resolver.ts | 87 +++++++++---------- 6 files changed, 101 insertions(+), 97 deletions(-) diff --git a/packages/next-swc/Cargo.lock b/packages/next-swc/Cargo.lock index 9c202c6028..c3e9c6a146 100644 --- a/packages/next-swc/Cargo.lock +++ b/packages/next-swc/Cargo.lock @@ -126,7 +126,7 @@ dependencies = [ [[package]] name = "auto-hash-map" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "serde", ] @@ -859,6 +859,12 @@ version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03d8c417d7a8cb362e0c37e5d815f5eb7c37f79ff93707329d5a194e42e54ca0" +[[package]] +name = "dunce" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c" + [[package]] name = "easy-error" version = "1.0.0" @@ -2279,7 +2285,7 @@ checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" [[package]] name = "next-binding" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "mdxjs", "modularize_imports", @@ -2295,7 +2301,7 @@ dependencies = [ [[package]] name = "next-core" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "auto-hash-map", @@ -2325,9 +2331,10 @@ dependencies = [ [[package]] name = "next-dev" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", + "dunce", "futures", "mime", "next-core", @@ -2350,7 +2357,7 @@ dependencies = [ [[package]] name = "next-font" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "fxhash", "serde", @@ -2404,7 +2411,7 @@ dependencies = [ [[package]] name = "next-transform-dynamic" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "pathdiff", "swc_core", @@ -2413,7 +2420,7 @@ dependencies = [ [[package]] name = "next-transform-strip-page-exports" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "fxhash", "swc_core", @@ -2423,7 +2430,7 @@ dependencies = [ [[package]] name = "node-file-trace" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "clap", @@ -5451,7 +5458,7 @@ dependencies = [ [[package]] name = "turbo-malloc" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "mimalloc", ] @@ -5459,7 +5466,7 @@ dependencies = [ [[package]] name = "turbo-tasks" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "auto-hash-map", @@ -5489,7 +5496,7 @@ dependencies = [ [[package]] name = "turbo-tasks-build" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "cargo-lock", @@ -5501,7 +5508,7 @@ dependencies = [ [[package]] name = "turbo-tasks-env" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "dotenvy", @@ -5515,7 +5522,7 @@ dependencies = [ [[package]] name = "turbo-tasks-fetch" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "indexmap", @@ -5532,13 +5539,14 @@ dependencies = [ [[package]] name = "turbo-tasks-fs" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "auto-hash-map", "bitflags", "bytes", "concurrent-queue", + "dunce", "futures", "futures-retry", "include_dir", @@ -5558,7 +5566,7 @@ dependencies = [ [[package]] name = "turbo-tasks-hash" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "base16", "hex", @@ -5570,7 +5578,7 @@ dependencies = [ [[package]] name = "turbo-tasks-macros" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "convert_case 0.5.0", @@ -5584,7 +5592,7 @@ dependencies = [ [[package]] name = "turbo-tasks-macros-shared" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "proc-macro2", "quote", @@ -5594,7 +5602,7 @@ dependencies = [ [[package]] name = "turbo-tasks-memory" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "auto-hash-map", @@ -5616,7 +5624,7 @@ dependencies = [ [[package]] name = "turbopack" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "indexmap", @@ -5641,7 +5649,7 @@ dependencies = [ [[package]] name = "turbopack-cli-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "clap", @@ -5657,7 +5665,7 @@ dependencies = [ [[package]] name = "turbopack-core" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "async-trait", @@ -5683,11 +5691,12 @@ dependencies = [ [[package]] name = "turbopack-css" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "async-trait", "indexmap", + "indoc", "once_cell", "regex", "serde", @@ -5704,7 +5713,7 @@ dependencies = [ [[package]] name = "turbopack-dev-server" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "futures", @@ -5713,6 +5722,7 @@ dependencies = [ "indexmap", "mime", "mime_guess", + "once_cell", "parking_lot", "pin-project-lite", "serde", @@ -5733,7 +5743,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "async-trait", @@ -5772,7 +5782,7 @@ dependencies = [ [[package]] name = "turbopack-env" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "serde", @@ -5787,7 +5797,7 @@ dependencies = [ [[package]] name = "turbopack-json" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "serde", @@ -5802,7 +5812,7 @@ dependencies = [ [[package]] name = "turbopack-mdx" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "mdxjs", @@ -5817,7 +5827,7 @@ dependencies = [ [[package]] name = "turbopack-node" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "futures", @@ -5840,7 +5850,7 @@ dependencies = [ [[package]] name = "turbopack-static" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "anyhow", "serde", @@ -5856,7 +5866,7 @@ dependencies = [ [[package]] name = "turbopack-swc-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230214.2#6d5fee7f19b229e75d692ef6fbb75056c20511e8" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230217.2#4fd1eef9d484ef4351cdacac30076617eb0996c7" dependencies = [ "swc_core", "turbo-tasks", diff --git a/packages/next-swc/crates/core/Cargo.toml b/packages/next-swc/crates/core/Cargo.toml index 32fac85a8f..efadb0846d 100644 --- a/packages/next-swc/crates/core/Cargo.toml +++ b/packages/next-swc/crates/core/Cargo.toml @@ -19,7 +19,7 @@ serde = "1" serde_json = "1" tracing = { version = "0.1.37", features = ["release_max_level_info"] } -next-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230214.2", features = [ +next-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230217.2", features = [ "__swc_core", "__swc_core_next_core", "__swc_transform_styled_jsx", @@ -29,7 +29,7 @@ next-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-2 ] } [dev-dependencies] -next-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230214.2", features = [ +next-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230217.2", features = [ "__swc_core_testing_transform", "__swc_testing", ] } diff --git a/packages/next-swc/crates/napi/Cargo.toml b/packages/next-swc/crates/napi/Cargo.toml index 17b49e0ed6..ba740d59c1 100644 --- a/packages/next-swc/crates/napi/Cargo.toml +++ b/packages/next-swc/crates/napi/Cargo.toml @@ -39,10 +39,10 @@ tracing = { version = "0.1.37", features = ["release_max_level_info"] } tracing-futures = "0.2.5" tracing-subscriber = "0.3.9" tracing-chrome = "0.5.0" -turbo-malloc = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230214.2" } -turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230214.2" } -turbo-tasks-memory = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230214.2" } -next-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230214.2", features = [ +turbo-malloc = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230217.2" } +turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230217.2" } +turbo-tasks-memory = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230217.2" } +next-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230217.2", features = [ "__swc_core_binding_napi", "__turbo_next_dev_server", "__turbo_node_file_trace", diff --git a/packages/next-swc/crates/wasm/Cargo.toml b/packages/next-swc/crates/wasm/Cargo.toml index de587f8b4f..83d363a657 100644 --- a/packages/next-swc/crates/wasm/Cargo.toml +++ b/packages/next-swc/crates/wasm/Cargo.toml @@ -31,7 +31,7 @@ wasm-bindgen-futures = "0.4.8" getrandom = { version = "0.2.5", optional = true, default-features = false } js-sys = "0.3.59" serde-wasm-bindgen = "0.4.3" -next-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230214.2", features = [ +next-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230217.2", features = [ "__swc_core_binding_wasm", "__feature_mdx_rs", ] } diff --git a/packages/next/src/server/dev/next-dev-server.ts b/packages/next/src/server/dev/next-dev-server.ts index 354b928c27..752cb17ccf 100644 --- a/packages/next/src/server/dev/next-dev-server.ts +++ b/packages/next/src/server/dev/next-dev-server.ts @@ -238,7 +238,7 @@ export default class DevServer extends Server { const ensurer: RouteEnsurer = { ensure: async (match) => { - await this.hotReloader!.ensurePage({ + await this.hotReloader?.ensurePage({ match, page: match.definition.page, clientOnly: false, @@ -726,7 +726,7 @@ export default class DevServer extends Server { !this.sortedRoutes?.every((val, idx) => val === sortedRoutes[idx]) ) { // emit the change so clients fetch the update - this.hotReloader!.send(undefined, { devPagesManifest: true }) + this.hotReloader?.send(undefined, { devPagesManifest: true }) } this.sortedRoutes = sortedRoutes @@ -1118,11 +1118,12 @@ export default class DevServer extends Server { } } - const { finished = false } = await this.hotReloader!.run( - req.originalRequest, - res.originalResponse, - parsedUrl - ) + const { finished = false } = + (await this.hotReloader?.run( + req.originalRequest, + res.originalResponse, + parsedUrl + )) || {} if (finished) { return @@ -1319,7 +1320,7 @@ export default class DevServer extends Server { } protected async ensureMiddleware() { - return this.hotReloader!.ensurePage({ + return this.hotReloader?.ensurePage({ page: this.actualMiddlewareFile!, clientOnly: false, }) @@ -1348,7 +1349,7 @@ export default class DevServer extends Server { page: string appPaths: string[] | null }) { - return this.hotReloader!.ensurePage({ page, appPaths, clientOnly: false }) + return this.hotReloader?.ensurePage({ page, appPaths, clientOnly: false }) } generateRoutes() { @@ -1553,7 +1554,7 @@ export default class DevServer extends Server { } try { if (shouldEnsure || this.renderOpts.customServer) { - await this.hotReloader!.ensurePage({ + await this.hotReloader?.ensurePage({ page: pathname, appPaths, clientOnly: false, @@ -1588,10 +1589,10 @@ export default class DevServer extends Server { } protected async getFallbackErrorComponents(): Promise { - await this.hotReloader!.buildFallbackError() + await this.hotReloader?.buildFallbackError() // Build the error page to ensure the fallback is built too. // TODO: See if this can be moved into hotReloader or removed. - await this.hotReloader!.ensurePage({ page: '/_error', clientOnly: false }) + await this.hotReloader?.ensurePage({ page: '/_error', clientOnly: false }) return await loadDefaultErrorComponents(this.distDir) } @@ -1618,7 +1619,7 @@ export default class DevServer extends Server { } async getCompilationError(page: string): Promise { - const errors = await this.hotReloader!.getCompilationErrors(page) + const errors = (await this.hotReloader?.getCompilationErrors(page)) || [] if (errors.length === 0) return // Return the very first error we found. diff --git a/packages/next/src/server/lib/route-resolver.ts b/packages/next/src/server/lib/route-resolver.ts index 3afc52ec04..51fc6eabde 100644 --- a/packages/next/src/server/lib/route-resolver.ts +++ b/packages/next/src/server/lib/route-resolver.ts @@ -1,5 +1,4 @@ import type { IncomingMessage, ServerResponse } from 'http' -import type { UnwrapPromise } from '../../lib/coalesced-function' import type { NextConfig } from '../config' import type { Route } from '../router' @@ -31,52 +30,49 @@ export async function makeResolver(dir: string, nextConfig: NextConfig) { const devServer = new DevServer({ dir, conf: nextConfig, - }) as any as { - customRoutes: UnwrapPromise> - router: InstanceType - generateRoutes: any - } + }) + await devServer.startWatcher.bind(devServer)() + // @ts-expect-error devServer.customRoutes = await loadCustomRoutes(nextConfig) + + const routeResults = new WeakMap() const routes = devServer.generateRoutes.bind(devServer)() - devServer.router = new Router(routes) - const routeResults = new Map() - - // @ts-expect-error internal field - devServer.router.catchAllRoute = { - match: getPathMatch('/:path*'), - name: 'catchall route', - fn: async (req, _res, _params, parsedUrl) => { - // clean up internal query values - for (const key of Object.keys(parsedUrl.query || {})) { - if (key.startsWith('_next')) { - delete parsedUrl.query[key] + const router = new Router({ + ...routes, + catchAllRoute: { + match: getPathMatch('/:path*'), + name: 'catchall route', + fn: async (req, _res, _params, parsedUrl) => { + // clean up internal query values + for (const key of Object.keys(parsedUrl.query || {})) { + if (key.startsWith('_next')) { + delete parsedUrl.query[key] + } } - } - routeResults.set( - (req as any)._initUrl, - url.format({ - pathname: parsedUrl.pathname, - query: parsedUrl.query, - hash: parsedUrl.hash, - }) - ) - return { finished: true } - }, - } as Route + routeResults.set( + req, + url.format({ + pathname: parsedUrl.pathname, + query: parsedUrl.query, + hash: parsedUrl.hash, + }) + ) + return { finished: true } + }, + } as Route, + }) // @ts-expect-error internal field - devServer.router.compiledRoutes = devServer.router.compiledRoutes.filter( - (route: Route) => { - return ( - route.type === 'rewrite' || - route.type === 'redirect' || - route.type === 'header' || - route.name === 'catchall route' || - route.name?.includes('check') - ) - } - ) + router.compiledRoutes = router.compiledRoutes.filter((route: Route) => { + const matches = + route.type === 'rewrite' || + route.type === 'redirect' || + route.type === 'header' || + route.name === 'catchall route' || + route.name?.includes('check') + return matches + }) return async function resolveRoute( _req: IncomingMessage, @@ -86,15 +82,12 @@ export async function makeResolver(dir: string, nextConfig: NextConfig) { const res = new NodeNextResponse(_res) ;(req as any)._initUrl = req.url - await devServer.router.execute.bind(devServer.router)( - req, - res, - url.parse(req.url!, true) - ) + await router.execute.bind(router)(req, res, url.parse(req.url!, true)) if (!res.originalResponse.headersSent) { res.setHeader('x-nextjs-route-result', '1') - const resolvedUrl = routeResults.get((req as any)._initUrl) + const resolvedUrl = routeResults.get(req) + routeResults.delete(req) const routeResult: RouteResult = resolvedUrl == null