49 lines
1.1 KiB
TypeScript
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)
|
|
}
|
|
})
|