From c5f94be5d16c8bd190b66e3d88764d24e947c352 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Sun, 30 Jul 2023 19:41:01 +0800 Subject: [PATCH] feat(nuxt): expose filtered templates in `app:templatesGenerated` hook (#21935) --- packages/nuxt/src/core/app.ts | 6 ++++-- packages/schema/src/types/hooks.ts | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/core/app.ts b/packages/nuxt/src/core/app.ts index dd030ed4a1..565e5e2959 100644 --- a/packages/nuxt/src/core/app.ts +++ b/packages/nuxt/src/core/app.ts @@ -33,8 +33,10 @@ export async function generateApp (nuxt: Nuxt, app: NuxtApp, options: { filter?: // Compile templates into vfs const templateContext = { utils: templateUtils, nuxt, app } - await Promise.all((app.templates as Array>) + const filteredTemplates = (app.templates as Array>) .filter(template => !options.filter || options.filter(template)) + + await Promise.all(filteredTemplates .map(async (template) => { const contents = await compileTemplate(template, templateContext) @@ -55,7 +57,7 @@ export async function generateApp (nuxt: Nuxt, app: NuxtApp, options: { filter?: } })) - await nuxt.callHook('app:templatesGenerated', app) + await nuxt.callHook('app:templatesGenerated', app, filteredTemplates, options) } async function resolveApp (nuxt: Nuxt, app: NuxtApp) { diff --git a/packages/schema/src/types/hooks.ts b/packages/schema/src/types/hooks.ts index ba6f7c8c2a..6bd5fc3a91 100644 --- a/packages/schema/src/types/hooks.ts +++ b/packages/schema/src/types/hooks.ts @@ -123,7 +123,7 @@ export interface NuxtHooks { * @param app The configured `NuxtApp` object * @returns Promise */ - 'app:templatesGenerated': (app: NuxtApp) => HookResult + 'app:templatesGenerated': (app: NuxtApp, templates: ResolvedNuxtTemplate[], options?: GenerateAppOptions) => HookResult /** * Called before Nuxt bundle builder.