UNPKG

perf-observer-kit

Version:

A lightweight, flexible library for monitoring web performance metrics including Core Web Vitals, resource loading performance, long tasks, and navigation timing.

125 lines (124 loc) 2.89 kB
import { PerfObserverOptions, PerformanceMetrics } from './types'; import { LogLevel } from './utils/logger'; /** * 性能观察工具包 - 性能监控的主类 */ export declare class PerfObserverKit { private options; private coreWebVitalsObserver; private resourceTimingObserver; private longTasksObserver; private navigationObserver; private browserInfoObserver; private metrics; private isRunning; /** * 创建性能观察工具包实例 */ constructor(options?: PerfObserverOptions); /** * 验证传入的选项 */ private validateOptions; /** * 检查浏览器兼容性 */ private checkBrowserCompatibility; /** * 确定使用的日志级别 */ private determineLogLevel; /** * 规范化模块配置为标准格式 * @param options 用户提供的模块配置 * @param defaultEnabled 默认是否启用 */ private normalizeModuleOptions; /** * 规范化资源计时选项 */ private normalizeResourceOptions; /** * 规范化核心Web指标选项 */ private normalizeCoreWebVitalsOptions; /** * 开始监控性能指标 */ start(): void; /** * 通用启动观察器方法 */ private startObserver; /** * 停止监控性能指标 */ stop(): void; /** * 清理观察器 */ private cleanupObserver; /** * 获取当前的指标数据 */ getMetrics(): PerformanceMetrics; /** * 清除指标数据 */ clearMetrics(): void; /** * 设置日志级别 * @param level 日志级别 */ setLogLevel(level: LogLevel): void; /** * 设置调试模式 * @param enabled 是否启用调试模式 */ setDebugMode(enabled: boolean): void; /** * 开始监控核心Web指标 */ private startCoreWebVitalsMonitoring; /** * 开始监控资源计时 */ private startResourceTimingMonitoring; /** * 开始监控长任务 */ private startLongTasksMonitoring; /** * 开始监控导航计时 */ private startNavigationMonitoring; /** * 开始监控浏览器信息 */ private startBrowserInfoMonitoring; /** * 通知指标更新给回调函数 */ private notifyMetricsUpdate; /** * 获取库版本信息 */ getVersion(): string; /** * 检查当前环境是否支持所有必要的API */ static checkBrowserSupport(): { supported: boolean; details: Record<string, boolean>; }; getStatus(): { isRunning: boolean; metrics: { coreWebVitals: boolean; resources: boolean; longTasks: boolean; navigation: boolean; browserInfo: boolean; }; }; }