Skip to content

Commit 9891197

Browse files
committed
feat: export defineThemeConfig
1 parent d4b7dfb commit 9891197

File tree

11 files changed

+416
-319
lines changed

11 files changed

+416
-319
lines changed

demo/.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,12 @@ node_modules
1313
*.log
1414

1515
components.d.ts
16+
17+
# valaxy rss
18+
public/feed.xml
19+
20+
# valaxy rss
21+
public/atom.xml
22+
23+
# valaxy rss
24+
public/feed.json

demo/.valaxy/typed-router.d.ts

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
/* eslint-disable */
2+
/* prettier-ignore */
3+
// @ts-nocheck
4+
// Generated by unplugin-vue-router. ‼️ DO NOT MODIFY THIS FILE ‼️
5+
// It's recommended to commit this file.
6+
// Make sure to add this file to your tsconfig.json file as an "includes" or "files" entry.
7+
8+
/// <reference types="unplugin-vue-router/client" />
9+
10+
import type {
11+
// type safe route locations
12+
RouteLocationTypedList,
13+
RouteLocationResolvedTypedList,
14+
RouteLocationNormalizedTypedList,
15+
RouteLocationNormalizedLoadedTypedList,
16+
RouteLocationAsString,
17+
RouteLocationAsRelativeTypedList,
18+
RouteLocationAsPathTypedList,
19+
20+
// helper types
21+
// route definitions
22+
RouteRecordInfo,
23+
ParamValue,
24+
ParamValueOneOrMore,
25+
ParamValueZeroOrMore,
26+
ParamValueZeroOrOne,
27+
28+
// vue-router extensions
29+
_RouterTyped,
30+
RouterLinkTyped,
31+
RouterLinkPropsTyped,
32+
NavigationGuard,
33+
UseLinkFnTyped,
34+
35+
// data fetching
36+
_DataLoader,
37+
_DefineLoaderOptions,
38+
} from 'unplugin-vue-router/types'
39+
40+
declare module 'vue-router/auto/routes' {
41+
export interface RouteNamedMap {
42+
'/': RouteRecordInfo<'/', '/', Record<never, never>, Record<never, never>>,
43+
'/[...path]': RouteRecordInfo<'/[...path]', '/:path(.*)', { path: ParamValue<true> }, { path: ParamValue<false> }>,
44+
'/about': RouteRecordInfo<'/about', '/about', Record<never, never>, Record<never, never>>,
45+
'/archives/': RouteRecordInfo<'/archives/', '/archives', Record<never, never>, Record<never, never>>,
46+
'/categories/': RouteRecordInfo<'/categories/', '/categories', Record<never, never>, Record<never, never>>,
47+
'/notes/': RouteRecordInfo<'/notes/', '/notes', Record<never, never>, Record<never, never>>,
48+
'/posts/draft': RouteRecordInfo<'/posts/draft', '/posts/draft', Record<never, never>, Record<never, never>>,
49+
'/posts/hello-valaxy': RouteRecordInfo<'/posts/hello-valaxy', '/posts/hello-valaxy', Record<never, never>, Record<never, never>>,
50+
'/posts/i18n': RouteRecordInfo<'/posts/i18n', '/posts/i18n', Record<never, never>, Record<never, never>>,
51+
'/posts/test': RouteRecordInfo<'/posts/test', '/posts/test', Record<never, never>, Record<never, never>>,
52+
'/projects/': RouteRecordInfo<'/projects/', '/projects', Record<never, never>, Record<never, never>>,
53+
'/tags/': RouteRecordInfo<'/tags/', '/tags', Record<never, never>, Record<never, never>>,
54+
}
55+
}
56+
57+
declare module 'vue-router/auto' {
58+
import type { RouteNamedMap } from 'vue-router/auto/routes'
59+
60+
export type RouterTyped = _RouterTyped<RouteNamedMap>
61+
62+
/**
63+
* Type safe version of `RouteLocationNormalized` (the type of `to` and `from` in navigation guards).
64+
* Allows passing the name of the route to be passed as a generic.
65+
*/
66+
export type RouteLocationNormalized<Name extends keyof RouteNamedMap = keyof RouteNamedMap> = RouteLocationNormalizedTypedList<RouteNamedMap>[Name]
67+
68+
/**
69+
* Type safe version of `RouteLocationNormalizedLoaded` (the return type of `useRoute()`).
70+
* Allows passing the name of the route to be passed as a generic.
71+
*/
72+
export type RouteLocationNormalizedLoaded<Name extends keyof RouteNamedMap = keyof RouteNamedMap> = RouteLocationNormalizedLoadedTypedList<RouteNamedMap>[Name]
73+
74+
/**
75+
* Type safe version of `RouteLocationResolved` (the returned route of `router.resolve()`).
76+
* Allows passing the name of the route to be passed as a generic.
77+
*/
78+
export type RouteLocationResolved<Name extends keyof RouteNamedMap = keyof RouteNamedMap> = RouteLocationResolvedTypedList<RouteNamedMap>[Name]
79+
80+
/**
81+
* Type safe version of `RouteLocation` . Allows passing the name of the route to be passed as a generic.
82+
*/
83+
export type RouteLocation<Name extends keyof RouteNamedMap = keyof RouteNamedMap> = RouteLocationTypedList<RouteNamedMap>[Name]
84+
85+
/**
86+
* Type safe version of `RouteLocationRaw` . Allows passing the name of the route to be passed as a generic.
87+
*/
88+
export type RouteLocationRaw<Name extends keyof RouteNamedMap = keyof RouteNamedMap> =
89+
| RouteLocationAsString<RouteNamedMap>
90+
| RouteLocationAsRelativeTypedList<RouteNamedMap>[Name]
91+
| RouteLocationAsPathTypedList<RouteNamedMap>[Name]
92+
93+
/**
94+
* Generate a type safe params for a route location. Requires the name of the route to be passed as a generic.
95+
*/
96+
export type RouteParams<Name extends keyof RouteNamedMap> = RouteNamedMap[Name]['params']
97+
/**
98+
* Generate a type safe raw params for a route location. Requires the name of the route to be passed as a generic.
99+
*/
100+
export type RouteParamsRaw<Name extends keyof RouteNamedMap> = RouteNamedMap[Name]['paramsRaw']
101+
102+
export function useRouter(): RouterTyped
103+
export function useRoute<Name extends keyof RouteNamedMap = keyof RouteNamedMap>(name?: Name): RouteLocationNormalizedLoadedTypedList<RouteNamedMap>[Name]
104+
105+
export const useLink: UseLinkFnTyped<RouteNamedMap>
106+
107+
export function onBeforeRouteLeave(guard: NavigationGuard<RouteNamedMap>): void
108+
export function onBeforeRouteUpdate(guard: NavigationGuard<RouteNamedMap>): void
109+
110+
export const RouterLink: RouterLinkTyped<RouteNamedMap>
111+
export const RouterLinkProps: RouterLinkPropsTyped<RouteNamedMap>
112+
113+
// Experimental Data Fetching
114+
115+
export function defineLoader<
116+
P extends Promise<any>,
117+
Name extends keyof RouteNamedMap = keyof RouteNamedMap,
118+
isLazy extends boolean = false,
119+
>(
120+
name: Name,
121+
loader: (route: RouteLocationNormalizedLoaded<Name>) => P,
122+
options?: _DefineLoaderOptions<isLazy>,
123+
): _DataLoader<Awaited<P>, isLazy>
124+
export function defineLoader<
125+
P extends Promise<any>,
126+
isLazy extends boolean = false,
127+
>(
128+
loader: (route: RouteLocationNormalizedLoaded) => P,
129+
options?: _DefineLoaderOptions<isLazy>,
130+
): _DataLoader<Awaited<P>, isLazy>
131+
132+
export {
133+
_definePage as definePage,
134+
_HasDataLoaderMeta as HasDataLoaderMeta,
135+
_setupDataFetchingGuard as setupDataFetchingGuard,
136+
_stopDataFetchingScope as stopDataFetchingScope,
137+
} from 'unplugin-vue-router/runtime'
138+
}
139+
140+
declare module 'vue-router' {
141+
import type { RouteNamedMap } from 'vue-router/auto/routes'
142+
143+
export interface TypesConfig {
144+
beforeRouteUpdate: NavigationGuard<RouteNamedMap>
145+
beforeRouteLeave: NavigationGuard<RouteNamedMap>
146+
147+
$route: RouteLocationNormalizedLoadedTypedList<RouteNamedMap>[keyof RouteNamedMap]
148+
$router: _RouterTyped<RouteNamedMap>
149+
150+
RouterLink: RouterLinkTyped<RouteNamedMap>
151+
}
152+
}

