package.build.esm.integrations.captureconsole.js.map Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Base implementation for all Sentry JavaScript SDKs
{"version":3,"file":"captureconsole.js","sources":["../../../src/integrations/captureconsole.ts"],"sourcesContent":["import type { CaptureContext, IntegrationFn } from '@sentry/types';\nimport {\n CONSOLE_LEVELS,\n GLOBAL_OBJ,\n addConsoleInstrumentationHandler,\n addExceptionMechanism,\n safeJoin,\n severityLevelFromString,\n} from '@sentry/utils';\nimport { getClient, withScope } from '../currentScopes';\nimport { captureException, captureMessage } from '../exports';\nimport { defineIntegration } from '../integration';\n\ninterface CaptureConsoleOptions {\n levels?: string[];\n}\n\nconst INTEGRATION_NAME = 'CaptureConsole';\n\nconst _captureConsoleIntegration = ((options: CaptureConsoleOptions = {}) => {\n const levels = options.levels || CONSOLE_LEVELS;\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n addConsoleInstrumentationHandler(({ args, level }) => {\n if (getClient() !== client || !levels.includes(level)) {\n return;\n }\n\n consoleHandler(args, level);\n });\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Send Console API calls as Sentry Events.\n */\nexport const captureConsoleIntegration = defineIntegration(_captureConsoleIntegration);\n\nfunction consoleHandler(args: unknown[], level: string): void {\n const captureContext: CaptureContext = {\n level: severityLevelFromString(level),\n extra: {\n arguments: args,\n },\n };\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n event.logger = 'console';\n\n addExceptionMechanism(event, {\n handled: false,\n type: 'console',\n });\n\n return event;\n });\n\n if (level === 'assert') {\n if (!args[0]) {\n const message = `Assertion failed: ${safeJoin(args.slice(1), ' ') || 'console.assert'}`;\n scope.setExtra('arguments', args.slice(1));\n captureMessage(message, captureContext);\n }\n return;\n }\n\n const error = args.find(arg => arg instanceof Error);\n if (error) {\n captureException(error, captureContext);\n return;\n }\n\n const message = safeJoin(args, ' ');\n captureMessage(message, captureContext);\n });\n}\n"],"names":[],"mappings":";;;;;AAiBA,MAAM,gBAAA,GAAmB,gBAAgB,CAAA;AACzC;AACA,MAAM,0BAAA,IAA8B,CAAC,OAAO,GAA0B,EAAE,KAAK;AAC7E,EAAE,MAAM,MAAO,GAAE,OAAO,CAAC,MAAA,IAAU,cAAc,CAAA;AACjD;AACA,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,gBAAgB;AAC1B,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,MAAM,IAAI,EAAE,aAAa,UAAU,CAAC,EAAE;AACtC,QAAQ,OAAM;AACd,OAAM;AACN;AACA,MAAM,gCAAgC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAA,EAAO,KAAK;AAC5D,QAAQ,IAAI,SAAS,OAAO,MAAA,IAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC/D,UAAU,OAAM;AAChB,SAAQ;AACR;AACA,QAAQ,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACnC,OAAO,CAAC,CAAA;AACR,KAAK;AACL,GAAG,CAAA;AACH,CAAC,CAAE,EAAA;AACH;AACA;AACA;AACA;MACa,yBAA0B,GAAE,iBAAiB,CAAC,0BAA0B,EAAC;AACtF;AACA,SAAS,cAAc,CAAC,IAAI,EAAa,KAAK,EAAgB;AAC9D,EAAE,MAAM,cAAc,GAAmB;AACzC,IAAI,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC;AACzC,IAAI,KAAK,EAAE;AACX,MAAM,SAAS,EAAE,IAAI;AACrB,KAAK;AACL,GAAG,CAAA;AACH;AACA,EAAE,SAAS,CAAC,KAAA,IAAS;AACrB,IAAI,KAAK,CAAC,iBAAiB,CAAC,SAAS;AACrC,MAAM,KAAK,CAAC,MAAO,GAAE,SAAS,CAAA;AAC9B;AACA,MAAM,qBAAqB,CAAC,KAAK,EAAE;AACnC,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,IAAI,EAAE,SAAS;AACvB,OAAO,CAAC,CAAA;AACR;AACA,MAAM,OAAO,KAAK,CAAA;AAClB,KAAK,CAAC,CAAA;AACN;AACA,IAAI,IAAI,KAAM,KAAI,QAAQ,EAAE;AAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACpB,QAAQ,MAAM,UAAU,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,gBAAgB,CAAC,CAAA,CAAA;AACA,QAAA,KAAA,CAAA,QAAA,CAAA,WAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,QAAA,cAAA,CAAA,OAAA,EAAA,cAAA,CAAA,CAAA;AACA,OAAA;AACA,MAAA,OAAA;AACA,KAAA;AACA;AACA,IAAA,MAAA,KAAA,GAAA,IAAA,CAAA,IAAA,CAAA,GAAA,IAAA,GAAA,YAAA,KAAA,CAAA,CAAA;AACA,IAAA,IAAA,KAAA,EAAA;AACA,MAAA,gBAAA,CAAA,KAAA,EAAA,cAAA,CAAA,CAAA;AACA,MAAA,OAAA;AACA,KAAA;AACA;AACA,IAAA,MAAA,OAAA,GAAA,QAAA,CAAA,IAAA,EAAA,GAAA,CAAA,CAAA;AACA,IAAA,cAAA,CAAA,OAAA,EAAA,cAAA,CAAA,CAAA;AACA,GAAA,CAAA,CAAA;AACA;;;;"}