From 700b5c4ec036cec70ade9ea610568a53a24d30d7 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 6 Apr 2026 03:24:13 -0700 Subject: [PATCH 01/12] chore: reduce use of any types --- packages/kit/src/exports/vite/dev/index.js | 11 ++++---- packages/kit/src/exports/vite/index.js | 32 ++++++++++++++++------ 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/packages/kit/src/exports/vite/dev/index.js b/packages/kit/src/exports/vite/dev/index.js index 8371a81ba5b1..e6e493d5886c 100644 --- a/packages/kit/src/exports/vite/dev/index.js +++ b/packages/kit/src/exports/vite/dev/index.js @@ -68,7 +68,8 @@ export async function dev(vite, vite_config, svelte_config, get_remotes) { async function loud_ssr_load_module(url) { try { return await vite.ssrLoadModule(url, { fixStacktrace: true }); - } catch (/** @type {any} */ err) { + } catch (/** @type {unknown} */ e) { + const err = /** @type {import('rollup').RollupError} */ (e); const msg = buildErrorMessage(err, [colors.red(`Internal server error: ${err.message}`)]); if (!vite.config.logger.hasErrorLogged(err)) { @@ -77,13 +78,13 @@ export async function dev(vite, vite_config, svelte_config, get_remotes) { vite.ws.send({ type: 'error', - err: { + err: /** @type {import('vite').ErrorPayload['err']} */ ({ ...err, // these properties are non-enumerable and will // not be serialized unless we explicitly include them message: err.message, - stack: err.stack - } + stack: err.stack ?? '' + }) }); throw err; @@ -204,7 +205,7 @@ export async function dev(vite, vite_config, svelte_config, get_remotes) { if (node.universal) { if (node.page_options?.ssr === false) { - result.universal = node.page_options; + result.universal = /** @type {import('types').UniversalNode} */ (node.page_options); } else { // TODO: explain why the file was loaded on the server if we fail to load it const { module, module_node } = await resolve(node.universal); diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index b448fc7bb3d1..48896dd59787 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -424,7 +424,10 @@ async function kit({ svelte_config }) { ]; } - warn_overridden_config(config, new_config); + warn_overridden_config( + /** @type {Record} */ (config), + /** @type {Record} */ (new_config) + ); return new_config; } @@ -997,7 +1000,10 @@ async function kit({ svelte_config }) { }; } - warn_overridden_config(config, new_config); + warn_overridden_config( + /** @type {Record} */ (config), + /** @type {Record} */ (new_config) + ); return new_config; } @@ -1148,7 +1154,11 @@ async function kit({ svelte_config }) { client_chunks = bundle.output; } catch (e) { const error = - e instanceof Error ? e : new Error(/** @type {any} */ (e).message ?? e ?? ''); + e instanceof Error + ? e + : new Error( + /** @type {{ message?: string }} */ (e).message ?? String(e) ?? '' + ); // without this, errors that occur during the secondary build // will be logged twice @@ -1421,8 +1431,8 @@ async function kit({ svelte_config }) { } /** - * @param {Record} config - * @param {Record} resolved_config + * @param {Record} config + * @param {Record} resolved_config */ function warn_overridden_config(config, resolved_config) { const overridden = find_overridden_config(config, resolved_config, enforced_config, '', []); @@ -1436,8 +1446,8 @@ function warn_overridden_config(config, resolved_config) { } /** - * @param {Record} config - * @param {Record} resolved_config + * @param {Record} config + * @param {Record} resolved_config * @param {import('./types.js').EnforcedConfig} enforced_config * @param {string} path * @param {string[]} out used locally to compute the return value @@ -1456,7 +1466,13 @@ function find_overridden_config(config, resolved_config, enforced_config, path, out.push(path + key); } } else { - find_overridden_config(config[key], resolved_config[key], enforced, path + key + '.', out); + find_overridden_config( + /** @type {Record} */ (config[key]), + /** @type {Record} */ (resolved_config[key]), + enforced, + path + key + '.', + out + ); } } } From 3d7a8f2845ef56f118b9991580e2fc1f4c81c110 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 6 Apr 2026 13:26:59 -0700 Subject: [PATCH 02/12] update type signature of warn_overridden_config --- packages/kit/src/exports/vite/index.js | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 48896dd59787..56804f605989 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -43,6 +43,8 @@ import { compact } from '../../utils/array.js'; import { should_ignore, has_children } from './static_analysis/utils.js'; import { treeshake_prerendered_remotes } from './build/remote.js'; +/** @import { UserConfig } from 'vite' */ + const cwd = posixify(process.cwd()); /** @type {import('./types.js').EnforcedConfig} */ @@ -424,10 +426,7 @@ async function kit({ svelte_config }) { ]; } - warn_overridden_config( - /** @type {Record} */ (config), - /** @type {Record} */ (new_config) - ); + warn_overridden_config(config, new_config); return new_config; } @@ -1000,10 +999,7 @@ async function kit({ svelte_config }) { }; } - warn_overridden_config( - /** @type {Record} */ (config), - /** @type {Record} */ (new_config) - ); + warn_overridden_config(config, new_config); return new_config; } @@ -1156,9 +1152,7 @@ async function kit({ svelte_config }) { const error = e instanceof Error ? e - : new Error( - /** @type {{ message?: string }} */ (e).message ?? String(e) ?? '' - ); + : new Error(/** @type {{ message?: string }} */ (e).message ?? ''); // without this, errors that occur during the secondary build // will be logged twice @@ -1431,11 +1425,17 @@ async function kit({ svelte_config }) { } /** - * @param {Record} config - * @param {Record} resolved_config + * @param {UserConfig} config + * @param {UserConfig} resolved_config */ function warn_overridden_config(config, resolved_config) { - const overridden = find_overridden_config(config, resolved_config, enforced_config, '', []); + const overridden = find_overridden_config( + /** @type {Record} */ (config), + /** @type {Record} */ (resolved_config), + enforced_config, + '', + [] + ); if (overridden.length > 0) { console.error( From fb49085a1db9dfd03336067314715b5ee90d44bd Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 6 Apr 2026 13:41:56 -0700 Subject: [PATCH 03/12] simplify --- packages/kit/src/exports/vite/index.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 56804f605989..1529ea9205ea 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -1430,8 +1430,8 @@ async function kit({ svelte_config }) { */ function warn_overridden_config(config, resolved_config) { const overridden = find_overridden_config( - /** @type {Record} */ (config), - /** @type {Record} */ (resolved_config), + /** @type {IndexableConfig} */ (config), + /** @type {IndexableConfig} */ (resolved_config), enforced_config, '', [] @@ -1446,8 +1446,9 @@ function warn_overridden_config(config, resolved_config) { } /** - * @param {Record} config - * @param {Record} resolved_config + * @typedef {{ [key: string]: IndexableConfig | undefined }} IndexableConfig + * @param {IndexableConfig | undefined} config + * @param {IndexableConfig | undefined} resolved_config * @param {import('./types.js').EnforcedConfig} enforced_config * @param {string} path * @param {string[]} out used locally to compute the return value @@ -1466,13 +1467,7 @@ function find_overridden_config(config, resolved_config, enforced_config, path, out.push(path + key); } } else { - find_overridden_config( - /** @type {Record} */ (config[key]), - /** @type {Record} */ (resolved_config[key]), - enforced, - path + key + '.', - out - ); + find_overridden_config(config[key], resolved_config[key], enforced, path + key + '.', out); } } } From f4fa9eae7de2ec43f4b5526c0d7008403bf7a11c Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 6 Apr 2026 13:50:48 -0700 Subject: [PATCH 04/12] fix --- packages/kit/src/exports/vite/index.js | 9 ++++----- packages/kit/src/exports/vite/types.d.ts | 4 ++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 1529ea9205ea..ae35b2aca8bf 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -1430,8 +1430,8 @@ async function kit({ svelte_config }) { */ function warn_overridden_config(config, resolved_config) { const overridden = find_overridden_config( - /** @type {IndexableConfig} */ (config), - /** @type {IndexableConfig} */ (resolved_config), + /** @type {import('./types.js').IndexableConfig } */ (config), + /** @type {import('./types.js').IndexableConfig } */ (resolved_config), enforced_config, '', [] @@ -1446,9 +1446,8 @@ function warn_overridden_config(config, resolved_config) { } /** - * @typedef {{ [key: string]: IndexableConfig | undefined }} IndexableConfig - * @param {IndexableConfig | undefined} config - * @param {IndexableConfig | undefined} resolved_config + * @param {import('./types.js').IndexableConfig | undefined} config + * @param {import('./types.js').IndexableConfig | undefined} resolved_config * @param {import('./types.js').EnforcedConfig} enforced_config * @param {string} path * @param {string[]} out used locally to compute the return value diff --git a/packages/kit/src/exports/vite/types.d.ts b/packages/kit/src/exports/vite/types.d.ts index 900aa43541ea..639348ceeda7 100644 --- a/packages/kit/src/exports/vite/types.d.ts +++ b/packages/kit/src/exports/vite/types.d.ts @@ -1,3 +1,7 @@ export interface EnforcedConfig { [key: string]: EnforcedConfig | true; } + +export interface IndexableConfig { + [key: string]: IndexableConfig | undefined +} From 123b8b386edb58d45696057bdca96683680dc813 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 6 Apr 2026 14:00:49 -0700 Subject: [PATCH 05/12] import additional types --- packages/kit/src/exports/vite/index.js | 42 +++++++++++++----------- packages/kit/src/exports/vite/types.d.ts | 2 +- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index ae35b2aca8bf..10b639c0160f 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -43,7 +43,11 @@ import { compact } from '../../utils/array.js'; import { should_ignore, has_children } from './static_analysis/utils.js'; import { treeshake_prerendered_remotes } from './build/remote.js'; -/** @import { UserConfig } from 'vite' */ +/** + * @import { Options } from '@sveltejs/vite-plugin-svelte' + * @import { PreprocessorGroup } from 'svelte/compiler' + * @import { ConfigEnv, Manifest, Plugin, ResolvedConfig, UserConfig, ViteDevServer } from 'vite' + */ const cwd = posixify(process.cwd()); @@ -89,7 +93,7 @@ const options_regex = /(export\s+const\s+(prerender|csr|ssr|trailingSlash))\s*=/ /** @type {Set} */ const warned = new Set(); -/** @type {import('svelte/compiler').PreprocessorGroup} */ +/** @type {PreprocessorGroup} */ const warning_preprocessor = { script: ({ content, filename }) => { if (!filename) return; @@ -132,12 +136,12 @@ const warning_preprocessor = { /** * Returns the SvelteKit Vite plugins. - * @returns {Promise} + * @returns {Promise} */ export async function sveltekit() { const svelte_config = await load_config(); - /** @type {import('@sveltejs/vite-plugin-svelte').Options['preprocess']} */ + /** @type {Options['preprocess']} */ let preprocess = svelte_config.preprocess; if (Array.isArray(preprocess)) { preprocess = [...preprocess, warning_preprocessor]; @@ -147,7 +151,7 @@ export async function sveltekit() { preprocess = warning_preprocessor; } - /** @type {import('@sveltejs/vite-plugin-svelte').Options} */ + /** @type {Options} */ const vite_plugin_svelte_options = { configFile: false, extensions: svelte_config.extensions, @@ -187,7 +191,7 @@ let build_metadata = undefined; * - https://rollupjs.org/guide/en/#output-generation-hooks * * @param {{ svelte_config: import('types').ValidatedConfig }} options - * @return {Promise} + * @return {Promise} */ async function kit({ svelte_config }) { /** @type {import('vite')} */ @@ -201,10 +205,10 @@ async function kit({ svelte_config }) { const version_hash = hash(kit.version.name); - /** @type {import('vite').ResolvedConfig} */ + /** @type {ResolvedConfig} */ let vite_config; - /** @type {import('vite').ConfigEnv} */ + /** @type {ConfigEnv} */ let vite_config_env; /** @type {boolean} */ @@ -216,7 +220,7 @@ async function kit({ svelte_config }) { /** @type {() => Promise} */ let finalise; - /** @type {import('vite').UserConfig} */ + /** @type {UserConfig} */ let initial_config; const service_worker_entry_file = resolve_entry(kit.files.serviceWorker); @@ -236,7 +240,7 @@ async function kit({ svelte_config }) { const sourcemapIgnoreList = /** @param {string} relative_path */ (relative_path) => relative_path.includes('node_modules') || relative_path.includes(kit.outDir); - /** @type {import('vite').Plugin} */ + /** @type {Plugin} */ const plugin_setup = { name: 'vite-plugin-sveltekit-setup', @@ -270,7 +274,7 @@ async function kit({ svelte_config }) { const generated = path.posix.join(kit.outDir, 'generated'); // dev and preview config can be shared - /** @type {import('vite').UserConfig} */ + /** @type {UserConfig} */ const new_config = { resolve: { alias: [ @@ -440,7 +444,7 @@ async function kit({ svelte_config }) { } }; - /** @type {import('vite').Plugin} */ + /** @type {Plugin} */ const plugin_virtual_modules = { name: 'vite-plugin-sveltekit-virtual-modules', @@ -564,7 +568,7 @@ async function kit({ svelte_config }) { /** * Ensures that client-side code can't accidentally import server-side code, * whether in `*.server.js` files, `$app/server`, `$lib/server`, or `$env/[static|dynamic]/private` - * @type {import('vite').Plugin} + * @type {Plugin} */ const plugin_guard = { name: 'vite-plugin-sveltekit-guard', @@ -671,7 +675,7 @@ async function kit({ svelte_config }) { } }; - /** @type {import('vite').ViteDevServer} */ + /** @type {ViteDevServer} */ let dev_server; /** @type {Array<{ hash: string, file: string }>} */ @@ -683,7 +687,7 @@ async function kit({ svelte_config }) { /** @type {Set} Track which remote hashes have already been emitted */ const emitted_remote_hashes = new Set(); - /** @type {import('vite').Plugin} */ + /** @type {Plugin} */ const plugin_remote = { name: 'vite-plugin-sveltekit-remote', @@ -812,7 +816,7 @@ async function kit({ svelte_config }) { } }; - /** @type {import('vite').Plugin} */ + /** @type {Plugin} */ const plugin_compile = { name: 'vite-plugin-sveltekit-compile', @@ -824,7 +828,7 @@ async function kit({ svelte_config }) { // avoids overwriting the base setting that's also set by Vitest order: 'pre', handler(config) { - /** @type {import('vite').UserConfig} */ + /** @type {UserConfig} */ let new_config; const kit_paths_base = kit.paths.base || '/'; @@ -1072,7 +1076,7 @@ async function kit({ svelte_config }) { const verbose = vite_config.logLevel === 'info'; const log = logger({ verbose }); - /** @type {import('vite').Manifest} */ + /** @type {Manifest} */ const server_manifest = JSON.parse(read(`${out}/server/.vite/manifest.json`)); /** @type {import('types').BuildData} */ @@ -1198,7 +1202,7 @@ async function kit({ svelte_config }) { } } - /** @type {import('vite').Manifest} */ + /** @type {Manifest} */ const client_manifest = JSON.parse(read(`${out}/client/.vite/manifest.json`)); /** diff --git a/packages/kit/src/exports/vite/types.d.ts b/packages/kit/src/exports/vite/types.d.ts index 639348ceeda7..6b8e26742a43 100644 --- a/packages/kit/src/exports/vite/types.d.ts +++ b/packages/kit/src/exports/vite/types.d.ts @@ -3,5 +3,5 @@ export interface EnforcedConfig { } export interface IndexableConfig { - [key: string]: IndexableConfig | undefined + [key: string]: IndexableConfig | undefined; } From 321cd8e6136a68d051da8a2c862e3903ccfcb2df Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 6 Apr 2026 14:07:21 -0700 Subject: [PATCH 06/12] generate types --- packages/kit/types/index.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index d23a0a4b7380..2d75e5ab0ab7 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -2935,10 +2935,11 @@ declare module '@sveltejs/kit/node/polyfills' { } declare module '@sveltejs/kit/vite' { + import type { Plugin } from 'vite'; /** * Returns the SvelteKit Vite plugins. * */ - export function sveltekit(): Promise; + export function sveltekit(): Promise; export {}; } From 0b3a2da0fcfb671cab80fe067ee0f9ebc0454ad7 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 6 Apr 2026 14:14:35 -0700 Subject: [PATCH 07/12] use error.name if available --- packages/kit/src/exports/vite/index.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 10b639c0160f..1d44204d6a77 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -1156,7 +1156,11 @@ async function kit({ svelte_config }) { const error = e instanceof Error ? e - : new Error(/** @type {{ message?: string }} */ (e).message ?? ''); + : new Error( + /** @type {{ message?: string }} */ (e).message ?? + /** @type {{ name?: string }} */ (e).name ?? + '' + ); // without this, errors that occur during the secondary build // will be logged twice From 17fcffc4a289e345752ba1f10f5fed1cffb493b0 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 7 Apr 2026 15:13:07 -0400 Subject: [PATCH 08/12] Apply suggestion from @Rich-Harris --- packages/kit/src/exports/vite/index.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 1d44204d6a77..182796c5fb22 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -1154,13 +1154,7 @@ async function kit({ svelte_config }) { client_chunks = bundle.output; } catch (e) { const error = - e instanceof Error - ? e - : new Error( - /** @type {{ message?: string }} */ (e).message ?? - /** @type {{ name?: string }} */ (e).name ?? - '' - ); + e instanceof Error ? e : new Error(/** @type {any} */ (e).message ?? e ?? ''); // without this, errors that occur during the secondary build // will be logged twice From 1bb2e37fe2b91bffd247da239cac67662907c19c Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 7 Apr 2026 15:13:43 -0400 Subject: [PATCH 09/12] fix --- packages/kit/src/exports/vite/index.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 182796c5fb22..73ccf5621064 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -1,3 +1,6 @@ +/** @import { Options } from '@sveltejs/vite-plugin-svelte' */ +/** @import { PreprocessorGroup } from 'svelte/compiler' */ +/** @import { ConfigEnv, Manifest, Plugin, ResolvedConfig, UserConfig, ViteDevServer } from 'vite' */ import fs from 'node:fs'; import path from 'node:path'; import process from 'node:process'; @@ -43,12 +46,6 @@ import { compact } from '../../utils/array.js'; import { should_ignore, has_children } from './static_analysis/utils.js'; import { treeshake_prerendered_remotes } from './build/remote.js'; -/** - * @import { Options } from '@sveltejs/vite-plugin-svelte' - * @import { PreprocessorGroup } from 'svelte/compiler' - * @import { ConfigEnv, Manifest, Plugin, ResolvedConfig, UserConfig, ViteDevServer } from 'vite' - */ - const cwd = posixify(process.cwd()); /** @type {import('./types.js').EnforcedConfig} */ @@ -194,7 +191,7 @@ let build_metadata = undefined; * @return {Promise} */ async function kit({ svelte_config }) { - /** @type {import('vite')} */ + /** @type {typeof import('vite')} */ const vite = await import_peer('vite'); // @ts-ignore `vite.rolldownVersion` only exists in `vite 8` From afe3df065f1112e46a3bf4b3c6aba0c1f3d421af Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 7 Apr 2026 15:18:20 -0400 Subject: [PATCH 10/12] fixes --- packages/kit/src/exports/vite/dev/index.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/kit/src/exports/vite/dev/index.js b/packages/kit/src/exports/vite/dev/index.js index e6e493d5886c..db50fa0b212c 100644 --- a/packages/kit/src/exports/vite/dev/index.js +++ b/packages/kit/src/exports/vite/dev/index.js @@ -1,3 +1,5 @@ +/** @import { RequestEvent } from '@sveltejs/kit' */ +/** @import { PrerenderOption } from 'types' */ import fs from 'node:fs'; import path from 'node:path'; import process from 'node:process'; @@ -34,13 +36,19 @@ const vite_css_query_regex = /(?:\?|&)(?:raw|url|inline)(?:&|$)/; export async function dev(vite, vite_config, svelte_config, get_remotes) { installPolyfills(); + /** @type {AsyncLocalStorage<{ event: RequestEvent, config: any, prerender: PrerenderOption }>} */ const async_local_storage = new AsyncLocalStorage(); globalThis.__SVELTEKIT_TRACK__ = (label) => { const context = async_local_storage.getStore(); if (!context || context.prerender === true) return; - check_feature(context.event.route.id, context.config, label, svelte_config.kit.adapter); + check_feature( + /** @type {string} */ (context.event.route.id), + context.config, + label, + svelte_config.kit.adapter + ); }; const fetch = globalThis.fetch; @@ -438,7 +446,7 @@ export async function dev(vite, vite_config, svelte_config, get_remotes) { return () => { const serve_static_middleware = vite.middlewares.stack.find( (middleware) => - /** @type {function} */ (middleware.handle).name === 'viteServeStaticMiddleware' + /** @type {Function} */ (middleware.handle).name === 'viteServeStaticMiddleware' ); // Vite will give a 403 on URLs like /test, /static, and /package.json preventing us from From 67448875973c5cdd29dae007e1e6d0c5667a8910 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 7 Apr 2026 15:19:02 -0400 Subject: [PATCH 11/12] tweaks --- packages/kit/src/exports/vite/dev/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/kit/src/exports/vite/dev/index.js b/packages/kit/src/exports/vite/dev/index.js index db50fa0b212c..ecada10f23d0 100644 --- a/packages/kit/src/exports/vite/dev/index.js +++ b/packages/kit/src/exports/vite/dev/index.js @@ -1,5 +1,5 @@ /** @import { RequestEvent } from '@sveltejs/kit' */ -/** @import { PrerenderOption } from 'types' */ +/** @import { PrerenderOption, UniversalNode } from 'types' */ import fs from 'node:fs'; import path from 'node:path'; import process from 'node:process'; @@ -213,7 +213,7 @@ export async function dev(vite, vite_config, svelte_config, get_remotes) { if (node.universal) { if (node.page_options?.ssr === false) { - result.universal = /** @type {import('types').UniversalNode} */ (node.page_options); + result.universal = /** @type {UniversalNode} */ (node.page_options); } else { // TODO: explain why the file was loaded on the server if we fail to load it const { module, module_node } = await resolve(node.universal); From acdfeff5f288eec0962100d40acc98f819cda880 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 7 Apr 2026 15:20:22 -0400 Subject: [PATCH 12/12] this was fine as it was --- packages/kit/src/exports/vite/index.js | 12 +++--------- packages/kit/src/exports/vite/types.d.ts | 4 ---- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 73ccf5621064..fe829e73e240 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -1428,13 +1428,7 @@ async function kit({ svelte_config }) { * @param {UserConfig} resolved_config */ function warn_overridden_config(config, resolved_config) { - const overridden = find_overridden_config( - /** @type {import('./types.js').IndexableConfig } */ (config), - /** @type {import('./types.js').IndexableConfig } */ (resolved_config), - enforced_config, - '', - [] - ); + const overridden = find_overridden_config(config, resolved_config, enforced_config, '', []); if (overridden.length > 0) { console.error( @@ -1445,8 +1439,8 @@ function warn_overridden_config(config, resolved_config) { } /** - * @param {import('./types.js').IndexableConfig | undefined} config - * @param {import('./types.js').IndexableConfig | undefined} resolved_config + * @param {Record} config + * @param {Record} resolved_config * @param {import('./types.js').EnforcedConfig} enforced_config * @param {string} path * @param {string[]} out used locally to compute the return value diff --git a/packages/kit/src/exports/vite/types.d.ts b/packages/kit/src/exports/vite/types.d.ts index 6b8e26742a43..900aa43541ea 100644 --- a/packages/kit/src/exports/vite/types.d.ts +++ b/packages/kit/src/exports/vite/types.d.ts @@ -1,7 +1,3 @@ export interface EnforcedConfig { [key: string]: EnforcedConfig | true; } - -export interface IndexableConfig { - [key: string]: IndexableConfig | undefined; -}