Skip to content

Commit

Permalink
perf(theme): improve types (#244)
Browse files Browse the repository at this point in the history
  • Loading branch information
pengzhanbo authored Oct 1, 2024
1 parent 5d112d0 commit 341267b
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 7 deletions.
4 changes: 2 additions & 2 deletions theme/src/client/composables/data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ type Frontmatter<T extends FrontmatterType = 'page'> = T extends 'home'
export interface Data<T extends FrontmatterType = 'page'> {
theme: ThemeLocaleDataRef<PlumeThemeLocaleData>
page: PageDataRef<PlumeThemePageData>
frontmatter: PageFrontmatterRef<Frontmatter<T>>
frontmatter: PageFrontmatterRef<Frontmatter<T> & Record<string, unknown>>
lang: Ref<string>
site: SiteLocaleDataRef
isDark: Ref<boolean>
Expand All @@ -43,7 +43,7 @@ export interface Data<T extends FrontmatterType = 'page'> {
export function useData<T extends FrontmatterType = 'page'>(): Data<T> {
const theme = useThemeLocaleData()
const page = usePageData<PlumeThemePageData>()
const frontmatter = usePageFrontmatter<Frontmatter<T>>()
const frontmatter = usePageFrontmatter<Frontmatter<T> & Record<string, unknown>>()
const site = useSiteLocaleData()
const isDark = useDarkMode()
const lang = usePageLang()
Expand Down
2 changes: 1 addition & 1 deletion theme/src/node/prepare/prepareBlogData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export async function preparedBlogData(
< getTimestamp(next.frontmatter.createTime as Date || next.date)
? 1
: -1,
) as Page<PlumeThemePageData, PlumeThemePostFrontmatter>[]
) as Page<PlumeThemePageData, PlumeThemePostFrontmatter & Record<string, unknown>>[]

const blogData: PlumeThemeBlogPostData = pages.map((page) => {
const tags = page.frontmatter.tags
Expand Down
3 changes: 2 additions & 1 deletion theme/src/shared/frontmatter/friends.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { SocialLink } from '../base.js'
import type { PlumeNormalFrontmatter } from './normal.js'

export interface FriendsItem {
name: string
Expand All @@ -17,7 +18,7 @@ export interface FriendGroup {
list?: FriendsItem[]
}

export interface PlumeThemeFriendsFrontmatter {
export interface PlumeThemeFriendsFrontmatter extends PlumeNormalFrontmatter {
friends: boolean
title?: string
description?: string
Expand Down
4 changes: 2 additions & 2 deletions theme/src/shared/frontmatter/normal.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { PageFrontmatter } from 'vuepress'

export interface PlumeNormalFrontmatter extends PageFrontmatter {
export type PlumeNormalFrontmatter = PageFrontmatter<{

/**
* @deprecated
Expand Down Expand Up @@ -51,4 +51,4 @@ export interface PlumeNormalFrontmatter extends PageFrontmatter {
* @deprecated 使用 `externalLinkIcon` 代替
*/
externalLink?: boolean
}
}>
2 changes: 1 addition & 1 deletion theme/src/shared/frontmatter/post.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { BlogPostCover } from 'vuepress-theme-plume'
import type { BlogPostCover } from '../blog.js'
import type { PlumeThemePageFrontmatter } from './page.js'

export interface PlumeThemePostFrontmatter extends PlumeThemePageFrontmatter {
Expand Down

0 comments on commit 341267b

Please sign in to comment.