From 3bb4aa9f00fa59324912fb626a5e8ddf7f29ee25 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Fri, 8 Jul 2022 22:17:14 +0200 Subject: [PATCH 1/4] Remove dynamic params from `query` in new router --- packages/next/server/next-server.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index bd23e23078d8..0d08de992d10 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -732,7 +732,8 @@ export default class NextNodeServer extends BaseServer { __flight__: query.__flight__, } as NextParsedUrlQuery) : query), - ...(params || {}), + // For appDir params is excluded. + ...((this.nextConfig.experimental.appDir ? {} : params) || {}), }, } } catch (err) { From 008f10ad8179e5bd280e2eecbd5435d77fb6652e Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Fri, 8 Jul 2022 22:22:27 +0200 Subject: [PATCH 2/4] Remove query reading todo --- packages/next/server/app-render.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/next/server/app-render.tsx b/packages/next/server/app-render.tsx index 5a2e04a89e67..ba1a48cd0409 100644 --- a/packages/next/server/app-render.tsx +++ b/packages/next/server/app-render.tsx @@ -421,8 +421,9 @@ export async function renderToHTML( } const key = segmentParam.param + const value = pathParams[key] - if (!pathParams[key] && !query[key]) { + if (!value) { if (segmentParam.type === 'optional-catchall') { return { param: key, @@ -433,9 +434,6 @@ export async function renderToHTML( return null } - // TODO: this should only read from `pathParams`. There's an inconsistency where `query` holds params currently which has to be fixed. - const value = pathParams[key] ?? query[key] - return { param: key, value: value, From 8864070c7787c3b047686aad70694e3acc2ac14d Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Sat, 9 Jul 2022 13:46:21 +0200 Subject: [PATCH 3/4] Ensure only appDir routes get new params behavior --- packages/next/server/base-server.ts | 14 ++++++++++++-- packages/next/server/dev/next-dev-server.ts | 5 +++-- packages/next/server/next-server.ts | 7 +++++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index a096b4380f22..f76d92048c8a 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -221,7 +221,8 @@ export default abstract class Server { protected abstract findPageComponents( pathname: string, query?: NextParsedUrlQuery, - params?: Params + params?: Params, + isAppDir?: boolean ): Promise protected abstract getPagePath(pathname: string, locales?: string[]): string protected abstract getFontManifest(): FontManifest | undefined @@ -1795,11 +1796,20 @@ export default abstract class Server { if (typeof appPath === 'string') { page = appPath } + const result = await this.findPageComponents( page, query, - ctx.renderOpts.params + ctx.renderOpts.params, + typeof appPath === 'string' ) + console.log({ + pathname, + appPath, + params: ctx.renderOpts.params, + query, + result, + }) if (result) { try { return await this.renderToResponseWithComponents(ctx, result) diff --git a/packages/next/server/dev/next-dev-server.ts b/packages/next/server/dev/next-dev-server.ts index 09b63dc1c8fa..9aa929b1285e 100644 --- a/packages/next/server/dev/next-dev-server.ts +++ b/packages/next/server/dev/next-dev-server.ts @@ -1105,7 +1105,8 @@ export default class DevServer extends Server { protected async findPageComponents( pathname: string, query: ParsedUrlQuery = {}, - params: Params | null = null + params: Params | null = null, + isAppDir: boolean = false ): Promise { await this.devReady const compilationErr = await this.getCompilationError(pathname) @@ -1124,7 +1125,7 @@ export default class DevServer extends Server { this.serverComponentManifest = super.getServerComponentManifest() } - return super.findPageComponents(pathname, query, params) + return super.findPageComponents(pathname, query, params, isAppDir) } catch (err) { if ((err as any).code !== 'ENOENT') { throw err diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index 0d08de992d10..86db7eaba14f 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -683,7 +683,8 @@ export default class NextNodeServer extends BaseServer { protected async findPageComponents( pathname: string, query: NextParsedUrlQuery = {}, - params: Params | null = null + params: Params | null = null, + isAppDir: boolean = false ): Promise { let paths = [ // try serving a static AMP version first @@ -720,6 +721,8 @@ export default class NextNodeServer extends BaseServer { continue } + console.log({ pagePath, isAppDir }) + return { components, query: { @@ -733,7 +736,7 @@ export default class NextNodeServer extends BaseServer { } as NextParsedUrlQuery) : query), // For appDir params is excluded. - ...((this.nextConfig.experimental.appDir ? {} : params) || {}), + ...((isAppDir ? {} : params) || {}), }, } } catch (err) { From 91587a737640a4a0dcb98bf3ae65e3e5b71ed010 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Sat, 9 Jul 2022 14:21:36 +0200 Subject: [PATCH 4/4] Remove logs --- packages/next/server/base-server.ts | 7 ------- packages/next/server/next-server.ts | 2 -- 2 files changed, 9 deletions(-) diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index f76d92048c8a..e552fffdb60a 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -1803,13 +1803,6 @@ export default abstract class Server { ctx.renderOpts.params, typeof appPath === 'string' ) - console.log({ - pathname, - appPath, - params: ctx.renderOpts.params, - query, - result, - }) if (result) { try { return await this.renderToResponseWithComponents(ctx, result) diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index 86db7eaba14f..4fcef3be4d1f 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -721,8 +721,6 @@ export default class NextNodeServer extends BaseServer { continue } - console.log({ pagePath, isAppDir }) - return { components, query: {