From c5b63264b74ab2b6e0ffa015edd79ba59ed25846 Mon Sep 17 00:00:00 2001 From: Tee Ming Chew Date: Sat, 18 Jul 2026 17:18:31 +0800 Subject: [PATCH 1/4] remove a todo --- packages/kit/src/exports/public.d.ts | 2 +- packages/kit/src/types/internal.d.ts | 10 +++++----- packages/kit/src/utils/features.js | 2 +- packages/kit/src/utils/page_nodes.js | 8 +++----- packages/kit/types/index.d.ts | 2 +- 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/packages/kit/src/exports/public.d.ts b/packages/kit/src/exports/public.d.ts index 0e00e8aefb07..188b2ef3ed7e 100644 --- a/packages/kit/src/exports/public.d.ts +++ b/packages/kit/src/exports/public.d.ts @@ -58,7 +58,7 @@ export interface Adapter { * Test support for `read` from `$app/server`. * @param details.config The merged adapter-specific route config exported from the route with `export const config` */ - read?: (details: { config: any; route: { id: string } }) => boolean; + read?: (details: { config: Record; route: { id: string } }) => boolean; /** * Test support for `instrumentation.server.js`. To pass, the adapter must support running `instrumentation.server.js` prior to the application code. diff --git a/packages/kit/src/types/internal.d.ts b/packages/kit/src/types/internal.d.ts index d204aa6b2e3f..2dec19e57423 100644 --- a/packages/kit/src/types/internal.d.ts +++ b/packages/kit/src/types/internal.d.ts @@ -394,7 +394,7 @@ export interface ServerErrorNode { } export interface ServerMetadataRoute { - config: any; + config: Record; api: { methods: Array; }; @@ -426,7 +426,7 @@ export interface UniversalNode { ssr?: boolean; csr?: boolean; trailingSlash?: TrailingSlash; - config?: any; + config?: Record; entries?: PrerenderEntryGenerator; } @@ -437,7 +437,7 @@ export interface ServerNode { csr?: boolean; trailingSlash?: TrailingSlash; actions?: Actions; - config?: any; + config?: Record; entries?: PrerenderEntryGenerator; } @@ -511,7 +511,7 @@ export type RemotePrerenderInputsGenerator = () => MaybePromise> & { prerender?: PrerenderOption; trailingSlash?: TrailingSlash; - config?: any; + config?: Record; entries?: PrerenderEntryGenerator; fallback?: RequestHandler; }; @@ -560,7 +560,7 @@ export interface SSRState { */ before_handle?: ( event: RequestEvent, - config: any, + config: Record, prerender: PrerenderOption, handle: () => Promise ) => Promise; diff --git a/packages/kit/src/utils/features.js b/packages/kit/src/utils/features.js index 4a8530d22bbb..61c38b198ccc 100644 --- a/packages/kit/src/utils/features.js +++ b/packages/kit/src/utils/features.js @@ -1,6 +1,6 @@ /** * @param {string} route_id - * @param {any} config + * @param {Record} config * @param {string} feature * @param {import('@sveltejs/kit').Adapter | undefined} adapter */ diff --git a/packages/kit/src/utils/page_nodes.js b/packages/kit/src/utils/page_nodes.js index 8a4e2609b331..d92ffe27233b 100644 --- a/packages/kit/src/utils/page_nodes.js +++ b/packages/kit/src/utils/page_nodes.js @@ -69,7 +69,7 @@ export class PageNodes { } get_config() { - /** @type {any} */ + /** @type {Record} */ let current = {}; for (const node of this.data) { @@ -77,13 +77,11 @@ export class PageNodes { current = { ...current, - // TODO: should we override the server config value with the universal value similar to other page options? - ...node?.universal?.config, - ...node?.server?.config + ...node?.server?.config, + ...node?.universal?.config }; } - // TODO 3.0 always return `current`? then we can get rid of `?? {}` in other places return Object.keys(current).length ? current : undefined; } diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index d3e574d41094..87da6b53ec72 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -32,7 +32,7 @@ declare module '@sveltejs/kit' { * Test support for `read` from `$app/server`. * @param details.config The merged adapter-specific route config exported from the route with `export const config` */ - read?: (details: { config: any; route: { id: string } }) => boolean; + read?: (details: { config: Record; route: { id: string } }) => boolean; /** * Test support for `instrumentation.server.js`. To pass, the adapter must support running `instrumentation.server.js` prior to the application code. From 1345340dc1bddbdc1d914e41faa82f973b00d096 Mon Sep 17 00:00:00 2001 From: Tee Ming Chew Date: Sat, 18 Jul 2026 17:21:54 +0800 Subject: [PATCH 2/4] any --- packages/kit/src/utils/features.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/utils/features.js b/packages/kit/src/utils/features.js index 61c38b198ccc..e39032fcf68d 100644 --- a/packages/kit/src/utils/features.js +++ b/packages/kit/src/utils/features.js @@ -1,6 +1,6 @@ /** * @param {string} route_id - * @param {Record} config + * @param {Record} config * @param {string} feature * @param {import('@sveltejs/kit').Adapter | undefined} adapter */ From f752dab947a4e616bd6f74c3557e09819752aa64 Mon Sep 17 00:00:00 2001 From: Tee Ming Chew Date: Sat, 18 Jul 2026 17:31:11 +0800 Subject: [PATCH 3/4] changeset --- .changeset/nice-mammals-move.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/nice-mammals-move.md diff --git a/.changeset/nice-mammals-move.md b/.changeset/nice-mammals-move.md new file mode 100644 index 000000000000..c393a1f39045 --- /dev/null +++ b/.changeset/nice-mammals-move.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': major +--- + +breaking: `config` exported from a server route file takes precedence over a universal one From a0c10f9b75764c73aa50341ee264e61a0b736d96 Mon Sep 17 00:00:00 2001 From: Tee Ming Date: Sat, 18 Jul 2026 17:35:51 +0800 Subject: [PATCH 4/4] Update .changeset/nice-mammals-move.md Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> --- .changeset/nice-mammals-move.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/nice-mammals-move.md b/.changeset/nice-mammals-move.md index c393a1f39045..e58b67ee2fcd 100644 --- a/.changeset/nice-mammals-move.md +++ b/.changeset/nice-mammals-move.md @@ -2,4 +2,4 @@ '@sveltejs/kit': major --- -breaking: `config` exported from a server route file takes precedence over a universal one +breaking: `config` exported from a universal route file takes precedence over a server one