Fix web build (#7069)
* Fix web build * Fix circular deps * Hoist log functions
This commit is contained in:
@@ -0,0 +1,23 @@
|
|||||||
|
import {
|
||||||
|
debug as bdDebug,
|
||||||
|
error as bdError,
|
||||||
|
info as bdInfo,
|
||||||
|
warn as bdWarn,
|
||||||
|
} from '@bitdrift/react-native'
|
||||||
|
|
||||||
|
import {LogLevel, Transport} from './types'
|
||||||
|
|
||||||
|
export function createBitdriftTransport(): Transport {
|
||||||
|
const logFunctions = {
|
||||||
|
[LogLevel.Debug]: bdDebug,
|
||||||
|
[LogLevel.Info]: bdInfo,
|
||||||
|
[LogLevel.Log]: bdInfo,
|
||||||
|
[LogLevel.Warn]: bdWarn,
|
||||||
|
[LogLevel.Error]: bdError,
|
||||||
|
} as const
|
||||||
|
|
||||||
|
return (level, message) => {
|
||||||
|
const log = logFunctions[level]
|
||||||
|
log(message.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
import {Transport} from './index'
|
||||||
|
|
||||||
|
export function createBitdriftTransport(): Transport {
|
||||||
|
return (_level, _message) => {
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
}
|
||||||
+6
-88
@@ -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 format from 'date-fns/format'
|
||||||
import {nanoid} from 'nanoid/non-secure'
|
import {nanoid} from 'nanoid/non-secure'
|
||||||
|
|
||||||
@@ -12,74 +6,12 @@ import {DebugContext} from '#/logger/debugContext'
|
|||||||
import {add} from '#/logger/logDump'
|
import {add} from '#/logger/logDump'
|
||||||
import {Sentry} from '#/logger/sentry'
|
import {Sentry} from '#/logger/sentry'
|
||||||
import * as env from '#/env'
|
import * as env from '#/env'
|
||||||
|
import {createBitdriftTransport} from './bitdriftTransport'
|
||||||
|
import {Metadata} from './types'
|
||||||
|
import {ConsoleTransportEntry, LogLevel, Transport} from './types'
|
||||||
|
|
||||||
export enum LogLevel {
|
export {LogLevel}
|
||||||
Debug = 'debug',
|
export type {ConsoleTransportEntry, Transport}
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
const enabledLogLevels: {
|
const enabledLogLevels: {
|
||||||
[key in LogLevel]: LogLevel[]
|
[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 = (
|
export const sentryTransport: Transport = (
|
||||||
level,
|
level,
|
||||||
message,
|
message,
|
||||||
@@ -349,7 +267,7 @@ export class Logger {
|
|||||||
export const logger = new Logger()
|
export const logger = new Logger()
|
||||||
|
|
||||||
if (!env.IS_TEST) {
|
if (!env.IS_TEST) {
|
||||||
logger.addTransport(bitdriftTransport)
|
logger.addTransport(createBitdriftTransport())
|
||||||
}
|
}
|
||||||
|
|
||||||
if (env.IS_DEV && !env.IS_TEST) {
|
if (env.IS_DEV && !env.IS_TEST) {
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
import type {Sentry} from '#/logger/sentry'
|
||||||
|
|
||||||
|
export enum LogLevel {
|
||||||
|
Debug = 'debug',
|
||||||
|
Info = 'info',
|
||||||
|
Log = 'log',
|
||||||
|
Warn = 'warn',
|
||||||
|
Error = 'error',
|
||||||
|
}
|
||||||
|
|
||||||
|
export 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`.
|
||||||
|
*/
|
||||||
|
export 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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user