fix: Print durations as ms/s based on total time

This commit is contained in:
Aaron Klinker
2023-06-24 08:50:49 -05:00
parent 4faa3b3493
commit 3e37de97a6
3 changed files with 19 additions and 3 deletions
+8 -2
View File
@@ -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<void | boolean>,
@@ -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);
}
+5 -1
View File
@@ -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<BuildOutput> {
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<BuildOutput> {
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;
+6
View File
@@ -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`;
}