8000 feat(client): provide client data aliases and utils (#1645) · vuepress/core@7a43fae · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Commit 7a43fae

Browse files
authored
feat(client): provide client data aliases and utils (#1645)
1 parent 949fc61 commit 7a43fae

File tree

4 files changed

+48
-5
lines changed

4 files changed

+48
-5
lines changed

packages/client/src/composables/clientDataUtils.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,12 @@ export const useSiteData = (): SiteDataRef => useClientData().siteData
4646

4747
export const useSiteLocaleData = (): SiteLocaleDataRef =>
4848
useClientData().siteLocaleData
49+
50+
/* Aliases */
51+
export const useData = useClientData
52+
export const useFrontmatter = usePageFrontmatter
53+
export const useHead = usePageHead
54+
export const useLang = usePageLang
55+
export const usePage = usePageData
56+
export const useSite = useSiteData
57+
export const useSiteLocale = useSiteLocaleData

packages/client/src/setupGlobalComputed.ts

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,35 +103,60 @@ export const setupGlobalComputed = (
103103
routes,
104104
siteData,
105105
siteLocaleData,
106+
107+
/* Aliases */
108+
frontmatter: pageFrontmatter,
109+
head: pageHead,
110+
headTitle: pageHeadTitle,
111+
lang: pageLang,
112+
page: pageData,
113+
site: siteData,
114+
siteLocale: siteLocaleData,
106115
}
107116
app.provide(clientDataSymbol, clientData)
108117

109118
// provide global helpers
110119
Object.defineProperties(app.config.globalProperties, {
120+
$pageFrontmatter: { get: () => pageFrontmatter.value },
121+
$pageHead: { get: () => pageHead.value },
122+
$pageHeadTitle: { get: () => pageHeadTitle.value },
123+
$pageLang: { get: () => pageLang.value },
124+
$pageData: { get: () => pageData.value },
125+
$routeLocale: { get: () => routeLocale.value },
126+
$withBase: { get: () => withBase },
127+
128+
/* Aliases */
111129
$frontmatter: { get: () => pageFrontmatter.value },
112130
$head: { get: () => pageHead.value },
113131
$headTitle: { get: () => pageHeadTitle.value },
114132
$lang: { get: () => pageLang.value },
115133
$page: { get: () => pageData.value },
116-
$routeLocale: { get: () => routeLocale.value },
117134
$site: { get: () => siteData.value },
118135
$siteLocale: { get: () => siteLocaleData.value },
119-
$withBase: { get: () => withBase },
120136
})
121137

122138
return clientData
123139
}
124140

125141
declare module 'vue' {
126142
export interface ComponentCustomProperties {
143+
$pageFrontmatter: PageFrontmatter
144+
$pageHead: PageHead
145+
$pageHeadTitle: PageHeadTitle
146+
$pageLang: PageLang
147+
$pageData: PageData
148+
$routeLocale: RouteLocale
149+
$siteData: SiteData
150+
$siteLocaleData: SiteLocaleData
151+
$withBase: typeof withBase
152+
153+
/* Aliases */
127154
$frontmatter: PageFrontmatter
128155
$head: PageHead
129156
$headTitle: PageHeadTitle
130157
$lang: PageLang
131158
$page: PageData
132-
$routeLocale: RouteLocale
133159
$site: SiteData
134160
$siteLocale: SiteLocaleData
135-
$withBase: typeof withBase
136161
}
137162
}

packages/client/src/types/clientData.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,13 @@ export interface ClientData<
7272
routes: RoutesRef
7373
siteData: SiteDataRef
7474
siteLocaleData: SiteLocaleDataRef
75+
76+
/* Aliases */
77+
frontmatter: PageFrontmatterRef<Frontmatter>
78+
head: PageHeadRef
79+
headTitle: PageHeadTitleRef
80+
lang: PageLangRef
81+
page: PageDataRef<Data>
82+
site: SiteDataRef
83+
siteLocale: SiteLocaleDataRef
7584
}

packages/client/src/types/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export type * from './clientConfig.js'
22
export type * from './clientData.js'
3-
export type * from './onContentUpdated.js'
43
export type * from './createVueAppFunction.js'
4+
export type * from './onContentUpdated.js'
55
export type * from './routes.js'

0 commit comments

Comments
 (0)
0