diff --git a/packages/plugin-dts/src/tsc.ts b/packages/plugin-dts/src/tsc.ts index 79dc3983..bb954b51 100644 --- a/packages/plugin-dts/src/tsc.ts +++ b/packages/plugin-dts/src/tsc.ts @@ -74,8 +74,8 @@ export async function emitDts( throw new Error('DTS generation failed'); } - logger.info( - `DTS generation succeeded in ${getTimeCost(start)} ${color.gray(`(${name})`)}`, + logger.ready( + `DTS generated in ${getTimeCost(start)} ${color.gray(`(${name})`)}`, ); } else { const createProgram = ts.createSemanticDiagnosticsBuilderProgram; diff --git a/packages/plugin-dts/src/utils.ts b/packages/plugin-dts/src/utils.ts index cba3bc1d..b0e2a3ae 100644 --- a/packages/plugin-dts/src/utils.ts +++ b/packages/plugin-dts/src/utils.ts @@ -48,8 +48,25 @@ export function getFileLoc(diagnostic: ts.Diagnostic): string { return ''; } +export const prettyTime = (seconds: number): string => { + const format = (time: string) => color.bold(time); + + if (seconds < 10) { + const digits = seconds >= 0.01 ? 2 : 3; + return `${format(seconds.toFixed(digits))} s`; + } + + if (seconds < 60) { + return `${format(seconds.toFixed(1))} s`; + } + + const minutes = seconds / 60; + return `${format(minutes.toFixed(2))} m`; +}; + export function getTimeCost(start: number): string { - return `${Math.floor(Date.now() - start)}ms`; + const second = (Date.now() - start) / 1000; + return prettyTime(second); } export async function processDtsFiles(