UNPKG

valaxy-addon-git-log

Version:

Integrates git logs into your page of Valaxy site.

46 lines (39 loc) 1.41 kB
import type { GitLogOptions } from '../types' import consola from 'consola' import defu from 'defu' import Git from 'simple-git' import { defineValaxyAddon } from 'valaxy' import pkg from '../package.json' import { flushGitLogBatch, handleGitLogInfo, initBasePath } from './gitLog' export const git = Git({ maxConcurrentProcesses: 10, }) export const addonGitLog = defineValaxyAddon<GitLogOptions>(options => ({ name: pkg.name, enable: true, options: defu( options, { contributor: { strategy: options?.contributor?.mode === 'api' ? 'runtime' : options?.contributor?.mode === 'git' ? 'build-time' : 'prebuilt', }, }, ), setup(valaxy) { if (options?.contributor?.mode) consola.warn('valaxy-addon-git-log: contributor.mode is deprecated. Please use contributor.strategy instead.') // Start resolving basePath early; callers use ensureBasePath() to await it // Start resolving basePath early; ensureBasePath() handles failures internally initBasePath() // Phase 1: collect routes (no git calls, instant) valaxy.hook('vue-router:extendRoute', async (route) => { await handleGitLogInfo(options || {}, route) }) // Phase 2: batch-process all collected routes (2 git calls total) valaxy.hook('vue-router:beforeWriteFiles', async () => { await flushGitLogBatch(options || {}) }) }, }))