@augment-vir/common
Version:
A collection of augments, helpers types, functions, and classes for any JavaScript environment.
21 lines (20 loc) • 857 B
TypeScript
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>;