@zimic/http
Version:
Next-gen TypeScript-first HTTP utilities
26 lines (20 loc) • 781 B
text/typescript
import { PossiblePromise } from '@zimic/utils/types';
export async function usingElapsedTime<ReturnType>(callback: () => PossiblePromise<ReturnType>) {
const startTimeInMilliseconds = performance.now();
const result = await callback();
const endTimeInMilliseconds = performance.now();
const elapsedTimeInMilliseconds = endTimeInMilliseconds - startTimeInMilliseconds;
return {
startTime: startTimeInMilliseconds,
elapsedTime: elapsedTimeInMilliseconds,
endTime: endTimeInMilliseconds,
result,
};
}
export function formatElapsedTime(elapsedTimeInMilliseconds: number) {
if (elapsedTimeInMilliseconds < 1000) {
return `${elapsedTimeInMilliseconds.toFixed(0)}ms`;
} else {
return `${(elapsedTimeInMilliseconds / 1000).toFixed(2)}s`;
}
}