diff --git a/src/cli/utils/defineCommand.ts b/src/cli/utils/defineCommand.ts index 953fae06..64442352 100644 --- a/src/cli/utils/defineCommand.ts +++ b/src/cli/utils/defineCommand.ts @@ -1,5 +1,6 @@ import { consola } from 'consola'; import { printHeader } from './printHeader'; +import { formatDuration } from '../../utils/formatDuration'; export function defineCommand( cb: (...args: any[]) => void | boolean | Promise, @@ -11,9 +12,14 @@ export function defineCommand( const ongoing = await cb(...args); - if (!ongoing) consola.success(`Finished in ${Date.now() - startTime} ms`); + if (!ongoing) + consola.success( + `Finished in ${formatDuration(Date.now() - startTime)}`, + ); } catch (err) { - consola.fail(`Command failed after ${Date.now() - startTime} ms`); + consola.fail( + `Command failed after ${formatDuration(Date.now() - startTime)}`, + ); consola.error(err); process.exit(1); } diff --git a/src/index.ts b/src/index.ts index f650a54b..23db49bf 100644 --- a/src/index.ts +++ b/src/index.ts @@ -15,6 +15,7 @@ import pc from 'picocolors'; import * as vite from 'vite'; import { findOpenPort } from './utils/findOpenPort'; import { relative } from 'path'; +import { formatDuration } from './utils/formatDuration'; export { version } from '../package.json'; export * from './types/external'; @@ -79,6 +80,7 @@ async function buildInternal(config: InternalConfig): Promise { const verb = config.command === 'serve' ? 'Pre-rendering' : 'Building'; const target = `${config.browser}-mv${config.manifestVersion}`; config.logger.info(`${verb} ${pc.cyan(target)} for ${pc.cyan(config.mode)}`); + const startTime = Date.now(); // Cleanup await fs.rm(config.outDir, { recursive: true, force: true }); @@ -94,7 +96,9 @@ async function buildInternal(config: InternalConfig): Promise { await writeManifest(manifest, output, config); // Post-build - config.logger.success('Entrypoints built'); + config.logger.success( + `Built extension in ${formatDuration(Date.now() - startTime)}`, + ); await printBuildSummary(output, config); return output; diff --git a/src/utils/formatDuration.ts b/src/utils/formatDuration.ts new file mode 100644 index 00000000..5d8102f9 --- /dev/null +++ b/src/utils/formatDuration.ts @@ -0,0 +1,6 @@ +export function formatDuration(duration: number): string { + if (duration < 1e3) return `${duration} ms`; + if (duration < 10e3) return `${(duration / 1e3).toFixed(3)} s`; + if (duration < 60e3) return `${(duration / 1e3).toFixed(1)} s`; + return `${(duration / 1e3).toFixed(0)} s`; +}