From 66280fd73135b36cb2a1460e7ee252e3e4fb43a3 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 12 Feb 2025 10:53:51 -0600 Subject: [PATCH] Clean up types --- src/lib/hooks/useNotificationHandler.ts | 2 +- src/lib/notifications/notifications.ts | 2 +- src/logger/__tests__/logDump.test.ts | 10 +++++----- src/logger/__tests__/logger.test.ts | 5 +++-- src/logger/index.ts | 19 +++++-------------- src/logger/logContext.ts | 13 ------------- src/logger/logDump.ts | 11 ++++++++++- src/logger/types.ts | 24 +++++++++++++----------- src/state/messages/convo/agent.ts | 2 +- src/state/messages/events/agent.ts | 2 +- 10 files changed, 40 insertions(+), 50 deletions(-) delete mode 100644 src/logger/logContext.ts diff --git a/src/lib/hooks/useNotificationHandler.ts b/src/lib/hooks/useNotificationHandler.ts index 764b2f4405..b5566f8a68 100644 --- a/src/lib/hooks/useNotificationHandler.ts +++ b/src/lib/hooks/useNotificationHandler.ts @@ -50,7 +50,7 @@ const DEFAULT_HANDLER_OPTIONS = { let storedPayload: NotificationPayload | undefined let prevDate = 0 -const logger = Logger.create(Logger.Context.notifications) +const logger = Logger.create(Logger.Context.Notifications) export function useNotificationsHandler() { const queryClient = useQueryClient() diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index d394b39803..ab7fc57088 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -14,7 +14,7 @@ const SERVICE_DID = (serviceUrl?: string) => ? 'did:web:api.staging.bsky.dev' : 'did:web:api.bsky.app' -const logger = Logger.create(Logger.Context.notifications) +const logger = Logger.create(Logger.Context.Notifications) async function registerPushToken( agent: BskyAgent, diff --git a/src/logger/__tests__/logDump.test.ts b/src/logger/__tests__/logDump.test.ts index 704413f7f3..67283aa222 100644 --- a/src/logger/__tests__/logDump.test.ts +++ b/src/logger/__tests__/logDump.test.ts @@ -1,14 +1,14 @@ import {expect, test} from '@jest/globals' -import {ConsoleTransportEntry, LogLevel} from '#/logger' -import {add, getEntries} from '#/logger/logDump' +import {add, ConsoleTransportEntry,getEntries} from '#/logger/logDump' +import {LogContext,LogLevel} from '#/logger/types' test('works', () => { const items: ConsoleTransportEntry[] = [ { id: '1', level: LogLevel.Debug, - context: 'convo', + context: LogContext.Default, message: 'hello', metadata: {}, timestamp: Date.now(), @@ -16,7 +16,7 @@ test('works', () => { { id: '2', level: LogLevel.Debug, - context: 'convo', + context: LogContext.Default, message: 'hello', metadata: {}, timestamp: Date.now(), @@ -24,7 +24,7 @@ test('works', () => { { id: '3', level: LogLevel.Debug, - context: 'convo', + context: LogContext.Default, message: 'hello', metadata: {}, timestamp: Date.now(), diff --git a/src/logger/__tests__/logger.test.ts b/src/logger/__tests__/logger.test.ts index a46ed05d24..f8bd2cb313 100644 --- a/src/logger/__tests__/logger.test.ts +++ b/src/logger/__tests__/logger.test.ts @@ -2,8 +2,9 @@ import {beforeAll, describe, expect, jest, test} from '@jest/globals' import * as Sentry from '@sentry/react-native' import {nanoid} from 'nanoid/non-secure' -import {Logger, LogLevel} from '#/logger' +import {Logger} from '#/logger' import {sentryTransport} from '#/logger/transports/sentry' +import {LogLevel} from '#/logger/types' jest.mock('#/env', () => ({ /* @@ -240,7 +241,7 @@ describe('create', () => { test('create', () => { const timestamp = Date.now() const message = nanoid() - const logger = Logger.create('notifications') + const logger = Logger.create(Logger.Context.Default) logger.addTransport(mockTransport) logger.info(message, {}) diff --git a/src/logger/index.ts b/src/logger/index.ts index 0ba9ff250d..8008c658c9 100644 --- a/src/logger/index.ts +++ b/src/logger/index.ts @@ -1,22 +1,13 @@ import {nanoid} from 'nanoid/non-secure' -import {LogContext} from '#/logger/logContext' import {add} from '#/logger/logDump' import {bitdriftTransport} from '#/logger/transports/bitdrift' import {consoleTransport} from '#/logger/transports/console' import {sentryTransport} from '#/logger/transports/sentry' -import { - ConsoleTransportEntry, - LogLevel, - Metadata, - Transport, -} from '#/logger/types' +import {LogContext, LogLevel, Metadata, Transport} from '#/logger/types' import {enabledLogLevels} from '#/logger/util' import {isWeb} from '#/platform/detection' -export {LogLevel} -export type {ConsoleTransportEntry, Transport} - const TRANSPORTS: Transport[] = (function configureTransports() { switch (process.env.NODE_ENV) { case 'production': { @@ -38,13 +29,13 @@ export class Logger { static Context = LogContext level: LogLevel - context: keyof typeof LogContext | undefined = undefined + context: LogContext | undefined = undefined contextFilter: string = '' protected debugContextRegexes: RegExp[] = [] protected transports: Transport[] = [] - static create(context?: keyof typeof LogContext) { + static create(context?: LogContext) { const logger = new Logger({ level: (process.env.EXPO_PUBLIC_LOG_LEVEL || LogLevel.Info) as LogLevel, context, @@ -62,7 +53,7 @@ export class Logger { contextFilter = process.env.EXPO_PUBLIC_LOG_DEBUG || '', }: { level?: LogLevel - context?: keyof typeof LogContext + context?: LogContext contextFilter?: string } = {}) { this.context = context @@ -147,4 +138,4 @@ export class Logger { * `logger.disable()` * `logger.enable()` */ -export const logger = Logger.create(Logger.Context.logger) +export const logger = Logger.create(Logger.Context.Default) diff --git a/src/logger/logContext.ts b/src/logger/logContext.ts deleted file mode 100644 index 448e0f0e37..0000000000 --- a/src/logger/logContext.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * *Do not import this directly.* Instead, use the shortcut reference `logger.DebugContext`. - * - * Add debug contexts here. Although convention typically calls for enums ito - * be capitalized, for parity with the `LOG_DEBUG` env var, please use all - * lowercase. - */ -export const LogContext = { - logger: 'logger', - session: 'session', - notifications: 'notifications', - convo: 'convo', -} as const diff --git a/src/logger/logDump.ts b/src/logger/logDump.ts index 563b12aa46..12cf899eb7 100644 --- a/src/logger/logDump.ts +++ b/src/logger/logDump.ts @@ -1,4 +1,13 @@ -import type {ConsoleTransportEntry} from '#/logger' +import type {LogContext, LogLevel, Metadata} from '#/logger/types' + +export type ConsoleTransportEntry = { + id: string + timestamp: number + level: LogLevel + context: LogContext | undefined + message: string | Error + metadata: Metadata +} let entries: ConsoleTransportEntry[] = [] diff --git a/src/logger/types.ts b/src/logger/types.ts index 82e78e3baf..1d1b2ec38e 100644 --- a/src/logger/types.ts +++ b/src/logger/types.ts @@ -1,6 +1,17 @@ -import {LogContext} from '#/logger/logContext' import type {Sentry} from '#/logger/sentry/lib' +/** + * DO NOT IMPORT THIS DIRECTLY + * + * Logger contexts, defined here and used via `Logger.Context.*` static prop. + */ +export enum LogContext { + Default = 'logger', + Session = 'session', + Notifications = 'notifications', + Convo = 'convo', +} + export enum LogLevel { Debug = 'debug', Info = 'info', @@ -11,7 +22,7 @@ export enum LogLevel { export type Transport = ( level: LogLevel, - context: keyof typeof LogContext | undefined, + context: LogContext | undefined, message: string | Error, metadata: Metadata, timestamp: number, @@ -61,12 +72,3 @@ export type Metadata = { */ [key: string]: unknown } & Parameters[1] - -export type ConsoleTransportEntry = { - id: string - timestamp: number - level: LogLevel - context: keyof typeof LogContext | undefined - message: string | Error - metadata: Metadata -} diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 473fccd1a5..c892a859cf 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -34,7 +34,7 @@ import {MessagesEventBus} from '#/state/messages/events/agent' import {MessagesEventBusError} from '#/state/messages/events/types' import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' -const logger = Logger.create(Logger.Context.convo) +const logger = Logger.create(Logger.Context.Convo) export function isConvoItemMessage( item: ConvoItem, diff --git a/src/state/messages/events/agent.ts b/src/state/messages/events/agent.ts index 09363b4b28..5254e6777f 100644 --- a/src/state/messages/events/agent.ts +++ b/src/state/messages/events/agent.ts @@ -19,7 +19,7 @@ import { import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' const LOGGER_CONTEXT = 'MessagesEventBus' -const logger = Logger.create(Logger.Context.convo) +const logger = Logger.create(Logger.Context.Convo) export class MessagesEventBus { private id: string