Configuration API
Stable authoring helpers and exact project and Vite configuration contracts.
Configuration exports
8 public exports, grouped under their canonical import boundary.
@tavojs/core/config
Canonical import boundary for every symbol in this section.
defineConfig#
defineConfig<const T extends TavoConfig>(config: ExactTavoConfig<T>): TDefines the single project configuration object and brands it for runtime validation.
Related guidedefineTavoViteConfig#
defineTavoViteConfig(config?: TavoViteConfigExport | undefined): TavoViteConfigExportDefines a Vite config with the JSX runtime settings required by Tavo.js.
Related guideExactTavoConfig#
type ExactTavoConfig<T extends TavoConfig> = T & {
[K in Exclude<keyof T, keyof TavoConfig>]: never;
};Defines the exact tavo config contract used by the project configuration.
Related guideTavoConfig#
type TavoConfig = {
pagesDir?: string;
cssEntries?: string[];
plugins?: TavoPluginInput;
diagnostics?: {
devOverlay?: boolean;
traces?: boolean;
};
build?: {
prerenderStyles?: "inline" | "external";
budgets?: {
firstLoadJs?: number | string;
routeJs?: number | string;
};
};
ssr?: Omit<NodeHandlerOptions, "modules" | "plugins"> & {
modules?: NodeHandlerOptions["modules"];
};
};Defines the tavo config contract used by the project configuration.
Related guideTavoViteConfig#
type TavoViteConfig = Record<string, unknown> & {
esbuild?: ViteEsbuildOptions | false;
};Defines the tavo vite config contract used by the project configuration.
Related guideTavoViteConfigEnv#
type TavoViteConfigEnv = Record<string, unknown> & {
command?: string;
mode?: string;
isPreview?: boolean;
isSsrBuild?: boolean;
};Defines the tavo vite config env contract used by the project configuration.
Related guideTavoViteConfigExport#
type TavoViteConfigExport = TavoViteConfig | Promise<TavoViteConfig> | ((env: TavoViteConfigEnv) => TavoViteConfig | Promise<TavoViteConfig>);Defines the tavo vite config export contract used by the project configuration.
Related guideViteEsbuildOptions#
type ViteEsbuildOptions = Record<string, unknown> & {
jsx?: string;
jsxImportSource?: string;
};Configures vite esbuild in the project configuration.
Related guide