From 59357541d118c10a3f6477875f19f982e00cf845 Mon Sep 17 00:00:00 2001 From: dominikg Date: Mon, 18 Aug 2025 15:54:23 +0200 Subject: [PATCH] fix(api): rename idFilter to filter to avoid confusion --- .changeset/ninety-squids-lead.md | 5 +++++ docs/advanced-usage.md | 2 +- packages/vite-plugin-svelte/src/plugins/compile.js | 2 +- packages/vite-plugin-svelte/src/plugins/configure.js | 4 ++-- packages/vite-plugin-svelte/src/plugins/hot-update.js | 4 ++-- packages/vite-plugin-svelte/src/plugins/load-custom.js | 2 +- packages/vite-plugin-svelte/src/plugins/preprocess.js | 2 +- packages/vite-plugin-svelte/src/types/plugin-api.d.ts | 7 ++++++- 8 files changed, 19 insertions(+), 9 deletions(-) create mode 100644 .changeset/ninety-squids-lead.md diff --git a/.changeset/ninety-squids-lead.md b/.changeset/ninety-squids-lead.md new file mode 100644 index 000000000..cdc97b35a --- /dev/null +++ b/.changeset/ninety-squids-lead.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/vite-plugin-svelte': patch +--- + +fix(api): add `api.filter` and deprecate `api.idFilter` to avoid confusing `filter.id = idFilter.id` assignments when used as hybrid filter in other plugins diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md index 805d36572..9d3cd31c6 100644 --- a/docs/advanced-usage.md +++ b/docs/advanced-usage.md @@ -19,7 +19,7 @@ function mySvelteTransform() { configResolved(c) { // optional, use the exact same id filter as vite-plugin-svelte itself const svelteIdFilter = c.plugins.find((p) => p.name === 'vite-plugin-svelte:config').api - .idFilter; + .filter.id; plugin.transform.filter.id = svelteIdFilter; }, transform: { diff --git a/packages/vite-plugin-svelte/src/plugins/compile.js b/packages/vite-plugin-svelte/src/plugins/compile.js index d43270e22..e696d8c40 100644 --- a/packages/vite-plugin-svelte/src/plugins/compile.js +++ b/packages/vite-plugin-svelte/src/plugins/compile.js @@ -20,7 +20,7 @@ export function compile(api) { name: 'vite-plugin-svelte:compile', configResolved() { //@ts-expect-error defined below but filter not in type - plugin.transform.filter = api.idFilter; + plugin.transform.filter = api.filter; options = api.options; compileSvelte = api.compileSvelte; }, diff --git a/packages/vite-plugin-svelte/src/plugins/configure.js b/packages/vite-plugin-svelte/src/plugins/configure.js index 68f5e080a..b5538b06a 100644 --- a/packages/vite-plugin-svelte/src/plugins/configure.js +++ b/packages/vite-plugin-svelte/src/plugins/configure.js @@ -71,8 +71,8 @@ export function configure(api, inlineOptions) { api.options.stats = new VitePluginSvelteStats(); } - api.idFilter = buildIdFilter(options); - + api.filter = buildIdFilter(options); + api.idFilter = api.filter; api.idParser = buildIdParser(options); api.compileSvelte = createCompileSvelte(); log.debug('resolved options', api.options, 'config'); diff --git a/packages/vite-plugin-svelte/src/plugins/hot-update.js b/packages/vite-plugin-svelte/src/plugins/hot-update.js index b36f3fc1f..b264009a3 100644 --- a/packages/vite-plugin-svelte/src/plugins/hot-update.js +++ b/packages/vite-plugin-svelte/src/plugins/hot-update.js @@ -34,12 +34,12 @@ export function hotUpdate(api) { plugin.transform.filter = { id: { // reinclude virtual styles to get their output - include: [...api.idFilter.id.include, SVELTE_VIRTUAL_STYLE_ID_REGEX], + include: [...api.filter.id.include, SVELTE_VIRTUAL_STYLE_ID_REGEX], exclude: [ // ignore files in node_modules, we don't hot update them /\/node_modules\//, // remove style exclusion - ...api.idFilter.id.exclude.filter((filter) => filter !== SVELTE_VIRTUAL_STYLE_ID_REGEX) + ...api.filter.id.exclude.filter((filter) => filter !== SVELTE_VIRTUAL_STYLE_ID_REGEX) ] } }; diff --git a/packages/vite-plugin-svelte/src/plugins/load-custom.js b/packages/vite-plugin-svelte/src/plugins/load-custom.js index 0e32bba49..2c762c0d2 100644 --- a/packages/vite-plugin-svelte/src/plugins/load-custom.js +++ b/packages/vite-plugin-svelte/src/plugins/load-custom.js @@ -15,7 +15,7 @@ export function loadCustom(api) { enforce: 'pre', // must come before vites own asset handling or custom extensions like .svg won't work configResolved() { //@ts-expect-error load defined below but filter not in type - plugin.load.filter = api.idFilter; + plugin.load.filter = api.filter; }, load: { diff --git a/packages/vite-plugin-svelte/src/plugins/preprocess.js b/packages/vite-plugin-svelte/src/plugins/preprocess.js index 0bdd8f14b..f6ba8ee39 100644 --- a/packages/vite-plugin-svelte/src/plugins/preprocess.js +++ b/packages/vite-plugin-svelte/src/plugins/preprocess.js @@ -32,7 +32,7 @@ export function preprocess(api) { enforce: 'pre', configResolved(c) { //@ts-expect-error defined below but filter not in type - plugin.transform.filter = api.idFilter; + plugin.transform.filter = api.filter; options = api.options; if (arraify(options.preprocess).length > 0) { preprocessSvelte = createPreprocessSvelte(options, c); diff --git a/packages/vite-plugin-svelte/src/types/plugin-api.d.ts b/packages/vite-plugin-svelte/src/types/plugin-api.d.ts index 66e20105d..61869436e 100644 --- a/packages/vite-plugin-svelte/src/types/plugin-api.d.ts +++ b/packages/vite-plugin-svelte/src/types/plugin-api.d.ts @@ -4,7 +4,12 @@ import type { CompileSvelte } from './compile.d.ts'; export interface PluginAPI { options: ResolvedOptions; - idFilter: IdFilter; + filter: IdFilter; idParser: IdParser; compileSvelte: CompileSvelte; + /** + * @deprecated use 'filter' instead + * // TODO remove in next major + */ + idFilter: IdFilter; }