228 lines
8.0 KiB
TypeScript
228 lines
8.0 KiB
TypeScript
|
import { UserConfig, Plugin } from 'vite';
|
||
|
import { CompileOptions, Warning } from 'svelte/types/compiler/interfaces';
|
||
|
export { CompileOptions, Warning } from 'svelte/types/compiler/interfaces';
|
||
|
import { PreprocessorGroup } from 'svelte/types/compiler/preprocess';
|
||
|
export { MarkupPreprocessor, Preprocessor, PreprocessorGroup, Processed } from 'svelte/types/compiler/preprocess';
|
||
|
import { KitConfig } from '@sveltejs/kit';
|
||
|
|
||
|
interface Options {
|
||
|
/**
|
||
|
* Path to a svelte config file, either absolute or relative to Vite root
|
||
|
*
|
||
|
* set to `false` to ignore the svelte config file
|
||
|
*
|
||
|
* @see https://vitejs.dev/config/#root
|
||
|
*/
|
||
|
configFile?: string | false;
|
||
|
/**
|
||
|
* A `picomatch` pattern, or array of patterns, which specifies the files the plugin should
|
||
|
* operate on. By default, all svelte files are included.
|
||
|
*
|
||
|
* @see https://github.com/micromatch/picomatch
|
||
|
*/
|
||
|
include?: Arrayable<string>;
|
||
|
/**
|
||
|
* A `picomatch` pattern, or array of patterns, which specifies the files to be ignored by the
|
||
|
* plugin. By default, no files are ignored.
|
||
|
*
|
||
|
* @see https://github.com/micromatch/picomatch
|
||
|
*/
|
||
|
exclude?: Arrayable<string>;
|
||
|
/**
|
||
|
* A list of file extensions to be compiled by Svelte
|
||
|
*
|
||
|
* @default ['.svelte']
|
||
|
*/
|
||
|
extensions?: string[];
|
||
|
/**
|
||
|
* An array of preprocessors to transform the Svelte source code before compilation
|
||
|
*
|
||
|
* @see https://svelte.dev/docs#svelte_preprocess
|
||
|
*/
|
||
|
preprocess?: Arrayable<PreprocessorGroup>;
|
||
|
/**
|
||
|
* Emit Svelte styles as virtual CSS files for Vite and other plugins to process
|
||
|
*
|
||
|
* @default true
|
||
|
*/
|
||
|
emitCss?: boolean;
|
||
|
/**
|
||
|
* The options to be passed to the Svelte compiler. A few options are set by default,
|
||
|
* including `dev` and `css`. However, some options are non-configurable, like
|
||
|
* `filename`, `format`, `generate`, and `cssHash` (in dev).
|
||
|
*
|
||
|
* @see https://svelte.dev/docs#svelte_compile
|
||
|
*/
|
||
|
compilerOptions?: Omit<CompileOptions, 'filename' | 'format' | 'generate'>;
|
||
|
/**
|
||
|
* Handles warning emitted from the Svelte compiler
|
||
|
*/
|
||
|
onwarn?: (warning: Warning, defaultHandler?: (warning: Warning) => void) => void;
|
||
|
/**
|
||
|
* Enable or disable Hot Module Replacement.
|
||
|
*
|
||
|
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
*
|
||
|
* DO NOT CUSTOMIZE SVELTE-HMR OPTIONS UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING
|
||
|
*
|
||
|
* YOU HAVE BEEN WARNED
|
||
|
*
|
||
|
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
*
|
||
|
* Set an object to pass custom options to svelte-hmr
|
||
|
*
|
||
|
* @see https://github.com/rixo/svelte-hmr#options
|
||
|
* @default true for development, always false for production
|
||
|
*/
|
||
|
hot?: boolean | {
|
||
|
injectCss?: boolean;
|
||
|
[key: string]: any;
|
||
|
};
|
||
|
/**
|
||
|
* Some Vite plugins can contribute additional preprocessors by defining `api.sveltePreprocess`.
|
||
|
* If you don't want to use them, set this to true to ignore them all or use an array of strings
|
||
|
* with plugin names to specify which.
|
||
|
*
|
||
|
* @default false
|
||
|
*/
|
||
|
ignorePluginPreprocessors?: boolean | string[];
|
||
|
/**
|
||
|
* vite-plugin-svelte automatically handles excluding svelte libraries and reinclusion of their dependencies
|
||
|
* in vite.optimizeDeps.
|
||
|
*
|
||
|
* `disableDependencyReinclusion: true` disables all reinclusions
|
||
|
* `disableDependencyReinclusion: ['foo','bar']` disables reinclusions for dependencies of foo and bar
|
||
|
*
|
||
|
* This should be used for hybrid packages that contain both node and browser dependencies, eg Routify
|
||
|
*
|
||
|
* @default false
|
||
|
*/
|
||
|
disableDependencyReinclusion?: boolean | string[];
|
||
|
/**
|
||
|
* These options are considered experimental and breaking changes to them can occur in any release
|
||
|
*/
|
||
|
experimental?: ExperimentalOptions;
|
||
|
/**
|
||
|
* Options for SvelteKit
|
||
|
*/
|
||
|
kit?: KitConfig;
|
||
|
}
|
||
|
/**
|
||
|
* These options are considered experimental and breaking changes to them can occur in any release
|
||
|
*/
|
||
|
interface ExperimentalOptions {
|
||
|
/**
|
||
|
* Use extra preprocessors that delegate style and TypeScript preprocessing to native Vite plugins
|
||
|
*
|
||
|
* Do not use together with `svelte-preprocess`!
|
||
|
*
|
||
|
* @default false
|
||
|
*/
|
||
|
useVitePreprocess?: boolean;
|
||
|
/**
|
||
|
* Force Vite to pre-bundle Svelte libraries
|
||
|
*
|
||
|
* @default false
|
||
|
*/
|
||
|
prebundleSvelteLibraries?: boolean;
|
||
|
/**
|
||
|
* If a preprocessor does not provide a sourcemap, a best-effort fallback sourcemap will be provided.
|
||
|
* This option requires `diff-match-patch` to be installed as a peer dependency.
|
||
|
*
|
||
|
* @see https://github.com/google/diff-match-patch
|
||
|
* @default false
|
||
|
*/
|
||
|
generateMissingPreprocessorSourcemaps?: boolean;
|
||
|
/**
|
||
|
* A function to update `compilerOptions` before compilation
|
||
|
*
|
||
|
* `data.filename` - The file to be compiled
|
||
|
* `data.code` - The preprocessed Svelte code
|
||
|
* `data.compileOptions` - The current compiler options
|
||
|
*
|
||
|
* To change part of the compiler options, return an object with the changes you need.
|
||
|
*
|
||
|
* @example
|
||
|
* ```
|
||
|
* ({ filename, compileOptions }) => {
|
||
|
* // Dynamically set hydration per Svelte file
|
||
|
* if (compileWithHydratable(filename) && !compileOptions.hydratable) {
|
||
|
* return { hydratable: true };
|
||
|
* }
|
||
|
* }
|
||
|
* ```
|
||
|
*/
|
||
|
dynamicCompileOptions?: (data: {
|
||
|
filename: string;
|
||
|
code: string;
|
||
|
compileOptions: Partial<CompileOptions>;
|
||
|
}) => Promise<Partial<CompileOptions> | void> | Partial<CompileOptions> | void;
|
||
|
/**
|
||
|
* enable svelte inspector
|
||
|
*/
|
||
|
inspector?: InspectorOptions | boolean;
|
||
|
/**
|
||
|
* send a websocket message with svelte compiler warnings during dev
|
||
|
*
|
||
|
*/
|
||
|
sendWarningsToBrowser?: boolean;
|
||
|
}
|
||
|
interface InspectorOptions {
|
||
|
/**
|
||
|
* define a key combo to toggle inspector,
|
||
|
* @default 'control-shift' on windows, 'meta-shift' on other os
|
||
|
*
|
||
|
* any number of modifiers `control` `shift` `alt` `meta` followed by zero or one regular key, separated by -
|
||
|
* examples: control-shift, control-o, control-alt-s meta-x control-meta
|
||
|
* Some keys have native behavior (e.g. alt-s opens history menu on firefox).
|
||
|
* To avoid conflicts or accidentally typing into inputs, modifier only combinations are recommended.
|
||
|
*/
|
||
|
toggleKeyCombo?: string;
|
||
|
/**
|
||
|
* inspector is automatically disabled when releasing toggleKeyCombo after holding it for a longpress
|
||
|
* @default false
|
||
|
*/
|
||
|
holdMode?: boolean;
|
||
|
/**
|
||
|
* when to show the toggle button
|
||
|
* @default 'active'
|
||
|
*/
|
||
|
showToggleButton?: 'always' | 'active' | 'never';
|
||
|
/**
|
||
|
* where to display the toggle button
|
||
|
* @default top-right
|
||
|
*/
|
||
|
toggleButtonPos?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
|
||
|
/**
|
||
|
* inject custom styles when inspector is active
|
||
|
*/
|
||
|
customStyles?: boolean;
|
||
|
/**
|
||
|
* append an import to the module id ending with `appendTo` instead of adding a script into body
|
||
|
* useful for frameworks that do not support trannsformIndexHtml hook
|
||
|
*
|
||
|
* WARNING: only set this if you know exactly what it does.
|
||
|
* Regular users of vite-plugin-svelte or SvelteKit do not need it
|
||
|
*/
|
||
|
appendTo?: string;
|
||
|
}
|
||
|
declare type ModuleFormat = NonNullable<CompileOptions['format']>;
|
||
|
declare type CssHashGetter = NonNullable<CompileOptions['cssHash']>;
|
||
|
declare type Arrayable<T> = T | T[];
|
||
|
|
||
|
declare function loadSvelteConfig(viteConfig?: UserConfig, inlineOptions?: Partial<Options>): Promise<Partial<Options> | undefined>;
|
||
|
|
||
|
declare type SvelteWarningsMessage = {
|
||
|
id: string;
|
||
|
filename: string;
|
||
|
normalizedFilename: string;
|
||
|
timestamp: number;
|
||
|
warnings: Warning[];
|
||
|
allWarnings: Warning[];
|
||
|
rawWarnings: Warning[];
|
||
|
};
|
||
|
|
||
|
declare function svelte(inlineOptions?: Partial<Options>): Plugin[];
|
||
|
|
||
|
export { Arrayable, CssHashGetter, ModuleFormat, Options, SvelteWarningsMessage, loadSvelteConfig, svelte };
|