UNPKG

@callstack/reassure-measure

Version:

Performance measurement library for React and React Native

40 lines (39 loc) 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.measureAsyncFunction = measureAsyncFunction; var _config = require("./config"); var _measureHelpers = require("./measure-helpers"); var _output = require("./output"); async function measureAsyncFunction(fn, options) { const stats = await measureAsyncFunctionInternal(fn, options); if (options?.writeFile !== false) { await (0, _output.writeTestStats)(stats, 'async function'); } return stats; } async function measureAsyncFunctionInternal(fn, options) { const runs = options?.runs ?? _config.config.runs; const warmupRuns = options?.warmupRuns ?? _config.config.warmupRuns; const removeOutliers = options?.removeOutliers ?? _config.config.removeOutliers; (0, _output.showFlagsOutputIfNeeded)(); const runResults = []; for (let i = 0; i < runs + warmupRuns; i += 1) { await options?.beforeEach?.(); const timeStart = (0, _measureHelpers.getCurrentTime)(); await fn(); const timeEnd = (0, _measureHelpers.getCurrentTime)(); await options?.afterEach?.(); const duration = timeEnd - timeStart; runResults.push({ duration, count: 1 }); } return (0, _measureHelpers.processRunResults)(runResults, { warmupRuns, removeOutliers }); } //# sourceMappingURL=measure-async-function.js.map