From e0b730aa8ee9bec1fe16245c4c1a1a91f62bed42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20S=C3=A1nchez?= Date: Sat, 9 Jul 2022 17:00:25 +0200 Subject: [PATCH] feat: provide build end hook (#709) Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> --- src/node/build/build.ts | 2 ++ src/node/config.ts | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/node/build/build.ts b/src/node/build/build.ts index d8c34f3f725..5936a61f539 100644 --- a/src/node/build/build.ts +++ b/src/node/build/build.ts @@ -87,5 +87,7 @@ export async function build( await fs.remove(siteConfig.tempDir) } + await siteConfig.buildEnd?.(siteConfig) + console.log(`build complete in ${((Date.now() - start) / 1000).toFixed(2)}s.`) } diff --git a/src/node/config.ts b/src/node/config.ts index 7560020e66a..223238c72e5 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -71,6 +71,12 @@ export interface UserConfig { * @default false */ ignoreDeadLinks?: boolean + + /** + * Build end hook: called when SSG finish. + * @param siteConfig The resolved configuration. + */ + buildEnd?: (siteConfig: SiteConfig) => Promise } export type RawConfigExports = @@ -88,6 +94,7 @@ export interface SiteConfig | 'mpa' | 'lastUpdated' | 'ignoreDeadLinks' + | 'buildEnd' > { root: string srcDir: string @@ -166,7 +173,8 @@ export async function resolveConfig( vite: userConfig.vite, shouldPreload: userConfig.shouldPreload, mpa: !!userConfig.mpa, - ignoreDeadLinks: userConfig.ignoreDeadLinks + ignoreDeadLinks: userConfig.ignoreDeadLinks, + buildEnd: userConfig.buildEnd } return config