demo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"serve": "vite preview"
1111
},
1212
"dependencies": {
13-
"valaxy": "^0.17.2",
13+
"valaxy": "^0.17.3",
1414
"valaxy-theme-gitlink": "link:../valaxy-theme-yun"
1515
},
1616
"devDependencies": {

demo/valaxy.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default defineConfig<ThemeConfig>({
1313
author: {
1414
avatar: 'https://www.yunyoujun.cn/images/avatar.jpg',
1515
name: '云游君',
16-
intro: '希望能成为一个有趣的人。 希望能创造出可以成为他人回忆的事物。',
16+
// intro: '希望能成为一个有趣的人。 希望能创造出可以成为他人回忆的事物。',
1717
},
1818
description: 'Valaxy Theme Gitlink Preview.',
1919
social: [

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"type": "module",
33
"private": true,
4-
"packageManager": "pnpm@8.14.3",
4+
"packageManager": "pnpm@8.15.0",
55
"homepage": "https://valaxy.site",
66
"scripts": {
77
"build": "npm run build:demo",
@@ -18,7 +18,7 @@
1818
"bumpp": "^9.3.0",
1919
"eslint": "^8.56.0",
2020
"typescript": "^5.3.3",
21-
"valaxy": "^0.17.2",
21+
"valaxy": "^0.17.3",
2222
"valaxy-theme-gitlink": "workspace:*",
2323
"vue-tsc": "^1.8.27"
2424
}

0 commit comments

Comments
 (0)