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>

36 lines (34 loc) 1.36 kB
import { BrowserBreadcrumbTypes, BrowserEventTypes, globalVar } from '@sdc-monitor/shared' import { replaceOld, Severity, _global } from '@sdc-monitor/utils' import { BasePluginType, ConsoleCollectType } from '@sdc-monitor/types' import { BrowserClient } from '../browserClient' import { addBreadcrumbInBrowser } from '../utils' const consolePlugin: BasePluginType<BrowserEventTypes, BrowserClient> = { name: BrowserEventTypes.CONSOLE, monitor(notify) { if (!('console' in _global)) { return } const logType = ['log', 'debug', 'info', 'warn', 'error', 'assert'] logType.forEach(function (level: string): void { if (!(level in _global.console)) return replaceOld(_global.console, level, function (originalConsole: () => any): Function { return function (...args: any[]): void { if (originalConsole) { notify(BrowserEventTypes.CONSOLE, { args, level }) originalConsole.apply(_global.console, args) } } }) }) }, transform(collectedData: ConsoleCollectType) { return collectedData }, consumer(transformedData: ConsoleCollectType) { if (globalVar.isLogAddBreadcrumb) { addBreadcrumbInBrowser.call(this, transformedData, BrowserBreadcrumbTypes.CONSOLE, Severity.fromString(transformedData.level)) } } } export default consolePlugin