UNPKG

@zendesk/react-measure-timing-hooks

Version:

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

45 lines (44 loc) 1.59 kB
import type { ComponentRenderSpan, PerformanceEntrySpan, Span } from '../spanTypes'; export interface ComponentRenderStub extends Partial<Omit<ComponentRenderSpan<any>, 'startTime' | 'duration'>> { entryType: 'component-render' | 'component-render-start'; duration: number; startTime?: number; name: string; } export interface LongTaskStub { entryType: 'longtask'; duration: number; startTime?: number; name?: string; } export interface MarkStub extends Partial<Omit<PerformanceEntrySpan<any>, 'startTime' | 'duration'>> { entryType: 'mark'; name: string; startTime?: number; } export interface FmpStub { entryType: 'fmp'; startTime?: number; } export interface IdleStub { entryType: 'idle'; duration: number; } export type Stub = ComponentRenderStub | LongTaskStub | MarkStub | FmpStub | IdleStub; export declare const Render: (name: string, duration: number, options?: { startTime?: number; } & Partial<Omit<ComponentRenderSpan<any>, "startTime" | "duration">>) => ComponentRenderStub; export declare const LongTask: (duration: number, options?: { start?: number; }) => LongTaskStub; export declare const Idle: (duration: number) => IdleStub; export declare const Check: MarkStub; export declare const FMP: FmpStub; export declare function makeEntries(events: Stub[]): { entries: PerformanceEntry[]; fmpTime: number | null; }; export declare function getSpansFromTimeline<RelationSchemasT>(_: TemplateStringsArray, ...exprs: (Stub | number)[]): { spans: Span<RelationSchemasT>[]; fmpTime: number | null; };