|
1 | | -import { ClientLike, Integration, ScopeContext, Severity } from '@sentry/types'; |
| 1 | +import { ClientLike, Integration, Severity } from '@sentry/types'; |
2 | 2 | import { fill, getGlobalObject, safeJoin } from '@sentry/utils'; |
3 | 3 |
|
4 | 4 | type Level = typeof LEVELS[number]; |
@@ -29,30 +29,20 @@ export class CaptureConsole implements Integration { |
29 | 29 | return; |
30 | 30 | } |
31 | 31 |
|
32 | | - // eslint-disable-next-line @typescript-eslint/no-explicit-any |
33 | 32 | fill(global.console, level, (originalConsoleLevel: () => unknown) => (...args: unknown[]): void => { |
34 | | - const scope: ScopeContext = { |
35 | | - level: Severity.fromString(level), |
36 | | - extra: { |
37 | | - arguments: args, |
38 | | - }, |
39 | | - }; |
40 | | - |
41 | | - // TODO: Allow capture methods to accept a Scope instance so we can use things like |
42 | | - // `const scope = client.getScope().clone();` to mimick `withScope` per-client? |
43 | | - // scope.addEventProcessor(event => { |
44 | | - // event.logger = 'console'; |
45 | | - // return event; |
46 | | - // }); |
| 33 | + const scope = client.getScope().clone(); |
| 34 | + scope.setLevel(Severity.fromString(level)); |
| 35 | + scope.setExtra('arguments', args); |
| 36 | + scope.addEventProcessor(event => { |
| 37 | + event.logger = 'console'; |
| 38 | + return event; |
| 39 | + }); |
47 | 40 |
|
48 | 41 | let message = safeJoin(args, ' '); |
49 | 42 | if (level === 'assert') { |
50 | 43 | if (args[0] === false) { |
51 | 44 | message = `Assertion failed: ${safeJoin(args.slice(1), ' ') || 'console.assert'}`; |
52 | | - scope.extra = { |
53 | | - ...scope.extra, |
54 | | - arguments: args.slice(1), |
55 | | - }; |
| 45 | + scope.setExtra('arguments', args.slice(1)); |
56 | 46 | client.captureMessage(message, { scope }); |
57 | 47 | } |
58 | 48 | } else { |
|
0 commit comments