UNPKG

@callstack/reassure-measure

Version:

Performance measurement library for React and React Native

34 lines 1.16 kB
import { config } from './config'; import { getCurrentTime, processRunResults } from './measure-helpers'; import { showFlagsOutputIfNeeded, writeTestStats } from './output'; export async function measureAsyncFunction(fn, options) { const stats = await measureAsyncFunctionInternal(fn, options); if (options?.writeFile !== false) { await writeTestStats(stats, 'async function'); } return stats; } async function measureAsyncFunctionInternal(fn, options) { const runs = options?.runs ?? config.runs; const warmupRuns = options?.warmupRuns ?? config.warmupRuns; const removeOutliers = options?.removeOutliers ?? config.removeOutliers; showFlagsOutputIfNeeded(); const runResults = []; for (let i = 0; i < runs + warmupRuns; i += 1) { await options?.beforeEach?.(); const timeStart = getCurrentTime(); await fn(); const timeEnd = getCurrentTime(); await options?.afterEach?.(); const duration = timeEnd - timeStart; runResults.push({ duration, count: 1 }); } return processRunResults(runResults, { warmupRuns, removeOutliers }); } //# sourceMappingURL=measure-async-function.js.map