UNPKG

@atlaskit/editor-common

Version:

A package that contains common classes and components for editor and renderer

53 lines (52 loc) 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.clearMeasure = clearMeasure; exports.isMeasuring = isMeasuring; exports.startMeasure = startMeasure; exports.stopMeasure = stopMeasure; var _isPerformanceApiAvailable = require("../utils/performance/is-performance-api-available"); var measureMap = new Map(); function startMeasure(measureName) { if (!(0, _isPerformanceApiAvailable.isPerformanceAPIAvailable)()) { return; } performance.mark("".concat(measureName, "::start")); measureMap.set(measureName, performance.now()); } function stopMeasure(measureName, onMeasureComplete) { if (!(0, _isPerformanceApiAvailable.isPerformanceAPIAvailable)()) { return; } performance.mark("".concat(measureName, "::end")); var start = onMeasureComplete ? measureMap.get(measureName) : undefined; try { performance.measure(measureName, "".concat(measureName, "::start"), "".concat(measureName, "::end")); } catch (error) {} finally { if (onMeasureComplete) { var entry = performance.getEntriesByName(measureName).pop(); if (entry) { onMeasureComplete(entry.duration, entry.startTime); } else if (start) { onMeasureComplete(performance.now() - start, start); } } clearMeasure(measureName); } } function clearMeasure(measureName) { if (!(0, _isPerformanceApiAvailable.isPerformanceAPIAvailable)()) { return; } measureMap.delete(measureName); performance.clearMarks("".concat(measureName, "::start")); performance.clearMarks("".concat(measureName, "::end")); performance.clearMeasures(measureName); } function isMeasuring(measureName) { if (!(0, _isPerformanceApiAvailable.isPerformanceAPIAvailable)()) { return false; } return measureMap.get(measureName) !== undefined; }