| 62 | .optional() |
| 63 | |
| 64 | export function parseStartConfig( |
| 65 | opts: z.input<typeof tanstackStartOptionsSchema>, |
| 66 | corePluginOpts: TanStackStartVitePluginCoreOptions, |
| 67 | root: string, |
| 68 | ) { |
| 69 | const options = tanstackStartOptionsSchema.parse(opts) |
| 70 | |
| 71 | const srcDirectory = options.srcDirectory |
| 72 | |
| 73 | const routesDirectory = path.resolve( |
| 74 | root, |
| 75 | srcDirectory, |
| 76 | options.router.routesDirectory ?? 'routes', |
| 77 | ) |
| 78 | |
| 79 | const generatedRouteTree = path.resolve( |
| 80 | root, |
| 81 | srcDirectory, |
| 82 | options.router.generatedRouteTree ?? 'routeTree.gen.ts', |
| 83 | ) |
| 84 | |
| 85 | return { |
| 86 | ...options, |
| 87 | router: { |
| 88 | ...options.router, |
| 89 | ...getConfig( |
| 90 | { |
| 91 | ...options.router, |
| 92 | routesDirectory, |
| 93 | generatedRouteTree, |
| 94 | }, |
| 95 | root, |
| 96 | ), |
| 97 | target: corePluginOpts.framework, |
| 98 | }, |
| 99 | } |
| 100 | } |
| 101 | |
| 102 | const pageSitemapOptionsSchema = z.object({ |
| 103 | exclude: z.boolean().optional(), |