UNPKG

@huolala-tech/page-spy-lynx

Version:

An SDK of PageSpy for debugging Lynx app

33 lines (32 loc) 1.64 kB
import type { SpyConsole, PageSpyPlugin, OnInitParams } from '@huolala-tech/page-spy-types/index'; import { InitConfig } from '../config'; type GlobalErrorHandler = (error: Error) => void; type GlobalRejectionHandler = (event: { reason?: any; }) => void; /** Error 插件:捕获未处理异常和 Promise rejection,并复用 console 通道上报。 */ export default class ErrorPlugin implements PageSpyPlugin { /** 插件名称。 */ name: string; static hasInitd: boolean; /** 原始全局 onerror,reset 时恢复并在捕获后继续调用。 */ originOnError: GlobalErrorHandler | null; /** 原始全局 onunhandledrejection,reset 时恢复并在捕获后继续调用。 */ originOnUnhandledRejection: GlobalRejectionHandler | null; $pageSpyConfig: InitConfig | null; private errorHandlerRef; private rejectionHandlerRef; /** 初始化全局错误监听。 */ onInit({ config }: OnInitParams<InitConfig>): void; /** 捕获运行时未处理异常,优先使用 addEventListener,兼容 onerror。 */ onUncaughtError(): void; /** 捕获未处理 Promise rejection,兼容事件监听和全局回调两种能力。 */ onUnhandledRejectionError(): void; /** 将不同形态的错误对象整理成 PageSpy console error 消息。 */ errorHandler(error: Error | string | any): void; /** 移除全局监听并恢复宿主原有错误处理器。 */ onReset(): void; /** 上报错误消息,允许用户 dataProcessor 拦截或加工。 */ sendMessage(data: any, errorDetail: SpyConsole.DataItem['errorDetail'] | null): void; } export {};