Skip to content

Commit a5a1aba

Browse files
authored
refactor: bridge messaging (#268)
1 parent 495cade commit a5a1aba

26 files changed

+325
-340
lines changed

packages/client/src/App.vue

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script setup lang="ts">
22
import type { Ref } from 'vue'
3-
import { defineDevToolsAction, useDevToolsBridge, useDevToolsState } from '@vue/devtools-core'
3+
import { checkVueInspectorDetected, enableVueInspector, useDevToolsBridge, useDevToolsState } from '@vue/devtools-core'
44
import { isInChromePanel } from '@vue/devtools-shared'
55
import { Pane, Splitpanes } from 'splitpanes'
66
@@ -70,16 +70,6 @@ watchEffect(() => {
7070
const { copy } = useCopy()
7171
const eyeDropper = useEyeDropper({})
7272
73-
const checkVueInspectorDetected = defineDevToolsAction<boolean>('devtools:check-vue-inspector-detected', async (devtools) => {
74-
return !!await devtools?.api?.getVueInspector?.()
75-
})
76-
77-
const enableVueInspector = defineDevToolsAction('devtools:enable-vue-inspector', async (devtools) => {
78-
const inspector = await devtools?.api?.getVueInspector?.()
79-
if (inspector)
80-
await inspector.enable()
81-
})
82-
8373
checkVueInspectorDetected().then((detected) => {
8474
if (detected) {
8575
vueInspectorDetected.value = true

packages/client/src/components/assets/AssetDetails.vue

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script setup lang="ts">
22
import { useTimeAgo } from '@vueuse/core'
33
import type { AssetInfo, CodeSnippet, ImageMeta } from '@vue/devtools-core'
4-
import { callViteServerAction, useDevToolsState } from '@vue/devtools-core'
4+
import { callViteServerAction, openInEditor, useDevToolsState } from '@vue/devtools-core'
55
import { VueButton, VueIcon, VTooltip as vTooltip } from '@vue/devtools-ui'
66
77
const props = defineProps<{
@@ -15,7 +15,6 @@ const getImageMeta = callViteServerAction<ImageMeta>('assets:get-image-meta')
1515
const getTextAssetContent = callViteServerAction<string>('assets:get-text-asset-content')
1616
const asset = useVModel(props, 'modelValue', emit, { passive: true })
1717
18-
const _openInEditor = openInEditor
1918
const _vueInspectorDetected = computed(() => vueInspectorDetected.value)
2019
const imageMeta = computedAsync(() => {
2120
if (asset.value.type !== 'image')
@@ -139,7 +138,7 @@ const supportsPreview = computed(() => {
139138
icon="i-carbon-launch"
140139
action flex-none
141140
:border="false"
142-
@click="_openInEditor(asset.filePath)"
141+
@click="openInEditor(asset.filePath)"
143142
/>
144143
</div>
145144
</td>

packages/client/src/components/common/DockingPanel.vue

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script setup lang="ts">
22
import { VueButton, VueDarkToggle, VueIcon, VueSelect } from '@vue/devtools-ui'
33
import { isInChromePanel } from '@vue/devtools-shared'
4-
import { defineDevToolsAction, useDevToolsState } from '@vue/devtools-core'
4+
import { toggleApp, useDevToolsState } from '@vue/devtools-core'
55
66
// #region view mode
77
const viewMode = inject<Ref<'overlay' | 'panel'>>('viewMode', ref('overlay'))
@@ -35,10 +35,6 @@ const appRecords = computed(() => devtoolsState.appRecords.value.map(app => ({
3535
const activeAppRecordId = ref(devtoolsState.activeAppRecordId.value)
3636
const activeAppRecordName = computed(() => appRecords.value.find(app => app.value === activeAppRecordId.value)?.label ?? '')
3737
38-
const toggleApp = defineDevToolsAction('devtools:toggle-app', async (devtools, id: string) => {
39-
await devtools.api.toggleApp(id)
40-
})
41-
4238
watch(activeAppRecordId, (id) => {
4339
toggleApp(`${id}`).then(() => {
4440
router.push('/overview').then(() => {

packages/client/src/components/graph/GraphDrawer.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script setup lang="ts">
22
import { VueButton, VueDrawer, showVueNotification } from '@vue/devtools-ui'
3-
import { useDevToolsState } from '@vue/devtools-core'
3+
import { openInEditor, useDevToolsState } from '@vue/devtools-core'
44
55
defineProps<{
66
top?: HTMLElement

packages/client/src/components/inspector/InspectorDataField/Actions.vue

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { VueButton, VueDropdown, VueDropdownButton, VueIcon, VTooltip as vToolti
44
import { getRaw } from '@vue/devtools-kit'
55
import type { InspectorState, InspectorStateEditorPayload } from '@vue/devtools-kit'
66
import type { ButtonProps } from '@vue/devtools-ui/dist/types/src/components/Button'
7-
import { defineDevToolsAction } from '@vue/devtools-core'
7+
import { editInspectorState } from '@vue/devtools-core'
88
import type { EditorAddNewPropType, EditorInputValidType } from '../../../composables/inspector'
99
1010
const props = withDefaults(defineProps<{
@@ -22,10 +22,6 @@ defineEmits<{
2222
addNewProp: [type: EditorAddNewPropType]
2323
}>()
2424
25-
const editInspectorState = defineDevToolsAction('devtools:edit-inspector-state', (devtools, payload: InspectorStateEditorPayload) => {
26-
devtools.api.editInspectorState(payload)
27-
})
28-
2925
const state = useStateEditorContext()
3026
3127
const { copy, isSupported } = useClipboard()

packages/client/src/components/inspector/InspectorStateField.vue

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import type { InspectorCustomState, InspectorState, InspectorStateEditorPayload } from '@vue/devtools-kit'
33
import { isArray, isObject, sortByKey } from '@vue/devtools-shared'
44
import { formatInspectorStateValue, getInspectorStateValueType, getRaw, toEdit, toSubmit } from '@vue/devtools-kit'
5-
import { defineDevToolsAction } from '@vue/devtools-core'
5+
import { editInspectorState } from '@vue/devtools-core'
66
import { VueButton, VueIcon, VTooltip as vTooltip } from '@vue/devtools-ui'
77
import Actions from './InspectorDataField/Actions.vue'
88
import type { EditorAddNewPropType } from '~/composables/inspector'
@@ -115,10 +115,6 @@ watch(() => editing.value, (v) => {
115115
}
116116
})
117117
118-
const editInspectorState = defineDevToolsAction('devtools:edit-inspector-state', (devtools, payload: InspectorStateEditorPayload) => {
119-
devtools.api.editInspectorState(payload)
120-
})
121-
122118
function submit() {
123119
const data = props.data
124120
editInspectorState({

packages/client/src/components/pages/RoutesTable.vue

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script setup lang="ts">
22
import { VueBadge } from '@vue/devtools-ui'
33
import type { RouteRecordNormalized } from 'vue-router'
4-
import { useDevToolsState } from '@vue/devtools-core'
4+
import { openInEditor, useDevToolsState } from '@vue/devtools-core'
55
66
const props = defineProps<{
77
pages: RouteRecordNormalized[]
@@ -17,7 +17,6 @@ const sorted = computed(() => {
1717
return [...props.pages].sort((a, b) => a.path.localeCompare(b.path))
1818
})
1919
20-
const _openInEditor = openInEditor
2120
const _vueInspectorDetected = computed(() => vueInspectorDetected.value)
2221
const state = useDevToolsState()
2322
</script>
@@ -67,7 +66,7 @@ const state = useDevToolsState()
6766
v-if="(item.file || item.meta?.file) && state.vitePluginDetected.value && _vueInspectorDetected"
6867
text-sm op40 hover="op100 text-primary-400"
6968
title="Open in editor"
70-
@click="_openInEditor((item.file || item.meta?.file) as string)"
69+
@click="openInEditor((item.file || item.meta?.file) as string)"
7170
>
7271
<div i-carbon-script-reference />
7372
</button>
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
import { defineDevToolsAction } from '@vue/devtools-core'
2-
31
export const vueInspectorDetected = ref(false)
4-
export const openInEditor = defineDevToolsAction('devtools:open-in-editor', (devtools, file: string) => {
5-
devtools.api.openInEditor({ file })
6-
})

packages/client/src/composables/state-commands.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { randomStr } from '@vue/devtools-shared'
22
import { CustomCommand } from '@vue/devtools-kit'
33
import { MaybeRefOrGetter } from 'vue'
4-
import { defineDevToolsListener, useDevToolsState } from '@vue/devtools-core'
4+
import { onCustomCommandsUpdated, useDevToolsState } from '@vue/devtools-core'
55

66
export interface CommandItem {
77
id: string
@@ -21,12 +21,6 @@ function uniqueById(items: CommandItem[]): CommandItem[] {
2121
const registeredCommands = reactive(new Map<string, MaybeRefOrGetter<CommandItem[]>>())
2222
let removeCommandsUpdatedListener: (() => void) | null = null
2323

24-
const onCustomCommandsUpdated = defineDevToolsListener<CustomCommand[]>((devtools, callback) => {
25-
devtools.api.on.customCommandsUpdated((payload) => {
26-
callback(payload)
27-
})
28-
})
29-
3024
// @unocss-include
3125
export function useCommands() {
3226
const { enabledFlattenTabs } = useAllTabs()

packages/client/src/composables/state-tab.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { defineDevToolsListener, useDevToolsState } from '@vue/devtools-core'
1+
import { onCustomTabsUpdated, useDevToolsState } from '@vue/devtools-core'
22
import type { MaybeRef } from 'vue'
33
import type { CustomTab } from '@vue/devtools-kit'
44
import { isInElectron } from '@vue/devtools-shared'
@@ -22,11 +22,6 @@ export interface CategorizedCategory {
2222

2323
export type CategorizedTabs = [CategorizedCategory, CategorizedTab[]][]
2424

25-
const onCustomTabsUpdated = defineDevToolsListener<CustomTab[]>((devtools, callback) => {
26-
devtools.api.on.customTabsUpdated((payload) => {
27-
callback(payload)
28-
})
29-
})
3025
let removeTabsUpdatedListener: (() => void) | null = null
3126

3227
export function useAllTabs() {

0 commit comments

Comments
 (0)