Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix web build (#7069)

* Fix web build

* Fix circular deps

* Hoist log functions

authored by

dan and committed by
GitHub
704e36c2 20ac42a5

+105 -88
+23
src/logger/bitdriftTransport.ts
··· 1 + import { 2 + debug as bdDebug, 3 + error as bdError, 4 + info as bdInfo, 5 + warn as bdWarn, 6 + } from '@bitdrift/react-native' 7 + 8 + import {LogLevel, Transport} from './types' 9 + 10 + export function createBitdriftTransport(): Transport { 11 + const logFunctions = { 12 + [LogLevel.Debug]: bdDebug, 13 + [LogLevel.Info]: bdInfo, 14 + [LogLevel.Log]: bdInfo, 15 + [LogLevel.Warn]: bdWarn, 16 + [LogLevel.Error]: bdError, 17 + } as const 18 + 19 + return (level, message) => { 20 + const log = logFunctions[level] 21 + log(message.toString()) 22 + } 23 + }
+7
src/logger/bitdriftTransport.web.ts
··· 1 + import {Transport} from './index' 2 + 3 + export function createBitdriftTransport(): Transport { 4 + return (_level, _message) => { 5 + // noop 6 + } 7 + }
+6 -88
src/logger/index.ts
··· 1 - import { 2 - debug as bdDebug, 3 - error as bdError, 4 - info as bdInfo, 5 - warn as bdWarn, 6 - } from '@bitdrift/react-native' 7 1 import format from 'date-fns/format' 8 2 import {nanoid} from 'nanoid/non-secure' 9 3 ··· 12 6 import {add} from '#/logger/logDump' 13 7 import {Sentry} from '#/logger/sentry' 14 8 import * as env from '#/env' 15 - 16 - export enum LogLevel { 17 - Debug = 'debug', 18 - Info = 'info', 19 - Log = 'log', 20 - Warn = 'warn', 21 - Error = 'error', 22 - } 23 - 24 - type Transport = ( 25 - level: LogLevel, 26 - message: string | Error, 27 - metadata: Metadata, 28 - timestamp: number, 29 - ) => void 30 - 31 - /** 32 - * A union of some of Sentry's breadcrumb properties as well as Sentry's 33 - * `captureException` parameter, `CaptureContext`. 34 - */ 35 - type Metadata = { 36 - /** 37 - * Applied as Sentry breadcrumb types. Defaults to `default`. 38 - * 39 - * @see https://develop.sentry.dev/sdk/event-payloads/breadcrumbs/#breadcrumb-types 40 - */ 41 - type?: 42 - | 'default' 43 - | 'debug' 44 - | 'error' 45 - | 'navigation' 46 - | 'http' 47 - | 'info' 48 - | 'query' 49 - | 'transaction' 50 - | 'ui' 51 - | 'user' 52 - 53 - /** 54 - * Passed through to `Sentry.captureException` 55 - * 56 - * @see https://github.com/getsentry/sentry-javascript/blob/903addf9a1a1534a6cb2ba3143654b918a86f6dd/packages/types/src/misc.ts#L65 57 - */ 58 - tags?: { 59 - [key: string]: 60 - | number 61 - | string 62 - | boolean 63 - | bigint 64 - | symbol 65 - | null 66 - | undefined 67 - } 68 - 69 - /** 70 - * Any additional data, passed through to Sentry as `extra` param on 71 - * exceptions, or the `data` param on breadcrumbs. 72 - */ 73 - [key: string]: unknown 74 - } & Parameters<typeof Sentry.captureException>[1] 9 + import {createBitdriftTransport} from './bitdriftTransport' 10 + import {Metadata} from './types' 11 + import {ConsoleTransportEntry, LogLevel, Transport} from './types' 75 12 76 - export type ConsoleTransportEntry = { 77 - id: string 78 - timestamp: number 79 - level: LogLevel 80 - message: string | Error 81 - metadata: Metadata 82 - } 13 + export {LogLevel} 14 + export type {ConsoleTransportEntry, Transport} 83 15 84 16 const enabledLogLevels: { 85 17 [key in LogLevel]: LogLevel[] ··· 135 67 } else { 136 68 log(`${format(timestamp, 'HH:mm:ss')} ${message.toString()}${extra}`) 137 69 } 138 - } 139 - 140 - export const bitdriftTransport: Transport = (level, message) => { 141 - const log = ( 142 - { 143 - [LogLevel.Debug]: bdDebug, 144 - [LogLevel.Info]: bdInfo, 145 - [LogLevel.Log]: bdInfo, 146 - [LogLevel.Warn]: bdWarn, 147 - [LogLevel.Error]: bdError, 148 - } as const 149 - )[level] 150 - 151 - log(message.toString()) 152 70 } 153 71 154 72 export const sentryTransport: Transport = ( ··· 349 267 export const logger = new Logger() 350 268 351 269 if (!env.IS_TEST) { 352 - logger.addTransport(bitdriftTransport) 270 + logger.addTransport(createBitdriftTransport()) 353 271 } 354 272 355 273 if (env.IS_DEV && !env.IS_TEST) {
+69
src/logger/types.ts
··· 1 + import type {Sentry} from '#/logger/sentry' 2 + 3 + export enum LogLevel { 4 + Debug = 'debug', 5 + Info = 'info', 6 + Log = 'log', 7 + Warn = 'warn', 8 + Error = 'error', 9 + } 10 + 11 + export type Transport = ( 12 + level: LogLevel, 13 + message: string | Error, 14 + metadata: Metadata, 15 + timestamp: number, 16 + ) => void 17 + 18 + /** 19 + * A union of some of Sentry's breadcrumb properties as well as Sentry's 20 + * `captureException` parameter, `CaptureContext`. 21 + */ 22 + export type Metadata = { 23 + /** 24 + * Applied as Sentry breadcrumb types. Defaults to `default`. 25 + * 26 + * @see https://develop.sentry.dev/sdk/event-payloads/breadcrumbs/#breadcrumb-types 27 + */ 28 + type?: 29 + | 'default' 30 + | 'debug' 31 + | 'error' 32 + | 'navigation' 33 + | 'http' 34 + | 'info' 35 + | 'query' 36 + | 'transaction' 37 + | 'ui' 38 + | 'user' 39 + 40 + /** 41 + * Passed through to `Sentry.captureException` 42 + * 43 + * @see https://github.com/getsentry/sentry-javascript/blob/903addf9a1a1534a6cb2ba3143654b918a86f6dd/packages/types/src/misc.ts#L65 44 + */ 45 + tags?: { 46 + [key: string]: 47 + | number 48 + | string 49 + | boolean 50 + | bigint 51 + | symbol 52 + | null 53 + | undefined 54 + } 55 + 56 + /** 57 + * Any additional data, passed through to Sentry as `extra` param on 58 + * exceptions, or the `data` param on breadcrumbs. 59 + */ 60 + [key: string]: unknown 61 + } & Parameters<typeof Sentry.captureException>[1] 62 + 63 + export type ConsoleTransportEntry = { 64 + id: string 65 + timestamp: number 66 + level: LogLevel 67 + message: string | Error 68 + metadata: Metadata 69 + }