@fx-labs/monitor
v1.0.2
Published
轻量级浏览器监控 SDK(TypeScript)。该包对 XHR、WebSocket 和静态资源加载进行埋点,允许用户通过回调钩子对请求/消息/资源加载做自定义校验。
Readme
说明
轻量级浏览器监控 SDK(TypeScript)。该包对 XHR、WebSocket 和静态资源加载进行埋点,允许用户通过回调钩子对请求/消息/资源加载做自定义校验。
快速开始
前置条件:Node.js (16+)、pnpm
安装并构建:
pnpm install
pnpm run dev构建产物:dist/index.js(ESM 包)以及类型声明(dist/)。
功能概述
- 将全局的
XMLHttpRequest替换为带有回调的实现,在 JSON 响应时会触发用户回调。 - 将全局的
WebSocket包裹为验证器,拦截message事件并调用用户回调,同时支持重连钩子。 - 对全局的静态资源加载错误进行监听,并调用用户回调。
类型总结
MonitorConfiginstance: MonitorInstanceonValidateWebSocketMessage?: (event: MessageEvent, instance: WebSocket) => Promise<boolean>onWebSocketReconnect?: (options: { max: number; time?: number }) => Promise<boolean>onValidateHttpRequest?: <T = unknown>(event: T, instance: XMLHttpRequest) => Promise<boolean>onSourceValidator?: (event?: { url?: string; tag?: string }, instance?: MonitorInstance) => Promise<boolean>
WSSetupOptions 和 XHRHookOptions 为各自安装函数使用的窄化类型。
使用示例
import { Monitor } from '@fx-labs/monitor'
const monitor = new Monitor({
instance: {},
onValidateHttpRequest: async (data, xhr) => {
// http请求校验逻辑
return true
},
onValidateWebSocketMessage: async (event, ws) => {
// wss 消息校验逻辑
return true
},
onWebSocketReconnect: async ({ max, time }) => {
// 最大重连次数和时间间隔
return true
},
onSourceValidator: async ({ url, tag }, instance) => {
// 处理静态资源加载失败
return true
}
})