fix:prettier and some type updates
This commit is contained in:
@@ -16,8 +16,11 @@
|
|||||||
export enum LogLevel {
|
export enum LogLevel {
|
||||||
TRACE = 'trace',
|
TRACE = 'trace',
|
||||||
DEBUG = 'debug',
|
DEBUG = 'debug',
|
||||||
|
FATAL = 'fatal',
|
||||||
INFO = 'info',
|
INFO = 'info',
|
||||||
|
LOG = 'log',
|
||||||
WARN = 'warn',
|
WARN = 'warn',
|
||||||
|
WARNING = 'warning',
|
||||||
ERROR = 'error',
|
ERROR = 'error',
|
||||||
SILENT = 'silent',
|
SILENT = 'silent',
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,18 @@
|
|||||||
import type { LogLevel, LogSink } from '../types';
|
import { LogLevel } from '../constants';
|
||||||
|
import type { LogSink } from '../types';
|
||||||
|
|
||||||
|
type ConsoleLogLevel =
|
||||||
|
`${Exclude<LogLevel, LogLevel.FATAL | LogLevel.LOG | LogLevel.SILENT | LogLevel.WARNING>}`;
|
||||||
|
|
||||||
const ANSI_RESET = '\u001B[0m';
|
const ANSI_RESET = '\u001B[0m';
|
||||||
const ANSI_BY_LEVEL: Record<Exclude<LogLevel, 'silent'>, string> = {
|
const ANSI_BY_LEVEL: Record<ConsoleLogLevel, string> = {
|
||||||
trace: '\u001B[90m',
|
trace: '\u001B[90m',
|
||||||
debug: '\u001B[36m',
|
debug: '\u001B[36m',
|
||||||
info: '\u001B[32m',
|
info: '\u001B[32m',
|
||||||
warn: '\u001B[33m',
|
warn: '\u001B[33m',
|
||||||
error: '\u001B[31m',
|
error: '\u001B[31m',
|
||||||
};
|
};
|
||||||
const BROWSER_STYLE_BY_LEVEL: Record<Exclude<LogLevel, 'silent'>, string> = {
|
const BROWSER_STYLE_BY_LEVEL: Record<ConsoleLogLevel, string> = {
|
||||||
trace: 'color: #6b7280; font-weight: 600',
|
trace: 'color: #6b7280; font-weight: 600',
|
||||||
debug: 'color: #0891b2; font-weight: 600',
|
debug: 'color: #0891b2; font-weight: 600',
|
||||||
info: 'color: #15803d; font-weight: 600',
|
info: 'color: #15803d; font-weight: 600',
|
||||||
@@ -51,7 +55,7 @@ function supportsAnsi(): boolean {
|
|||||||
export function createConsoleSink(): LogSink {
|
export function createConsoleSink(): LogSink {
|
||||||
return {
|
return {
|
||||||
emit: (event) => {
|
emit: (event) => {
|
||||||
if (!event.sendToConsole) return;
|
if (!event.sendToConsole || event.level === LogLevel.SILENT) return;
|
||||||
const method = event.level === 'trace' ? 'debug' : event.level;
|
const method = event.level === 'trace' ? 'debug' : event.level;
|
||||||
const console_ = globalThis.console as Console & Record<string, unknown>;
|
const console_ = globalThis.console as Console & Record<string, unknown>;
|
||||||
const fn = console_[method];
|
const fn = console_[method];
|
||||||
|
|||||||
+12
-7
@@ -1,10 +1,12 @@
|
|||||||
import type { LogEvent, LogLevel, LogSink } from '../types';
|
import type { LogEvent, LogSink } from '../types';
|
||||||
|
import { LogLevel } from '../constants';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sentry Issue severity levels (`@sentry/core` `SeverityLevel`).
|
* Sentry Issue severity levels (`@sentry/core` `SeverityLevel`).
|
||||||
* Note: Issues use `"warning"`; Logs use `"warn"`.
|
* Note: Issues use `"warning"`; Logs use `"warn"`.
|
||||||
*/
|
*/
|
||||||
export type SentrySeverityLevel = 'fatal' | 'error' | 'warning' | 'log' | 'info' | 'debug';
|
export type SentrySeverityLevel =
|
||||||
|
`${Exclude<LogLevel, LogLevel.SILENT | LogLevel.TRACE | LogLevel.WARN>}`;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Options for {@link createSentrySink}.
|
* Options for {@link createSentrySink}.
|
||||||
@@ -23,7 +25,7 @@ export interface SentrySinkOptions {
|
|||||||
* Minimum level for automatic Sentry Logs delivery when {@link SentrySinkOptions.logs}
|
* Minimum level for automatic Sentry Logs delivery when {@link SentrySinkOptions.logs}
|
||||||
* is enabled. Per-call `{ sentry: true }` bypasses this threshold.
|
* is enabled. Per-call `{ sentry: true }` bypasses this threshold.
|
||||||
*/
|
*/
|
||||||
logLevel?: LogLevel;
|
logLevel?: Exclude<LogLevel, LogLevel.SILENT>;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -124,9 +126,11 @@ export function isSentrySink(sink: LogSink): sink is SentrySink {
|
|||||||
*
|
*
|
||||||
* @param level - Logger emit level (never `silent`).
|
* @param level - Logger emit level (never `silent`).
|
||||||
*/
|
*/
|
||||||
export function toSentrySeverity(level: Exclude<LogLevel, 'silent'>): SentrySeverityLevel {
|
export function toSentrySeverity(
|
||||||
if (level === 'warn') return 'warning';
|
level: `${Exclude<LogLevel, LogLevel.SILENT>}`,
|
||||||
if (level === 'trace') return 'debug';
|
): SentrySeverityLevel {
|
||||||
|
if (level === LogLevel.WARN) return LogLevel.WARNING;
|
||||||
|
if (level === LogLevel.TRACE) return LogLevel.DEBUG;
|
||||||
return level;
|
return level;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -202,6 +206,7 @@ export function createSentrySink(sentry: SentryLike, options: SentrySinkOptions
|
|||||||
options,
|
options,
|
||||||
emit(event: LogEvent) {
|
emit(event: LogEvent) {
|
||||||
if (event.environment === 'development') return;
|
if (event.environment === 'development') return;
|
||||||
|
if (event.level === LogLevel.SILENT) return;
|
||||||
if (event.sendToSentryIssue) {
|
if (event.sendToSentryIssue) {
|
||||||
const error = event.arguments.find((item): item is Error => item instanceof Error);
|
const error = event.arguments.find((item): item is Error => item instanceof Error);
|
||||||
const { message, attributes } = toSentryLogPayload(event);
|
const { message, attributes } = toSentryLogPayload(event);
|
||||||
@@ -217,7 +222,7 @@ export function createSentrySink(sentry: SentryLike, options: SentrySinkOptions
|
|||||||
}
|
}
|
||||||
if (!event.sendToSentryLogs || !sentry.logger) return;
|
if (!event.sendToSentryLogs || !sentry.logger) return;
|
||||||
const method = event.level === 'trace' ? 'trace' : event.level;
|
const method = event.level === 'trace' ? 'trace' : event.level;
|
||||||
const log = sentry.logger[method];
|
const log = sentry.logger[method as keyof SentryLoggerApiLike];
|
||||||
if (typeof log !== 'function') return;
|
if (typeof log !== 'function') return;
|
||||||
const { message, attributes } = toSentryLogPayload(event);
|
const { message, attributes } = toSentryLogPayload(event);
|
||||||
log.call(sentry.logger, message, attributes);
|
log.call(sentry.logger, message, attributes);
|
||||||
|
|||||||
+3
-2
@@ -15,7 +15,8 @@ import { LogLevel as LogLevelEnum, LoggerEnvironment as LoggerEnvironmentEnum }
|
|||||||
* A logger emits events at or above its configured threshold (e.g. `warn`
|
* A logger emits events at or above its configured threshold (e.g. `warn`
|
||||||
* allows `warn` and `error`).
|
* allows `warn` and `error`).
|
||||||
*/
|
*/
|
||||||
export type LogLevel = `${LogLevelEnum}`;
|
export type LogLevel =
|
||||||
|
`${Exclude<LogLevelEnum, LogLevelEnum.FATAL | LogLevelEnum.LOG | LogLevelEnum.WARNING>}`;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deployment stage used to pick a default log level when none is configured
|
* Deployment stage used to pick a default log level when none is configured
|
||||||
@@ -70,7 +71,7 @@ export interface LogCallOptions {
|
|||||||
*/
|
*/
|
||||||
export interface LogEvent {
|
export interface LogEvent {
|
||||||
/** Severity of this event. Never `silent`. */
|
/** Severity of this event. Never `silent`. */
|
||||||
level: Exclude<LogLevel, 'silent'>;
|
level: Exclude<LogLevel, LogLevelEnum.SILENT>;
|
||||||
/**
|
/**
|
||||||
* Colon-joined namespace for this logger (e.g. `"WIDGET:Button"`).
|
* Colon-joined namespace for this logger (e.g. `"WIDGET:Button"`).
|
||||||
* Omitted when the logger was created without a namespace.
|
* Omitted when the logger was created without a namespace.
|
||||||
|
|||||||
Reference in New Issue
Block a user