UNPKG

@callstack/reassure-measure

Version:

Performance measurement library for React and React Native

40 lines (39 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.measureFunction = measureFunction; var _config = require("./config"); var _measureHelpers = require("./measure-helpers"); var _output = require("./output"); async function measureFunction(fn, options) { const stats = await measureFunctionInternal(fn, options); if (options?.writeFile !== false) { await (0, _output.writeTestStats)(stats, 'function'); } return stats; } async function measureFunctionInternal(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)(); 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-function.js.map