@huolala-tech/page-spy-lynx
Version:
An SDK of PageSpy for debugging Lynx app
33 lines (32 loc) • 1.64 kB
TypeScript
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 {};