about summary refs log tree commit diff
path: root/src/logger/index.ts
diff options
context:
space:
mode:
authordan <dan.abramov@gmail.com>2024-12-12 05:00:09 +0000
committerGitHub <noreply@github.com>2024-12-12 05:00:09 +0000
commit704e36c2801c4c06a3763eaef90c6a3e532a326d (patch)
tree79b5150a283af98c2197f69d2dea7679808c5a2b /src/logger/index.ts
parent20ac42a5a324ad553324d15ad868a1fea1868641 (diff)
downloadvoidsky-704e36c2801c4c06a3763eaef90c6a3e532a326d.tar.zst
Fix web build (#7069)
* Fix web build

* Fix circular deps

* Hoist log functions
Diffstat (limited to 'src/logger/index.ts')
-rw-r--r--src/logger/index.ts94
1 files changed, 6 insertions, 88 deletions
diff --git a/src/logger/index.ts b/src/logger/index.ts
index e4adc48e2..02e5d5f25 100644
--- a/src/logger/index.ts
+++ b/src/logger/index.ts
@@ -1,9 +1,3 @@
-import {
-  debug as bdDebug,
-  error as bdError,
-  info as bdInfo,
-  warn as bdWarn,
-} from '@bitdrift/react-native'
 import format from 'date-fns/format'
 import {nanoid} from 'nanoid/non-secure'
 
@@ -12,74 +6,12 @@ import {DebugContext} from '#/logger/debugContext'
 import {add} from '#/logger/logDump'
 import {Sentry} from '#/logger/sentry'
 import * as env from '#/env'
+import {createBitdriftTransport} from './bitdriftTransport'
+import {Metadata} from './types'
+import {ConsoleTransportEntry, LogLevel, Transport} from './types'
 
-export enum LogLevel {
-  Debug = 'debug',
-  Info = 'info',
-  Log = 'log',
-  Warn = 'warn',
-  Error = 'error',
-}
-
-type Transport = (
-  level: LogLevel,
-  message: string | Error,
-  metadata: Metadata,
-  timestamp: number,
-) => void
-
-/**
- * A union of some of Sentry's breadcrumb properties as well as Sentry's
- * `captureException` parameter, `CaptureContext`.
- */
-type Metadata = {
-  /**
-   * Applied as Sentry breadcrumb types. Defaults to `default`.
-   *
-   * @see https://develop.sentry.dev/sdk/event-payloads/breadcrumbs/#breadcrumb-types
-   */
-  type?:
-    | 'default'
-    | 'debug'
-    | 'error'
-    | 'navigation'
-    | 'http'
-    | 'info'
-    | 'query'
-    | 'transaction'
-    | 'ui'
-    | 'user'
-
-  /**
-   * Passed through to `Sentry.captureException`
-   *
-   * @see https://github.com/getsentry/sentry-javascript/blob/903addf9a1a1534a6cb2ba3143654b918a86f6dd/packages/types/src/misc.ts#L65
-   */
-  tags?: {
-    [key: string]:
-      | number
-      | string
-      | boolean
-      | bigint
-      | symbol
-      | null
-      | undefined
-  }
-
-  /**
-   * Any additional data, passed through to Sentry as `extra` param on
-   * exceptions, or the `data` param on breadcrumbs.
-   */
-  [key: string]: unknown
-} & Parameters<typeof Sentry.captureException>[1]
-
-export type ConsoleTransportEntry = {
-  id: string
-  timestamp: number
-  level: LogLevel
-  message: string | Error
-  metadata: Metadata
-}
+export {LogLevel}
+export type {ConsoleTransportEntry, Transport}
 
 const enabledLogLevels: {
   [key in LogLevel]: LogLevel[]
@@ -137,20 +69,6 @@ export const consoleTransport: Transport = (
   }
 }
 
-export const bitdriftTransport: Transport = (level, message) => {
-  const log = (
-    {
-      [LogLevel.Debug]: bdDebug,
-      [LogLevel.Info]: bdInfo,
-      [LogLevel.Log]: bdInfo,
-      [LogLevel.Warn]: bdWarn,
-      [LogLevel.Error]: bdError,
-    } as const
-  )[level]
-
-  log(message.toString())
-}
-
 export const sentryTransport: Transport = (
   level,
   message,
@@ -349,7 +267,7 @@ export class Logger {
 export const logger = new Logger()
 
 if (!env.IS_TEST) {
-  logger.addTransport(bitdriftTransport)
+  logger.addTransport(createBitdriftTransport())
 }
 
 if (env.IS_DEV && !env.IS_TEST) {