UNPKG

@atlaskit/editor-common

Version:

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

44 lines 1.48 kB
import { isPerformanceAPIAvailable } from '../utils/performance/is-performance-api-available'; var measureMap = new Map(); export function startMeasure(measureName) { if (!isPerformanceAPIAvailable()) { return; } performance.mark("".concat(measureName, "::start")); measureMap.set(measureName, performance.now()); } export function stopMeasure(measureName, onMeasureComplete) { if (!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); } } export function clearMeasure(measureName) { if (!isPerformanceAPIAvailable()) { return; } measureMap.delete(measureName); performance.clearMarks("".concat(measureName, "::start")); performance.clearMarks("".concat(measureName, "::end")); performance.clearMeasures(measureName); } export function isMeasuring(measureName) { if (!isPerformanceAPIAvailable()) { return false; } return measureMap.get(measureName) !== undefined; }