UNPKG

@zendesk/react-measure-timing-hooks

Version:

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

23 lines (22 loc) 1.21 kB
export interface PerformanceEntryLike { entryType: string; startTime: number; duration: number; } export type CPUIdleLongTaskProcessorFn<T extends number | PerformanceEntryLike> = (entry: T extends PerformanceEntryLike ? T : PerformanceEntryLike) => CheckIfQuietWindowPassedResult<T>; export type CheckIfQuietWindowPassedResult<T extends number | PerformanceEntryLike> = { firstCpuIdle: T; } | { /** time from timeOrigin when we can check next if we've passed quiet window yet or not */ nextCheck: number; }; export interface CPUIdleLongTaskProcessor<T extends number | PerformanceEntryLike> { processPerformanceEntry: CPUIdleLongTaskProcessorFn<T>; checkIfQuietWindowPassed: (time: number, quietWindowDuration?: number) => CheckIfQuietWindowPassedResult<T>; } export interface CPUIdleProcessorOptions { getQuietWindowDuration?: (currentEndTime: number, fmp: number) => number; clusterPadding?: number; heavyClusterThreshold?: number; } export declare function createCPUIdleProcessor<T extends number | PerformanceEntryLike>(fmpOrEntry: T, { clusterPadding, heavyClusterThreshold, getQuietWindowDuration, }?: CPUIdleProcessorOptions): CPUIdleLongTaskProcessor<T>;