Files
webapp/app/plugins/00-apollo-console-filter.client.ts

49 lines
1.1 KiB
TypeScript

export default defineNuxtPlugin(() => {
const originalConsoleError = console.error
const originalConsoleWarn = console.warn
const shouldSuppressApolloNoise = (args: unknown[]) => {
const serializedArgs = args
.map((arg) => {
if (typeof arg === 'string') return arg
if (arg instanceof Error) return `${arg.message}\n${arg.stack || ''}`
try {
return JSON.stringify(arg)
} catch {
return String(arg)
}
})
.join(' ')
return (
(
serializedArgs.includes('connectToDevTools')
&& serializedArgs.includes('devtools.enabled')
)
|| (
serializedArgs.includes('go.apollo.dev/c/err')
&& (
serializedArgs.includes('"message":104')
|| serializedArgs.includes('%22message%22%3A104')
)
)
)
}
console.error = (...args: unknown[]) => {
if (shouldSuppressApolloNoise(args)) {
return
}
originalConsoleError(...args)
}
console.warn = (...args: unknown[]) => {
if (shouldSuppressApolloNoise(args)) {
return
}
originalConsoleWarn(...args)
}
})