UNPKG

everything-dev

Version:

A consolidated product package for building Module Federation apps with oRPC APIs.

50 lines (48 loc) 1.64 kB
//#region src/cli/timing.ts const PHASE_LABELS = { "parent config": "Fetching parent config...", "template source": "Resolving template source...", "scaffold project": "Creating project scaffold...", "copy files": "Copying template files...", "personalize config": "Personalizing config...", "write snapshot": "Writing snapshot...", "resolve config": "Resolving config...", "generate env/docker": "Generating environment config...", "create env file": "Creating .env file...", "install dependencies": "Installing dependencies...", "generate types": "Generating types...", "generate migrations": "Generating database migrations...", "generate code artifacts": "Generating code artifacts...", "docker compose up": "Starting Docker services..." }; function phaseLabel(name) { return PHASE_LABELS[name] ?? name; } async function timePhase(timings, name, fn, spinner) { spinner?.message(phaseLabel(name)); const startedAt = Date.now(); try { return await fn(); } finally { timings.push({ name, durationMs: Date.now() - startedAt }); } } function sumPhaseDurations(timings) { return timings.reduce((total, timing) => total + timing.durationMs, 0); } function formatDuration(durationMs) { if (durationMs < 1e3) return `${durationMs}ms`; if (durationMs < 6e4) { const seconds = durationMs / 1e3; return `${seconds.toFixed(seconds >= 10 ? 0 : 1)}s`; } return `${Math.floor(durationMs / 6e4)}m ${Math.round(durationMs % 6e4 / 1e3)}s`; } //#endregion exports.formatDuration = formatDuration; exports.sumPhaseDurations = sumPhaseDurations; exports.timePhase = timePhase; //# sourceMappingURL=timing.cjs.map