UNPKG

spy-client

Version:

spy client

210 lines (209 loc) 5.72 kB
export interface SpyClientOption { /** * 模块ID */ pid: string; /** * 日志ID */ lid?: string; /** * 全局抽样配置,默认是 1,取值从[0, 1] */ sample?: number; /** * 是否校验发送字段符合规范,默认是 true */ check?: boolean; /** * 日志服务器,默认是webb服务器,尾部需要加? */ logServer?: string; /** * 本地日志cache对象,是指独立的spy-local-cache模块实例 */ localCache?: any; } export declare class Module { load?: () => void; leave?: () => void; destroy?: () => void; } export interface FIDMetric { fid: number; } export type FIDCB = (metric: FIDMetric) => void; export interface LCPMetric { lcp: number; } export type LCPCB = (metric: LCPMetric) => void; export declare enum ResType { JS = "js", CSS = "css", IMG = "img", FONT = "font" } export interface ResourceMetric { allSize: number; docSize: number; headerSize: number; jsNum: number; cssNum: number; imgNum: number; fontNum: number; jsSize: number; cssSize: number; imgSize: number; fontSize: number; allTransferSize: number; docTransferSize: number; jsTransferSize: number; cssTransferSize: number; imgTransferSize: number; fontTransferSize: number; jsDuration: number; cssDuration: number; imgDuration: number; fontDuration: number; jsCacheRate: number; cssCacheRate: number; imgCacheRate: number; } export interface ResourceHostMetric { [host: string]: { hostNum: number; hostSize: number; hostTransferSize: number; hostDuration: number; hostCacheRate: number; }; } export type ResourceCB = (metric: ResourceMetric, hostMetric: ResourceHostMetric) => void; export interface ResourceErrorInfo { msg: string; xpath: string; host: string; type: string; dur?: number; } export type ResourceErrorCB = (info: ResourceErrorInfo) => void; export interface TimingMetric { dns: number; tcp: number; request: number; response: number; parseHtml: number; domReady: number; loadEventHandle: number; load: number; fp?: number; fcp?: number; t7FirstPaint?: number; t7FirstScreen?: number; } export type TimingCB = (metric: TimingMetric) => void; export interface TTIMetric { tti: number; } export type TTICB = (metric: TTIMetric) => void; export interface TTIOption { interval?: number; filterRequest?: (entry: PerformanceEntry) => boolean; } export interface LayoutShiftMetric { layoutShift: number; } export type LayoutShiftCB = (metric: LayoutShiftMetric) => void; export interface MemoryMetric { usedJSHeapSize: number; totalJSHeapSize: number; jsHeapSizeLimit: number; usedJSHeapRate: number; } export type MemoryCB = (metric: MemoryMetric) => void; export interface NavigatorInfoMetric { downlink?: number; effectiveType?: '2g' | '3g' | '4g' | 'slow-2g'; rtt?: number; saveData?: boolean; deviceMemory?: number; hardwareConcurrency?: number; } export type NavigatorInfoCB = (metric: NavigatorInfoMetric) => void; export interface FSPLongtaskMetric { fspLongtaskTime: number; fspTBT: number; fspTotalTime: number; fspLongtaskRate: number; fspLongtaskNum: number; } export type FSPLongtaskCB = (metric: FSPLongtaskMetric) => void; export interface LCPLongtaskMetric { lcpLongtaskTime: number; lcpTBT: number; lcpTotalTime: number; lcpLongtaskRate: number; lcpLongtaskNum: number; } export type LCPLongtaskCB = (metric: LCPLongtaskMetric) => void; export interface LoadLongtaskMetric { loadLongtaskTime: number; loadTBT: number; loadTotalTime: number; loadLongtaskRate: number; loadLongtaskNum: number; } export type LoadLongtaskCB = (metric: LoadLongtaskMetric) => void; export interface PageLongtaskMetric { pageLongtaskTime: number; pageTBT: number; pageTotalTime: number; pageLongtaskRate: number; pageLongtaskNum: number; pageIframeLongtaskTime: number; pageIframeLongtaskRate: number; pageIframeLongtaskNum: number; } export type PageLongtaskCB = (metric: PageLongtaskMetric) => void; export interface ResOption { ignorePaths?: string[]; trigger?: 'load' | 'leave'; } export interface BigImgOption { /** * 体积大于该阈值,就认为是大图,默认150,单位是kb */ maxSize?: number; /** * 忽略指定path的资源 */ ignorePaths?: string[]; /** * 触发时机,在load事件触发后,还是在用户离开页面后,收集出现的加载慢的资源。,默认是load */ trigger?: 'load' | 'leave'; } export interface HttpResOption { /** * 忽略指定path的资源 */ ignorePaths?: string[]; /** * 触发时机,在load事件触发后,还是在用户离开页面后,收集出现的加载慢的资源。,默认是load */ trigger?: 'load' | 'leave'; } export interface SlowOption { /** * 加载时长大于该阈值,就认为是慢资源,默认1000,单位是ms */ threshold?: number; /** * 忽略指定path的资源 */ ignorePaths?: string[]; /** * 触发时机,在load事件触发后,还是在用户离开页面后,收集出现的加载慢的资源。,默认是load */ trigger?: 'load' | 'leave'; }