UNPKG

4.78 kBSource Map (JSON)View Raw
1{"version":3,"file":"captureconsole.js","sources":["../../../src/captureconsole.ts"],"sourcesContent":["import type { EventProcessor, Hub, Integration } from '@sentry/types';\nimport { CONSOLE_LEVELS, fill, GLOBAL_OBJ, safeJoin, severityLevelFromString } from '@sentry/utils';\n\n/** Send Console API calls as Sentry Events */\nexport class CaptureConsole implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'CaptureConsole';\n\n /**\n * @inheritDoc\n */\n public name: string = CaptureConsole.id;\n\n /**\n * @inheritDoc\n */\n private readonly _levels: readonly string[] = CONSOLE_LEVELS;\n\n /**\n * @inheritDoc\n */\n public constructor(options: { levels?: string[] } = {}) {\n if (options.levels) {\n this._levels = options.levels;\n }\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n this._levels.forEach((level: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n if (!(level in (GLOBAL_OBJ as any).console)) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n fill((GLOBAL_OBJ as any).console, level, (originalConsoleMethod: () => any) => (...args: any[]): void => {\n const hub = getCurrentHub();\n\n if (hub.getIntegration(CaptureConsole)) {\n hub.withScope(scope => {\n scope.setLevel(severityLevelFromString(level));\n scope.setExtra('arguments', args);\n scope.addEventProcessor(event => {\n event.logger = 'console';\n return event;\n });\n\n let message = safeJoin(args, ' ');\n if (level === 'assert') {\n if (args[0] === false) {\n message = `Assertion failed: ${safeJoin(args.slice(1), ' ') || 'console.assert'}`;\n scope.setExtra('arguments', args.slice(1));\n hub.captureMessage(message);\n }\n } else if (level === 'error' && args[0] instanceof Error) {\n hub.captureException(args[0]);\n } else {\n hub.captureMessage(message);\n }\n });\n }\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(GLOBAL_OBJ.console, args);\n }\n });\n });\n }\n}\n"],"names":[],"mappings":"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"}
\No newline at end of file