Skip to content

Commit 8765b05

Browse files
committed
fix(types): move fromString to utils
1 parent d84dd41 commit 8765b05

File tree

8 files changed

+54
-28
lines changed

8 files changed

+54
-28
lines changed

packages/browser/src/integrations/breadcrumbs.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
22
/* eslint-disable max-lines */
33
import { getCurrentHub } from '@sentry/core';
4-
import { Event, Integration, Severity } from '@sentry/types';
4+
import { Event, Integration } from '@sentry/types';
55
import {
66
addInstrumentationHandler,
77
getEventDescription,
88
getGlobalObject,
99
htmlTreeAsString,
1010
parseUrl,
1111
safeJoin,
12+
severityFromString,
1213
} from '@sentry/utils';
1314

1415
/** JSDoc */

packages/integrations/src/captureconsole.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { EventProcessor, Hub, Integration, Severity } from '@sentry/types';
2-
import { fill, getGlobalObject, safeJoin } from '@sentry/utils';
1+
import { EventProcessor, Hub, Integration } from '@sentry/types';
2+
import { fill, getGlobalObject, safeJoin, severityFromString } from '@sentry/utils';
33

44
const global = getGlobalObject<Window | NodeJS.Global>();
55

@@ -48,7 +48,7 @@ export class CaptureConsole implements Integration {
4848

4949
if (hub.getIntegration(CaptureConsole)) {
5050
hub.withScope(scope => {
51-
scope.setLevel(Severity.fromString(level));
51+
scope.setLevel(severityFromString(level));
5252
scope.setExtra('arguments', args);
5353
scope.addEventProcessor(event => {
5454
event.logger = 'console';

packages/node/src/integrations/console.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { getCurrentHub } from '@sentry/core';
2-
import { Integration, Severity } from '@sentry/types';
3-
import { fill } from '@sentry/utils';
2+
import { Integration } from '@sentry/types';
3+
import { fill, severityFromString } from '@sentry/utils';
44
import * as util from 'util';
55

66
/** Console module integration */
@@ -30,7 +30,7 @@ export class Console implements Integration {
3030
*/
3131
function createConsoleWrapper(level: string): (originalConsoleMethod: () => void) => void {
3232
return function consoleWrapper(originalConsoleMethod: () => void): () => void {
33-
const sentryLevel = Severity.fromString(level);
33+
const sentryLevel = severityFromString(level);
3434

3535
/* eslint-disable prefer-rest-params */
3636
return function(this: typeof console): void {

packages/types/src/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ export {
3232
SessionFlusherLike,
3333
} from './session';
3434

35-
// eslint-disable-next-line deprecation/deprecation
35+
/* eslint-disable deprecation/deprecation */
3636
export { Severity } from './severity';
37-
export { SeverityLevel } from './severity';
37+
export { SeverityLevel, SeverityLevels } from './severity';
3838
export { Span, SpanContext } from './span';
3939
export { StackFrame } from './stackframe';
4040
export { Stacktrace } from './stacktrace';

packages/types/src/severity.ts

+2-19
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,5 @@ export enum Severity {
1919
Critical = 'critical',
2020
}
2121

22-
const levels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;
23-
export type SeverityLevel = typeof levels[number];
24-
25-
// eslint-disable-next-line @typescript-eslint/no-namespace, import/export
26-
export namespace Severity {
27-
/**
28-
* Converts a string-based level into a {@link Severity}.
29-
*
30-
* @param level string representation of Severity
31-
* @returns Severity
32-
*/
33-
export function fromString(level: SeverityLevel | string): SeverityLevel {
34-
if (level === 'warn') return 'warning';
35-
if (levels.indexOf(level as SeverityLevel) === -1) {
36-
return 'log';
37-
}
38-
return level as SeverityLevel;
39-
}
40-
}
22+
export const SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;
23+
export type SeverityLevel = typeof SeverityLevels[number];

packages/utils/src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export * from './node';
1212
export * from './object';
1313
export * from './path';
1414
export * from './promisebuffer';
15+
export * from './severity';
1516
export * from './stacktrace';
1617
export * from './string';
1718
export * from './supports';

packages/utils/src/severity.ts

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { SeverityLevel, SeverityLevels } from '@sentry/types';
2+
3+
function isSupportedSeverity(level: string): level is SeverityLevel {
4+
return SeverityLevels.indexOf(level as SeverityLevel) !== -1;
5+
}
6+
/**
7+
* Converts a string-based level into a {@link Severity}.
8+
*
9+
* @param level string representation of Severity
10+
* @returns Severity
11+
*/
12+
export function severityFromString(level: SeverityLevel | string): SeverityLevel {
13+
if (level === 'warn') return 'warning';
14+
if (isSupportedSeverity(level)) {
15+
return level;
16+
}
17+
return 'log';
18+
}

packages/utils/test/severity.test.ts

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { SeverityLevels } from '@sentry/types';
2+
import { severityFromString } from './../src/severity';
3+
4+
describe('severityFromString()', () => {
5+
describe('normalize warn and warning', () => {
6+
test('handles warn and warning', () => {
7+
expect(severityFromString('warn')).toBe('warning');
8+
expect(severityFromString('warning')).toBe('warning');
9+
});
10+
test('handles warn and warning', () => {
11+
expect(severityFromString('warn')).toBe('warning');
12+
expect(severityFromString('warning')).toBe('warning');
13+
});
14+
});
15+
describe('default to log', () => {
16+
expect(severityFromString('foo')).toBe('log');
17+
});
18+
describe('allows ', () => {
19+
for (const level of SeverityLevels) {
20+
expect(severityFromString(level)).toBe(level);
21+
}
22+
});
23+
});

0 commit comments

Comments
 (0)