File tree 4 files changed +13
-13
lines changed
4 files changed +13
-13
lines changed Original file line number Diff line number Diff line change @@ -38,7 +38,7 @@ A VitePress custom theme is simply an object containing four properties and is d
38
38
interface Theme {
39
39
Layout: Component // Vue 3 component
40
40
NotFound? : Component
41
- enhanceApp? : (ctx : EnhanceAppContext ) => void
41
+ enhanceApp? : (ctx : EnhanceAppContext ) => Awaitable < void >
42
42
setup? : () => void
43
43
}
44
44
Original file line number Diff line number Diff line change @@ -52,7 +52,7 @@ const VitePressApp = defineComponent({
52
52
}
53
53
} )
54
54
55
- export function createApp ( ) {
55
+ export async function createApp ( ) {
56
56
const router = newRouter ( )
57
57
58
58
const app = newApp ( )
@@ -77,7 +77,7 @@ export function createApp() {
77
77
} )
78
78
79
79
if ( Theme . enhanceApp ) {
80
- Theme . enhanceApp ( {
80
+ await Theme . enhanceApp ( {
81
81
app,
82
82
router,
83
83
siteData : siteDataRef
@@ -127,12 +127,12 @@ function newRouter(): Router {
127
127
}
128
128
129
129
if ( inBrowser ) {
130
- const { app, router, data } = createApp ( )
131
-
132
- // wait until page component is fetched before mounting
133
- router . go ( ) . then ( ( ) => {
134
- // dynamically update head tags
135
- useUpdateHead ( router . route , data . site )
136
- app . mount ( '#app' )
130
+ createApp ( ) . then ( ( { app, router, data } ) => {
131
+ // wait until page component is fetched before mounting
132
+ router . go ( ) . then ( ( ) => {
133
+ // dynamically update head tags
134
+ useUpdateHead ( router . route , data . site )
135
+ app . mount ( '#app' )
136
+ } )
137
137
} )
138
138
}
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ import { createApp } from './index.js'
3
3
import { renderToString } from 'vue/server-renderer'
4
4
5
5
export async function render ( path : string ) {
6
- const { app, router } = createApp ( )
6
+ const { app, router } = await createApp ( )
7
7
await router . go ( path )
8
8
return renderToString ( app )
9
9
}
Original file line number Diff line number Diff line change 1
1
import type { App , Ref , Component } from 'vue'
2
2
import type { Router } from './router.js'
3
- import type { SiteData } from '../shared.js'
3
+ import type { Awaitable , SiteData } from '../shared.js'
4
4
5
5
export interface EnhanceAppContext {
6
6
app : App
@@ -11,6 +11,6 @@ export interface EnhanceAppContext {
11
11
export interface Theme {
12
12
Layout : Component
13
13
NotFound ?: Component
14
- enhanceApp ?: ( ctx : EnhanceAppContext ) => void
14
+ enhanceApp ?: ( ctx : EnhanceAppContext ) => Awaitable < void >
15
15
setup ?: ( ) => void
16
16
}
You can’t perform that action at this time.
0 commit comments