/** * h5 错误上报实现 */ import '@/common/report/errors/report/listeners'; import { BaseError, logger } from '@jolibox/common'; import { errorReportEmitter } from '@/common/report/errors'; import { ErrorData } from '@/common/report/errors/report'; import { IEvent, EventType, EProject } from '@jolibox/common'; import { tracker } from '../event-tracker'; import { context } from '@/common/context'; const doReport = (eventName: string, error: Error | BaseError) => { const extra = { message: error.message, stack: error.stack ?? '', errorType: error.name, source: 0 }; const eventBody: IEvent = { name: eventName, type: EventType.ErrorTrace, location: null, target: null, extra: extra, timestamp: Date.now(), userId: context.hostUserInfo?.uid ?? null }; tracker.trackEvent(eventBody, EProject.WebSDK); }; errorReportEmitter.on('GLOBAL_ERROR', (error, errorData: ErrorData) => { doReport(errorData.tag, error); }); errorReportEmitter.on('GLOBAL_USER_ERROR', (error, errorData: ErrorData) => { // TODO: User Error logger.log('UserError', error, errorData); });