初始化提交

This commit is contained in:
yuantao
2025-12-01 17:56:13 +08:00
commit bc5d2cf14d
11 changed files with 2154 additions and 0 deletions

109
src/index.js Normal file
View File

@@ -0,0 +1,109 @@
/**
* UniApp 错误监控上报插件 - 入口文件
* 提供完整的 JavaScript 错误监控和上报解决方案
*/
import ErrorMonitor from './ErrorMonitor'
import { getCurrentPageName, getCurrentUrl, getUserAgent, serializeError } from './utils'
// 创建单例实例
const errorMonitorInstance = new ErrorMonitor()
/**
* 初始化错误监控
* @param {Object} options 配置选项
* @returns {ErrorMonitor} 错误监控实例
*/
export function initErrorMonitor(options = {}) {
return errorMonitorInstance.init(options)
}
/**
* 手动上报错误
* @param {string} type 错误类型
* @param {Error|Object} error 错误对象或错误信息
* @param {Object} context 错误上下文信息
* @param {boolean} forceSend 强制发送(忽略环境检查)
*/
export function reportError(type = 'manual', error, context = {}, forceSend = false) {
errorMonitorInstance.reportError(type, error, context, forceSend)
}
/**
* Promise 包装工具
* 自动捕获 Promise 错误
* @param {Promise} promise 要包装的 Promise
* @returns {Promise} 包装后的 Promise
*/
export function wrapPromise(promise) {
return errorMonitorInstance.wrapPromise(promise)
}
/**
* 获取错误统计信息
* @returns {Object} 错误统计信息
*/
export function getErrorStats() {
return errorMonitorInstance.getErrorStats()
}
/**
* 重置错误统计
*/
export function resetErrorStats() {
errorMonitorInstance.resetErrorStats()
}
/**
* 获取环境信息
* @returns {Object} 环境信息
*/
export function getEnvironmentInfo() {
return errorMonitorInstance.getEnvironmentInfo()
}
/**
* 检查是否为生产环境
* @returns {boolean} 是否为生产环境
*/
export function isProduction() {
return errorMonitorInstance.isProduction()
}
/**
* 设置自定义发送器
* @param {Function} sender 自定义发送函数
*/
export function setCustomSender(sender) {
errorMonitorInstance.setSender(sender)
}
/**
* 设置自定义格式化函数
* @param {Function} formatter 自定义格式化函数
*/
export function setCustomFormatter(formatter) {
errorMonitorInstance.setFormatter(formatter)
}
// 导出 ErrorMonitor 类本身
export { ErrorMonitor }
// 导出工具函数
export {
getCurrentPageName,
getCurrentUrl,
getUserAgent,
serializeError
}
// 导出类型定义
export {
ErrorMonitorOptions,
ErrorType,
ErrorStats,
ErrorInfo
} from './types'
// 导出默认实例(方便直接使用)
export default errorMonitorInstance