Skip to content

Commit

Permalink
feat: setup devtools and remove debug component (#721)
Browse files Browse the repository at this point in the history
  • Loading branch information
meteorlxy committed Jun 9, 2022
1 parent aa65cb5 commit 421f641
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 96 deletions.
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -74,6 +74,7 @@
"@docsearch/css": "^3.0.0",
"@docsearch/js": "^3.0.0",
"@vitejs/plugin-vue": "^2.3.2",
"@vue/devtools-api": "^6.1.4",
"@vueuse/core": "^8.5.0",
"body-scroll-lock": "^4.0.0-beta.0",
"shiki": "^0.10.1",
Expand Down
6 changes: 6 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

86 changes: 0 additions & 86 deletions src/client/app/components/Debug.vue

This file was deleted.

41 changes: 41 additions & 0 deletions src/client/app/devtools.ts
@@ -0,0 +1,41 @@
import { setupDevtoolsPlugin } from '@vue/devtools-api'
import type { App } from 'vue'
import type { Router } from './router'
import type { VitePressData } from './data'

const COMPONENT_STATE_TYPE = 'VitePress'

export const setupDevtools = (
app: App,
router: Router,
data: VitePressData
): void => {
setupDevtoolsPlugin(
{
// fix recursive reference
app: app as any,
id: 'org.vuejs.vitepress',
label: 'VitePress',
packageName: 'vitepress',
homepage: 'https://vitepress.vuejs.org',
componentStateTypes: [COMPONENT_STATE_TYPE]
},
(api) => {
api.on.inspectComponent((payload) => {
payload.instanceData.state.push({
type: COMPONENT_STATE_TYPE,
key: 'route',
value: router.route,
editable: false
})

payload.instanceData.state.push({
type: COMPONENT_STATE_TYPE,
key: 'data',
value: data,
editable: false
})
})
}
)
}
14 changes: 7 additions & 7 deletions src/client/app/index.ts
Expand Up @@ -2,7 +2,6 @@ import {
App,
createApp as createClientApp,
createSSRApp,
defineAsyncComponent,
h,
onMounted,
watch
Expand Down Expand Up @@ -58,12 +57,6 @@ export function createApp() {
// install global components
app.component('Content', Content)
app.component('ClientOnly', ClientOnly)
app.component(
'Debug',
import.meta.env.PROD
? () => null
: defineAsyncComponent(() => import('./components/Debug.vue'))
)

// expose $frontmatter
Object.defineProperty(app.config.globalProperties, '$frontmatter', {
Expand All @@ -80,6 +73,13 @@ export function createApp() {
})
}

// setup devtools in dev mode
if (import.meta.env.DEV || __VUE_PROD_DEVTOOLS__) {
import('./devtools').then(({ setupDevtools }) =>
setupDevtools(app, router, data)
)
}

return { app, router, data }
}

Expand Down
3 changes: 0 additions & 3 deletions src/client/index.ts
Expand Up @@ -24,6 +24,3 @@ export { inBrowser, withBase } from './app/utils'

// components
export { Content } from './app/components/Content'

import _Debug from './app/components/Debug.vue'
export const Debug = _Debug as import('vue').ComponentOptions
1 change: 1 addition & 0 deletions src/client/shim.d.ts
@@ -1,6 +1,7 @@
declare const __VP_HASH_MAP__: Record<string, string>
declare const __ALGOLIA__: boolean
declare const __CARBON__: boolean
declare const __VUE_PROD_DEVTOOLS__: boolean

declare module '*.vue' {
import { ComponentOptions } from 'vue'
Expand Down

0 comments on commit 421f641

Please sign in to comment.