UNPKG

@zendesk/retrace

Version:

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

46 lines (45 loc) 1.69 kB
import type { ComponentRenderSpan, PerformanceEntrySpan, Span } from '../spanTypes'; import type { RelationSchemasBase } from '../types'; 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 extends RelationSchemasBase<RelationSchemasT>>(_: TemplateStringsArray, ...exprs: (Stub | number)[]): { spans: Span<RelationSchemasT>[]; fmpTime: number | null; };