feat: ignore component options in `compileModule` (#16362)

pull/16505/head
Rich Harris 1 month ago committed by GitHub
parent c7851789d7
commit 7cc4d56263
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,5 @@
---
'svelte': minor
---
feat: ignore component options in `compileModule`

@ -8,7 +8,7 @@ import * as w from './warnings.js';
* @typedef {(input: Input, keypath: string) => Required<Output>} Validator * @typedef {(input: Input, keypath: string) => Required<Output>} Validator
*/ */
const common = { const common_options = {
filename: string('(unknown)'), filename: string('(unknown)'),
// default to process.cwd() where it exists to replicate svelte4 behavior (and make Deno work with this as well) // default to process.cwd() where it exists to replicate svelte4 behavior (and make Deno work with this as well)
@ -48,18 +48,7 @@ const common = {
}) })
}; };
export const validate_module_options = const component_options = {
/** @type {Validator<ModuleCompileOptions, ValidatedModuleCompileOptions>} */ (
object({
...common
})
);
export const validate_component_options =
/** @type {Validator<CompileOptions, ValidatedCompileOptions>} */ (
object({
...common,
accessors: deprecate(w.options_deprecated_accessors, boolean(false)), accessors: deprecate(w.options_deprecated_accessors, boolean(false)),
css: validator('external', (input) => { css: validator('external', (input) => {
@ -129,29 +118,50 @@ export const validate_component_options =
}), }),
enableSourcemap: warn_removed(w.options_removed_enable_sourcemap), enableSourcemap: warn_removed(w.options_removed_enable_sourcemap),
hydratable: warn_removed(w.options_removed_hydratable), hydratable: warn_removed(w.options_removed_hydratable),
format: removed( format: removed(
'The format option has been removed in Svelte 4, the compiler only outputs ESM now. Remove "format" from your compiler options. ' + 'The format option has been removed in Svelte 4, the compiler only outputs ESM now. Remove "format" from your compiler options. ' +
'If you did not set this yourself, bump the version of your bundler plugin (vite-plugin-svelte/rollup-plugin-svelte/svelte-loader)' 'If you did not set this yourself, bump the version of your bundler plugin (vite-plugin-svelte/rollup-plugin-svelte/svelte-loader)'
), ),
tag: removed( tag: removed(
'The tag option has been removed in Svelte 5. Use `<svelte:options customElement="tag-name" />` inside the component instead. ' + 'The tag option has been removed in Svelte 5. Use `<svelte:options customElement="tag-name" />` inside the component instead. ' +
'If that does not solve your use case, please open an issue on GitHub with details.' 'If that does not solve your use case, please open an issue on GitHub with details.'
), ),
sveltePath: removed( sveltePath: removed(
'The sveltePath option has been removed in Svelte 5. ' + 'The sveltePath option has been removed in Svelte 5. ' +
'If this option was crucial for you, please open an issue on GitHub with your use case.' 'If this option was crucial for you, please open an issue on GitHub with your use case.'
), ),
// These two were primarily created for svelte-preprocess (https://github.com/sveltejs/svelte/pull/6194), // These two were primarily created for svelte-preprocess (https://github.com/sveltejs/svelte/pull/6194),
// but with new TypeScript compilation modes strictly separating types it's not necessary anymore // but with new TypeScript compilation modes strictly separating types it's not necessary anymore
errorMode: removed( errorMode: removed(
'The errorMode option has been removed. If you are using this through svelte-preprocess with TypeScript, ' + 'The errorMode option has been removed. If you are using this through svelte-preprocess with TypeScript, ' +
'use the https://www.typescriptlang.org/tsconfig#verbatimModuleSyntax setting instead' 'use the https://www.typescriptlang.org/tsconfig#verbatimModuleSyntax setting instead'
), ),
varsReport: removed( varsReport: removed(
'The vars option has been removed. If you are using this through svelte-preprocess with TypeScript, ' + 'The vars option has been removed. If you are using this through svelte-preprocess with TypeScript, ' +
'use the https://www.typescriptlang.org/tsconfig#verbatimModuleSyntax setting instead' 'use the https://www.typescriptlang.org/tsconfig#verbatimModuleSyntax setting instead'
) )
};
export const validate_module_options =
/** @type {Validator<ModuleCompileOptions, ValidatedModuleCompileOptions>} */ (
object({
...common_options,
...Object.fromEntries(Object.keys(component_options).map((key) => [key, () => {}]))
})
);
export const validate_component_options =
/** @type {Validator<CompileOptions, ValidatedCompileOptions>} */ (
object({
...common_options,
...component_options
}) })
); );

Loading…
Cancel
Save