Skip to content

Commit 79e6d35

Browse files
webfansplzantfu
andauthored
feat: migrate vue-devtools to v7.3 (#675)
Co-authored-by: Anthony Fu <github@antfu.me>
1 parent 0ac6511 commit 79e6d35

9 files changed

Lines changed: 614 additions & 195 deletions

File tree

‎packages/devtools/client/composables/vue-devtools.ts‎

Lines changed: 0 additions & 22 deletions
This file was deleted.

‎packages/devtools/client/pages/modules/components-tree.vue‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script setup lang="ts">
22
import { ComponentsasVueComponents } from'@vue/devtools-applet'
3+
import { useDevToolsStateasuseVueDevToolsState } from'@vue/devtools-core'
34
45
const { connected } =useVueDevToolsState()
56
const client =useClient()

‎packages/devtools/client/pages/modules/pinia.vue‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script setup lang="ts">
22
import { Pinia } from'@vue/devtools-applet'
3+
import { useDevToolsStateasuseVueDevToolsState } from'@vue/devtools-core'
34
45
const { connected } =useVueDevToolsState()
56
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import{VueDevToolsVuePlugin}from'@vue/devtools-core'
2+
3+
exportdefaultdefineNuxtPlugin((nuxtApp)=>{
4+
nuxtApp.vueApp.use(VueDevToolsVuePlugin())
5+
})
Lines changed: 7 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,5 @@
1-
import{HandShakeServer,getDevToolsState,initDevToolsSeparateWindow,initDevToolsSeparateWindowBridge,onDevToolsStateUpdated,setupDevToolsBridge}from'@vue/devtools-core'
2-
importtype{AppRecord}from'@vue/devtools-kit'
3-
import{toggleHighPerfMode}from'@vue/devtools-kit'
4-
5-
exporttypeDevtoolsBridgeAppRecord=Pick<AppRecord,'name'|'id'|'version'|'routerId'|'moduleDetectives'>
6-
7-
constappConnected=ref(false)
8-
constclientConnected=ref(false)
9-
constappRecords=ref<Array<DevtoolsBridgeAppRecord>>([])
10-
constactiveAppRecordId=ref<string|null>(null)
11-
exportconstconnected=computed(()=>appConnected.value&&clientConnected.value)
12-
exportconstactiveAppRecord=computed(()=>appRecords.value.find(r=>r.id===activeAppRecordId.value))
13-
14-
exportfunctioninitVueDevToolsState(){
15-
getDevToolsState().then((data)=>{
16-
if(!data)
17-
return
18-
appConnected.value=data.connected
19-
clientConnected.value=data.clientConnected
20-
appRecords.value=data.appRecords
21-
activeAppRecordId.value=data.activeAppRecordId
22-
})
23-
24-
onDevToolsStateUpdated((data)=>{
25-
if(!data)
26-
return
27-
appConnected.value=data.connected
28-
clientConnected.value=data.clientConnected
29-
appRecords.value=data.appRecords
30-
activeAppRecordId.value=data.activeAppRecordId
31-
})
32-
33-
return{
34-
appRecords,
35-
activeAppRecord,
36-
}
37-
}
1+
import{functions,onRpcConnected,rpc}from'@vue/devtools-core'
2+
import{createRpcClient,toggleHighPerfMode}from'@vue/devtools-kit'
383

394
exportfunctionsetupVueDevTools(){
405
conststate=useDevToolsFrameState()
@@ -48,18 +13,10 @@ export function setupVueDevTools() {
4813
toggleHighPerfMode(!state.value?.open)
4914
})
5015

51-
initDevToolsSeparateWindow({
52-
onConnected(channel){
53-
constbridge=initDevToolsSeparateWindowBridge(channel)
54-
setupDevToolsBridge(bridge)
55-
newHandShakeServer(bridge).onnConnect().then(()=>{
56-
bridge.emit('devtools:client-ready')
57-
initVueDevToolsState()
58-
})
59-
bridge.on('disconnect',()=>{
60-
channel.close()
61-
initDevToolsSeparateWindow()
62-
})
63-
},
16+
createRpcClient(functions,{
17+
preset: 'iframe',
18+
})
19+
onRpcConnected(()=>{
20+
rpc.value.initDevToolsServerListener()
6421
})
6522
}

‎packages/devtools/package.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
"@nuxt/devtools-kit": "workspace:*",
4747
"@nuxt/devtools-wizard": "workspace:*",
4848
"@nuxt/kit": "^3.12.2",
49+
"@vue/devtools-core": "7.3.3",
50+
"@vue/devtools-kit": "7.3.3",
4951
"birpc": "^0.2.17",
5052
"consola": "^3.2.3",
5153
"cronstrue": "^2.50.0",
@@ -96,9 +98,7 @@
9698
"@unocss/preset-uno": "^0.61.0",
9799
"@unocss/runtime": "^0.61.0",
98100
"@vitest/ui": "^1.6.0",
99-
"@vue/devtools-applet": "7.1.3",
100-
"@vue/devtools-core": "7.1.3",
101-
"@vue/devtools-kit": "7.1.3",
101+
"@vue/devtools-applet": "7.3.3",
102102
"@vueuse/nuxt": "^10.11.0",
103103
"esno": "^4.7.0",
104104
"floating-vue": "5.0.2",

‎packages/devtools/src/runtime/plugins/view/client.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { createHooks } from 'hookable'
44
import{debounce}from'perfect-debounce'
55
importtype{Router}from'vue-router'
66
importtype{$Fetch}from'ofetch'
7+
import{setIframeServerContext}from'@vue/devtools-kit'
78
importtype{NuxtDevtoolsHostClient,TimelineEventRoute,TimelineMetrics}from'../../../types'
89
import{initTimelineMetrics}from'../../function-metrics-helpers'
910
importMainfrom'./Main.vue'
@@ -133,6 +134,7 @@ export async function setupDevToolsClient({
133134
iframe.src=initialUrl
134135
iframe.onload=async()=>{
135136
try{
137+
setIframeServerContext(iframe!)
136138
awaitwaitForClientInjection()
137139
client.syncClient()
138140
}
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import{devtools}from'@vue/devtools-kit'
2-
import{initAppSeparateWindow}from'@vue/devtools-core'
1+
import{createRpcServer,devtools}from'@vue/devtools-kit'
2+
import{functions}from'@vue/devtools-core'
33

44
devtools.init()
55

6-
initAppSeparateWindow()
6+
createRpcServer(functions,{
7+
preset: 'iframe',
8+
})

0 commit comments

Comments
 (0)