@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
TypeScript
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>;