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