Skip to content

Commit

Permalink
refactor: improve site data parsing (#780)
Browse files Browse the repository at this point in the history
  • Loading branch information
meteorlxy authored Jun 16, 2022
1 parent 7b76bc2 commit 48fae52
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
13 changes: 5 additions & 8 deletions src/client/app/data.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { InjectionKey, Ref, shallowRef, readonly, computed, inject } from 'vue'
import { Route } from './router'
import serializedSiteData from '@siteData'
import siteData from '@siteData'
import {
PageData,
SiteData,
Expand All @@ -25,17 +25,14 @@ export interface VitePressData<T = any> {
// site data is a singleton
export type SiteDataRef<T = any> = Ref<SiteData<T>>

export const siteDataRef: Ref<SiteData> = shallowRef(parse(serializedSiteData))

function parse(data: string): SiteData {
const parsed = JSON.parse(data)
return (import.meta.env.DEV ? readonly(parsed) : parsed) as SiteData
}
export const siteDataRef: Ref<SiteData> = shallowRef(
import.meta.env.PROD ? siteData : readonly(siteData)
)

// hmr
if (import.meta.hot) {
import.meta.hot!.accept('/@siteData', (m) => {
siteDataRef.value = parse(m.default)
siteDataRef.value = m.default
})
}

Expand Down
3 changes: 2 additions & 1 deletion src/client/shim.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ declare module '*.vue' {
}

declare module '@siteData' {
const data: string
import type { SiteData } from './shared'
const data: SiteData
export default data
}

Expand Down
4 changes: 3 additions & 1 deletion src/node/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,9 @@ export async function createVitePressPlugin(
if (config.command === 'build') {
data = { ...siteData, head: [] }
}
return `export default ${JSON.stringify(JSON.stringify(data))}`
return `export default JSON.parse(${JSON.stringify(
JSON.stringify(data)
)})`
}
},

Expand Down

0 comments on commit 48fae52

Please sign in to comment.