UNPKG

@tanstack/router-plugin

Version:

Modern and scalable routing for React applications

251 lines (250 loc) 11 kB
import { z } from 'zod'; import { CreateFileRoute, RegisteredRouter, RouteIds } from '@tanstack/router-core'; import { CodeSplitGroupings } from './constants.cjs'; export declare const splitGroupingsSchema: z.ZodEffects<z.ZodArray<z.ZodArray<z.ZodUnion<[z.ZodLiteral<"loader">, z.ZodLiteral<"component">, z.ZodLiteral<"pendingComponent">, z.ZodLiteral<"errorComponent">, z.ZodLiteral<"notFoundComponent">]>, "many">, "many">, ("loader" | "component" | "pendingComponent" | "errorComponent" | "notFoundComponent")[][], ("loader" | "component" | "pendingComponent" | "errorComponent" | "notFoundComponent")[][]>; export type CodeSplittingOptions = { /** * Use this function to programmatically control the code splitting behavior * based on the `routeId` for each route. * * If you just need to change the default behavior, you can use the `defaultBehavior` option. * @param params */ splitBehavior?: (params: { routeId: RouteIds<RegisteredRouter['routeTree']>; }) => CodeSplitGroupings | undefined | void; /** * The default/global configuration to control your code splitting behavior per route. * @default [['component'],['pendingComponent'],['errorComponent'],['notFoundComponent']] */ defaultBehavior?: CodeSplitGroupings; /** * The nodes that shall be deleted from the route. * @default undefined */ deleteNodes?: Array<DeletableNodes>; /** * @default true */ addHmr?: boolean; }; type FileRouteKeys = keyof (Parameters<CreateFileRoute<any, any, any, any, any>>[0] & {}); export type DeletableNodes = FileRouteKeys | (string & {}); export declare const configSchema: z.ZodObject<{ target: z.ZodDefault<z.ZodOptional<z.ZodEnum<["react", "solid", "vue"]>>>; virtualRouteConfig: z.ZodOptional<z.ZodUnion<[z.ZodType<import('@tanstack/virtual-file-routes').VirtualRootRoute, z.ZodTypeDef, import('@tanstack/virtual-file-routes').VirtualRootRoute>, z.ZodString]>>; routeFilePrefix: z.ZodOptional<z.ZodString>; routeFileIgnorePrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>; routeFileIgnorePattern: z.ZodOptional<z.ZodString>; routesDirectory: z.ZodDefault<z.ZodOptional<z.ZodString>>; quoteStyle: z.ZodDefault<z.ZodOptional<z.ZodEnum<["single", "double"]>>>; semicolons: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; disableLogging: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; routeTreeFileHeader: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>; indexToken: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodObject<{ regex: z.ZodString; flags: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { regex: string; flags?: string | undefined; }, { regex: string; flags?: string | undefined; }>]>>>; routeToken: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodObject<{ regex: z.ZodString; flags: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { regex: string; flags?: string | undefined; }, { regex: string; flags?: string | undefined; }>]>>>; pathParamsAllowedCharacters: z.ZodOptional<z.ZodArray<z.ZodEnum<[";", ":", "@", "&", "=", "+", "$", ","]>, "many">>; } & { generatedRouteTree: z.ZodDefault<z.ZodOptional<z.ZodString>>; disableTypes: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; verboseFileRoutes: z.ZodOptional<z.ZodBoolean>; addExtensions: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; enableRouteTreeFormatting: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; routeTreeFileFooter: z.ZodOptional<z.ZodUnion<[z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodArray<z.ZodString, "many">>]>>; autoCodeSplitting: z.ZodOptional<z.ZodBoolean>; customScaffolding: z.ZodOptional<z.ZodObject<{ routeTemplate: z.ZodOptional<z.ZodString>; lazyRouteTemplate: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { routeTemplate?: string | undefined; lazyRouteTemplate?: string | undefined; }, { routeTemplate?: string | undefined; lazyRouteTemplate?: string | undefined; }>>; experimental: z.ZodOptional<z.ZodObject<{ enableCodeSplitting: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { enableCodeSplitting?: boolean | undefined; }, { enableCodeSplitting?: boolean | undefined; }>>; plugins: z.ZodOptional<z.ZodArray<z.ZodType<import('@tanstack/router-generator').GeneratorPlugin, z.ZodTypeDef, import('@tanstack/router-generator').GeneratorPlugin>, "many">>; tmpDir: z.ZodDefault<z.ZodOptional<z.ZodString>>; importRoutesUsingAbsolutePaths: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; } & { enableRouteGeneration: z.ZodOptional<z.ZodBoolean>; codeSplittingOptions: z.ZodOptional<z.ZodType<CodeSplittingOptions, z.ZodTypeDef, CodeSplittingOptions>>; plugin: z.ZodOptional<z.ZodObject<{ vite: z.ZodOptional<z.ZodObject<{ environmentName: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { environmentName?: string | undefined; }, { environmentName?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { vite?: { environmentName?: string | undefined; } | undefined; }, { vite?: { environmentName?: string | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { target: "react" | "solid" | "vue"; routeFileIgnorePrefix: string; routesDirectory: string; quoteStyle: "single" | "double"; semicolons: boolean; disableLogging: boolean; routeTreeFileHeader: string[]; indexToken: string | RegExp | { regex: string; flags?: string | undefined; }; routeToken: string | RegExp | { regex: string; flags?: string | undefined; }; generatedRouteTree: string; disableTypes: boolean; addExtensions: boolean; enableRouteTreeFormatting: boolean; tmpDir: string; importRoutesUsingAbsolutePaths: boolean; enableRouteGeneration?: boolean | undefined; codeSplittingOptions?: CodeSplittingOptions | undefined; plugin?: { vite?: { environmentName?: string | undefined; } | undefined; } | undefined; virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined; routeFilePrefix?: string | undefined; routeFileIgnorePattern?: string | undefined; pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined; verboseFileRoutes?: boolean | undefined; routeTreeFileFooter?: string[] | ((...args: unknown[]) => string[]) | undefined; autoCodeSplitting?: boolean | undefined; customScaffolding?: { routeTemplate?: string | undefined; lazyRouteTemplate?: string | undefined; } | undefined; experimental?: { enableCodeSplitting?: boolean | undefined; } | undefined; plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined; }, { enableRouteGeneration?: boolean | undefined; codeSplittingOptions?: CodeSplittingOptions | undefined; plugin?: { vite?: { environmentName?: string | undefined; } | undefined; } | undefined; target?: "react" | "solid" | "vue" | undefined; virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined; routeFilePrefix?: string | undefined; routeFileIgnorePrefix?: string | undefined; routeFileIgnorePattern?: string | undefined; routesDirectory?: string | undefined; quoteStyle?: "single" | "double" | undefined; semicolons?: boolean | undefined; disableLogging?: boolean | undefined; routeTreeFileHeader?: string[] | undefined; indexToken?: string | RegExp | { regex: string; flags?: string | undefined; } | undefined; routeToken?: string | RegExp | { regex: string; flags?: string | undefined; } | undefined; pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined; generatedRouteTree?: string | undefined; disableTypes?: boolean | undefined; verboseFileRoutes?: boolean | undefined; addExtensions?: boolean | undefined; enableRouteTreeFormatting?: boolean | undefined; routeTreeFileFooter?: string[] | ((...args: unknown[]) => string[]) | undefined; autoCodeSplitting?: boolean | undefined; customScaffolding?: { routeTemplate?: string | undefined; lazyRouteTemplate?: string | undefined; } | undefined; experimental?: { enableCodeSplitting?: boolean | undefined; } | undefined; plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined; tmpDir?: string | undefined; importRoutesUsingAbsolutePaths?: boolean | undefined; }>; export declare const getConfig: (inlineConfig: Partial<Config>, root: string) => { target: "react" | "solid" | "vue"; routeFileIgnorePrefix: string; routesDirectory: string; quoteStyle: "single" | "double"; semicolons: boolean; disableLogging: boolean; routeTreeFileHeader: string[]; indexToken: string | RegExp | { regex: string; flags?: string | undefined; }; routeToken: string | RegExp | { regex: string; flags?: string | undefined; }; generatedRouteTree: string; disableTypes: boolean; addExtensions: boolean; enableRouteTreeFormatting: boolean; tmpDir: string; importRoutesUsingAbsolutePaths: boolean; enableRouteGeneration?: boolean | undefined; codeSplittingOptions?: CodeSplittingOptions | undefined; plugin?: { vite?: { environmentName?: string | undefined; } | undefined; } | undefined; virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined; routeFilePrefix?: string | undefined; routeFileIgnorePattern?: string | undefined; pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined; verboseFileRoutes?: boolean | undefined; routeTreeFileFooter?: string[] | ((...args: unknown[]) => string[]) | undefined; autoCodeSplitting?: boolean | undefined; customScaffolding?: { routeTemplate?: string | undefined; lazyRouteTemplate?: string | undefined; } | undefined; experimental?: { enableCodeSplitting?: boolean | undefined; } | undefined; plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined; }; export type Config = z.infer<typeof configSchema>; export type ConfigInput = z.input<typeof configSchema>; export type ConfigOutput = z.output<typeof configSchema>; export {};