From 16a7157a1a4de2cb3d8853905d944a9b99a090fe Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Sun, 23 Feb 2025 15:24:39 +0530 Subject: [PATCH] wip --- src/node/config.ts | 12 ++---------- src/node/markdownToVue.ts | 2 +- src/node/plugins/dynamicRoutesPlugin.ts | 20 ++++++++++---------- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/node/config.ts b/src/node/config.ts index 5f1698fe..75740b80 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -97,20 +97,12 @@ export async function resolveConfig( ? userThemeDir : DEFAULT_THEME_PATH - const { pages, dynamicRoutes, rewrites } = await resolvePages( - srcDir, - userConfig, - logger - ) - const config: SiteConfig = { root, srcDir, assetsDir, site, themeDir, - pages, - dynamicRoutes, configPath, configDeps, outDir, @@ -135,10 +127,10 @@ export async function resolveConfig( transformHead: userConfig.transformHead, transformHtml: userConfig.transformHtml, transformPageData: userConfig.transformPageData, - rewrites, userConfig, sitemap: userConfig.sitemap, - buildConcurrency: userConfig.buildConcurrency ?? 64 + buildConcurrency: userConfig.buildConcurrency ?? 64, + ...(await resolvePages(srcDir, userConfig, logger)) } // to be shared with content loaders diff --git a/src/node/markdownToVue.ts b/src/node/markdownToVue.ts index 502bb2cd..412b53d5 100644 --- a/src/node/markdownToVue.ts +++ b/src/node/markdownToVue.ts @@ -47,7 +47,7 @@ let __rewrites = new Map() function getResolutionCache(siteConfig: SiteConfig) { // @ts-expect-error internal - if (siteConfig.__dirty !== false) { + if (siteConfig.__dirty) { __pages = siteConfig.pages.map((p) => slash(p.replace(/\.md$/, ''))) __dynamicRoutes = new Map( diff --git a/src/node/plugins/dynamicRoutesPlugin.ts b/src/node/plugins/dynamicRoutesPlugin.ts index 8d82eddd..2fa647a8 100644 --- a/src/node/plugins/dynamicRoutesPlugin.ts +++ b/src/node/plugins/dynamicRoutesPlugin.ts @@ -14,11 +14,13 @@ import { resolveRewrites } from './rewritesPlugin' export const dynamicRouteRE = /\[(\w+?)\]/g +let fileToModulesMap: Record> = {} + export async function resolvePages( srcDir: string, userConfig: UserConfig, logger: Logger -) { +): Promise> { // Important: tinyglobby doesn't guarantee order of the returned files. // We must sort the pages so the input list to rollup is stable across // builds - otherwise different input order could result in different exports @@ -45,19 +47,19 @@ export async function resolvePages( ;(dynamicRouteRE.test(file) ? dynamicRouteFiles : pages).push(file) }) - const dynamicRoutes = await resolveDynamicRoutes( - srcDir, - dynamicRouteFiles, - logger - ) - pages.push(...dynamicRoutes.routes.map((r) => r.path)) + const { routes, fileToModulesMap: fileToModulesMap_ } = + await resolveDynamicRoutes(srcDir, dynamicRouteFiles, logger) + + pages.push(...routes.map((r) => r.path)) + fileToModulesMap = fileToModulesMap_ const rewrites = resolveRewrites(pages, userConfig.rewrites) return { pages, - dynamicRoutes, + dynamicRoutes: { routes }, rewrites, + // @ts-expect-error internal flag to reload resolution cache in ../markdownToVue.ts __dirty: true } } @@ -97,8 +99,6 @@ export type ResolvedRouteConfig = UserRouteConfig & { fullPath: string } -const fileToModulesMap: Record> = {} - export const dynamicRoutesPlugin = async ( config: SiteConfig ): Promise => {