1 | import {
|
2 | InferFeatures,
|
3 | LoggerPlugin,
|
4 | ReactotronCore,
|
5 | assertHasLoggerPlugin,
|
6 | Plugin,
|
7 | } from "reactotron-core-client"
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | const trackGlobalLogs = () => (reactotron: ReactotronCore) => {
|
13 | assertHasLoggerPlugin(reactotron)
|
14 | const client = reactotron as ReactotronCore & InferFeatures<ReactotronCore, LoggerPlugin>
|
15 |
|
16 | return {
|
17 | onConnect: () => {
|
18 | const originalConsoleLog = console.log
|
19 | console.log = (...args: Parameters<typeof console.log>) => {
|
20 | originalConsoleLog(...args)
|
21 | client.log(...args)
|
22 | }
|
23 |
|
24 | const originalConsoleWarn = console.warn
|
25 | console.warn = (...args: Parameters<typeof console.warn>) => {
|
26 | originalConsoleWarn(...args)
|
27 | client.warn(args[0])
|
28 | }
|
29 |
|
30 | const originalConsoleDebug = console.debug
|
31 | console.debug = (...args: Parameters<typeof console.debug>) => {
|
32 | originalConsoleDebug(...args)
|
33 | client.debug(args[0])
|
34 | }
|
35 |
|
36 |
|
37 | },
|
38 | } satisfies Plugin<ReactotronCore>
|
39 | }
|
40 |
|
41 | export default trackGlobalLogs
|