UNPKG

@zendesk/react-measure-timing-hooks

Version:

react hooks for measuring time to interactive and time to render of components

38 lines 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.triggerLongTasks = triggerLongTasks; /* eslint-disable no-console */ function triggerLongTasks({ minTime, maxTime, totalClusterDuration, }) { const controller = new AbortController(); const startTime = Date.now(); function randomDuration(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } function executeLongTask() { const taskDuration = randomDuration(minTime, maxTime); const endTime = Date.now(); if (controller.signal.aborted) { console.log('Cluster aborted.'); return; } if (endTime - startTime < totalClusterDuration) { console.log(`Starting long task for ${taskDuration} ms`); const taskEnd = Date.now() + taskDuration; // Simulating a blocking long task while (Date.now() < taskEnd) { if (controller.signal.aborted) { console.log('Task aborted.'); return; } } executeLongTask(); // Trigger the next task } else { console.log('Completed all tasks within the cluster duration.'); } } executeLongTask(); // Return a callback that can abort the current cluster return () => void controller.abort(); } //# sourceMappingURL=simulateLongTasks.js.map