@sdc-monitor/demo
Version:
<div align="center"> <a href="#" target="_blank"> <img src="https://i.loli.net/2021/07/28/EvPwd4NjVH3tBfO.jpg" alt="mito-logo" height="90"> </a> <p>A Lightweight SDK For Monitor Web</p>
35 lines (33 loc) • 1.35 kB
text/typescript
import { WxEventTypes, globalVar, WxBreadcrumbTypes, WxBaseEventTypes } from '@sdc-monitor/shared'
import { replaceOld, Severity, variableTypeDetection } from '@sdc-monitor/utils'
import { BasePluginType, ConsoleCollectType } from '@sdc-monitor/types'
import { WxClient } from '../wxClient'
import { addBreadcrumbInWx } from '../utils'
const wxConsolePlugin: BasePluginType<WxEventTypes, WxClient> = {
name: WxBaseEventTypes.CONSOLE,
monitor(notify) {
if (console && variableTypeDetection.isObject(console)) {
const logType = ['log', 'debug', 'info', 'warn', 'error', 'assert']
logType.forEach(function (level: string): void {
if (!(level in console)) return
replaceOld(console, level, function (originalConsole): Function {
return function (...args: any[]): void {
if (originalConsole) {
notify(WxBaseEventTypes.CONSOLE, { args, level })
originalConsole.apply(console, args)
}
}
})
})
}
},
transform(collectedData: ConsoleCollectType) {
return collectedData
},
consumer(transformedData: ConsoleCollectType) {
if (globalVar.isLogAddBreadcrumb) {
addBreadcrumbInWx.call(this, transformedData, WxBreadcrumbTypes.CONSOLE, Severity.fromString(transformedData.level))
}
}
}
export default wxConsolePlugin