import { type InferFeatures, type LoggerPlugin, type ReactotronCore, assertHasLoggerPlugin, type Plugin, } from "reactotron-core-client" /** * Track calls to console.log, console.warn, and console.debug and send them to Reactotron logger */ const trackGlobalLogs = () => (reactotron: ReactotronCore) => { assertHasLoggerPlugin(reactotron) const client = reactotron as ReactotronCore & InferFeatures return { onConnect: () => { const originalConsoleLog = console.log console.log = (...args: Parameters) => { originalConsoleLog(...args) client.log(...args) } const originalConsoleWarn = console.warn console.warn = (...args: Parameters) => { originalConsoleWarn(...args) client.warn(args[0]) } const originalConsoleDebug = console.debug console.debug = (...args: Parameters) => { originalConsoleDebug(...args) client.debug(args[0]) } // console.error is taken care of by ./trackGlobalErrors.ts }, } satisfies Plugin } export default trackGlobalLogs