UNPKG

@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
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