UNPKG

@augment-vir/common

Version:

A collection of augments, helpers types, functions, and classes for any JavaScript environment.

21 lines (20 loc) 857 B
import { type Duration, type DurationUnit } from '@date-vir/duration'; /** * Measures how long (in milliseconds) the given callback takes to run to completion. By default * this is synchronous, but it will automatically switch to async and await the callback if it * returns a promise. * * @category Function * @category Package : @augment-vir/common * @example * * ```ts * import {measureExecutionDuration} from '@augment-vir/common'; * * const duration1 = measureExecutionDuration(() => {}); * const duration2 = await measureExecutionDuration(async () => {}); * ``` * * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function measureExecutionDuration<T>(callback: () => T): T extends Promise<any> ? Promise<Duration<DurationUnit.Milliseconds>> : Duration<DurationUnit.Milliseconds>;