export defineRoutes

pull/4525/head
Divyansh Singh 7 months ago
parent 26f276fee3
commit 356143efd3

@ -1,14 +1,14 @@
import type { PageData } from 'client/shared' import { defineRoutes } from 'vitepress'
import paths from './paths' import paths from './paths'
export default { export default defineRoutes({
async paths(watchedFiles: string[]) { async paths(watchedFiles: string[]) {
console.log('watchedFiles', watchedFiles) // console.log('watchedFiles', watchedFiles)
return paths return paths
}, },
watch: ['**/data-loading/**/*.json'], watch: ['**/data-loading/**/*.json'],
async transformPageData(pageData: PageData) { async transformPageData(pageData) {
console.log('transformPageData', pageData.filePath) // console.log('transformPageData', pageData.filePath)
pageData.title += ' - transformed' pageData.title += ' - transformed'
} }
} })

@ -5,6 +5,11 @@ export * from './contentLoader'
export * from './init/init' export * from './init/init'
export * from './markdown/markdown' export * from './markdown/markdown'
export { defineLoader, type LoaderModule } from './plugins/staticDataPlugin' export { defineLoader, type LoaderModule } from './plugins/staticDataPlugin'
export {
defineRoutes,
type ResolvedRouteConfig,
type RouteModule
} from './plugins/dynamicRoutesPlugin'
export * from './postcss/isolateStyles' export * from './postcss/isolateStyles'
export * from './serve/serve' export * from './serve/serve'
export * from './server' export * from './server'

@ -44,13 +44,14 @@ export interface RouteModule {
paths: paths:
| UserRouteConfig[] | UserRouteConfig[]
| ((watchedFiles: string[]) => Awaitable<UserRouteConfig[]>) | ((watchedFiles: string[]) => Awaitable<UserRouteConfig[]>)
transformPageData?: UserConfig['transformPageData']
} }
interface ResolvedRouteModule { interface ResolvedRouteModule {
watch: string[] | undefined watch: string[] | undefined
routes: ResolvedRouteConfig[] | undefined routes: ResolvedRouteConfig[] | undefined
loader: RouteModule['paths'] loader: RouteModule['paths']
transformPageData?: UserConfig['transformPageData'] transformPageData?: RouteModule['transformPageData']
} }
const dynamicRouteRE = /\[(\w+?)\]/g const dynamicRouteRE = /\[(\w+?)\]/g
@ -59,6 +60,13 @@ const pathLoaderRE = /\.paths\.m?[jt]s$/
const routeModuleCache = new Map<string, ResolvedRouteModule>() const routeModuleCache = new Map<string, ResolvedRouteModule>()
let moduleGraph = new ModuleGraph() let moduleGraph = new ModuleGraph()
/**
* Helper for defining routes with type inference
*/
export function defineRoutes(loader: RouteModule) {
return loader
}
export async function resolvePages( export async function resolvePages(
srcDir: string, srcDir: string,
userConfig: UserConfig, userConfig: UserConfig,

Loading…
Cancel
Save