UNPKG

@zendesk/retrace

Version:

define and capture Product Operation Traces along with computed metrics with an optional friendly React beacon API

27 lines (26 loc) 1.42 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 interface CPUIdleProcessorInit { lastLongTaskEndTime?: number; } export declare const isLongTask: (entry?: PerformanceEntryLike) => boolean | undefined; export declare function createCPUIdleProcessor<T extends number | PerformanceEntryLike>(fmpOrEntry: T, { clusterPadding, heavyClusterThreshold, getQuietWindowDuration, }?: CPUIdleProcessorOptions, { lastLongTaskEndTime }?: CPUIdleProcessorInit): CPUIdleLongTaskProcessor<T>;