|
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