[DRVWEB-4373] Add Suggestion Mode spotlight onboarding modal for docs on drive
[ProtonMail-WebClient.git] / packages / pass / utils / time / performance.ts
blob34299761d6bd898d975b8179aaddedcdf078852f
1 import type { Callback } from '@proton/pass/types';
3 type WithPerformanceOptions = {
4     maxTime: number;
5     onMaxTime: (ms: number) => void;
6 };
8 export const withMaxExecutionTime = <F extends Callback>(fn: F, options: WithPerformanceOptions): F =>
9     ((...args) => {
10         const start = performance.now();
11         const result = fn(...args);
12         const end = performance.now();
14         const ms = end - start;
15         if (ms >= options.maxTime) options.onMaxTime(ms);
17         return result;
18     }) as F;