fix:prettier and some type updates
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful

This commit is contained in:
2026-08-21 12:33:03 -03:00
parent 6651b713db
commit 64b63e1c52
4 changed files with 26 additions and 13 deletions
+3
View File
@@ -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',
} }
+8 -4
View File
@@ -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
View File
@@ -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
View File
@@ -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.