feat: pages:resolved hook

This commit is contained in:
Bobbie Goede 2024-09-05 22:30:53 +02:00
parent 181d043eaf
commit 9d387f722c
2 changed files with 12 additions and 8 deletions

View File

@ -64,17 +64,14 @@ export async function resolvePagesRoutes (): Promise<NuxtPage[]> {
shouldUseServerComponents: !!nuxt.options.experimental.componentIslands, shouldUseServerComponents: !!nuxt.options.experimental.componentIslands,
}) })
const pages = uniqueBy(allRoutes, 'path')
const shouldAugment = nuxt.options.experimental.scanPageMeta || nuxt.options.experimental.typedPages const shouldAugment = nuxt.options.experimental.scanPageMeta || nuxt.options.experimental.typedPages
const pages = uniqueBy(allRoutes, 'path')
await nuxt.callHook('pages:extend', pages)
if (shouldAugment) { if (shouldAugment) {
const augmentedPages = await augmentPages(pages, nuxt.vfs) await augmentPages(pages, nuxt.vfs)
await nuxt.callHook('pages:extend', pages) await nuxt.callHook('pages:resolved', pages)
await augmentPages(pages, nuxt.vfs, augmentedPages)
augmentedPages.clear()
} else {
await nuxt.callHook('pages:extend', pages)
} }
return pages return pages

View File

@ -189,6 +189,13 @@ export interface NuxtHooks {
*/ */
'pages:extend': (pages: NuxtPage[]) => HookResult 'pages:extend': (pages: NuxtPage[]) => HookResult
/**
* Called after pages routes are resolved.
* @param pages Array containing resolved pages
* @returns Promise
*/
'pages:resolved': (pages: NuxtPage[]) => HookResult
/** /**
* Called when resolving `app/router.options` files. It allows modifying the detected router options files * Called when resolving `app/router.options` files. It allows modifying the detected router options files
* and adding new ones. * and adding new ones.