Skip to content

Commit 9033ce2

Browse files
committed
fix: rpc serialization error with Vite configs
1 parent 422c8d8 commit 9033ce2

File tree

5 files changed

+42
-13
lines changed

5 files changed

+42
-13
lines changed

packages/devtools/client/composables/rpc.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,15 @@ export const rpc = createBirpc<ServerFunctions, ClientFunctions>(clientFunctions
3636
const [namespace, fnName] = name.split(':') as [string, string]
3737
return extendedRpcMap.get(namespace)?.[fnName]
3838
},
39-
onError(error, name) {
40-
console.error(`[nuxt-devtools] RPC error on executing "${name}":`, error)
39+
onFunctionError(error, name) {
40+
console.error(`[nuxt-devtools] RPC error on executing "${name}":`)
41+
console.error(error)
42+
return true
43+
},
44+
onGeneralError(error) {
45+
console.error(`[nuxt-devtools] RPC error:`)
46+
console.error(error)
47+
return true
4148
},
4249
timeout: 120_000,
4350
})

packages/devtools/client/modules/markdown.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import type { BuiltinLanguage } from 'shiki'
2-
import { defineNuxtModule } from '@nuxt/kit'
2+
import { defineNuxtModule, logger } from '@nuxt/kit'
3+
import { consola } from 'consola'
34
import LinkAttributes from 'markdown-it-link-attributes'
45
import { createHighlighter } from 'shiki'
56
import { bundledLanguages } from 'shiki/langs'
67
import Markdown from 'unplugin-vue-markdown/vite'
78

89
export default defineNuxtModule({
910
async setup(_, nuxt) {
11+
logger.restoreAll()
12+
consola.restoreAll()
13+
1014
nuxt.options.imports.transform ||= {}
1115
nuxt.options.imports.transform.include = [/\.vue$/, /\.md$/]
1216

packages/devtools/src/server-rpc/server-data.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,24 @@ export function setupServerDataRPC({
1010
let viteServer: ResolvedConfig | undefined
1111
let viteClient: ResolvedConfig | undefined
1212

13+
// Avoid sending the Vite instance to the client
14+
function normalizeViteConfig(config: ResolvedConfig) {
15+
return {
16+
...config,
17+
environments: Object.fromEntries(
18+
Object.entries(config.env).map(([key, _]) => {
19+
return [key, null]
20+
}),
21+
),
22+
plugins: config.plugins.map((i) => {
23+
const clone = { ...i }
24+
delete clone.api
25+
return clone
26+
}),
27+
inlineConfig: null,
28+
} as any as ResolvedConfig
29+
}
30+
1331
nuxt.hook('nitro:build:before', (_nitro) => {
1432
nitro = _nitro
1533
})
@@ -21,7 +39,7 @@ export function setupServerDataRPC({
2139
name: 'nuxt:devtools:config-retriever',
2240
enforce: 'post',
2341
configResolved(config) {
24-
viteServer = config
42+
viteServer = normalizeViteConfig(config)
2543
},
2644
})
2745
}
@@ -31,7 +49,7 @@ export function setupServerDataRPC({
3149
name: 'nuxt:devtools:config-retriever',
3250
enforce: 'post',
3351
configResolved(config) {
34-
viteClient = config
52+
viteClient = normalizeViteConfig(config)
3553
},
3654
})
3755
}

pnpm-lock.yaml

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ catalog:
4949
'@vueuse/nuxt': ^12.5.0
5050
'@xterm/addon-fit': ^0.10.0
5151
'@xterm/xterm': ^5.5.0
52-
birpc: ^2.0.19
52+
birpc: ^2.2.0
5353
bumpp: ^10.0.1
5454
consola: ^3.4.0
5555
conventional-changelog-cli: ^5.0.0

0 commit comments

Comments
 (0)