Skip to content

Commit d80a23c

Browse files
committed
refactor: import from data-loaders instead of runtime
1 parent 559f751 commit d80a23c

18 files changed

+84
-80
lines changed

client.d.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,21 @@ declare module 'vue-router' {
3333
}
3434
}
3535

36+
// FIXME: remove vue-router/auto in next major
37+
38+
/**
39+
* @deprecated Directly import from 'vue-router' instead
40+
*/
3641
declare module 'vue-router/auto' {
3742
// reexport all types that are not augmented by unplugin-vue-router
3843
export * from 'vue-router'
3944

40-
// TODO: deprecate vue-router/auto
45+
export { definePage } from 'unplugin-vue-router/runtime'
46+
// Experimental Data Fetching
4147
export {
42-
// Experimental Data Fetching
43-
definePage,
4448
DataLoaderPlugin,
4549
NavigationResult,
46-
} from 'unplugin-vue-router/runtime'
50+
} from 'unplugin-vue-router/data-loaders'
4751
// must be added to the virtual vue-router/auto
4852
// FIXME: is there a way to achieve this without losing the types?
4953
// export { defineBasicLoader } from 'unplugin-vue-router/data-loaders/basic'

examples/nuxt/nuxt.config.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ export default defineNuxtConfig({
44
shim: false,
55
},
66

7-
build: { transpile: [/unplugin-vue-router\/runtime/] },
7+
build: {
8+
transpile: [/unplugin-vue-router\/runtime/],
9+
},
810

911
app: {
1012
pageTransition: false,

examples/nuxt/plugins/vueRouter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { DataLoaderPlugin } from 'unplugin-vue-router/runtime'
1+
import { DataLoaderPlugin } from 'unplugin-vue-router/data-loaders'
22

33
export default defineNuxtPlugin((nuxtApp) => {
44
// TODO:

src/data-loaders/defineColadaLoader.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
getCurrentContext,
1919
setCurrentContext,
2020
UseDataLoader,
21-
} from 'unplugin-vue-router/runtime'
21+
} from 'unplugin-vue-router/data-loaders'
2222
import { testDefineLoader } from '../../tests/data-loaders'
2323
import { getRouter } from 'vue-router-mock'
2424
import { enableAutoUnmount, mount } from '@vue/test-utils'

src/data-loaders/defineColadaLoader.ts

+9-11
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,15 @@ import {
66
type RouteLocationNormalizedLoaded,
77
type Router,
88
} from 'vue-router'
9-
import type {
10-
DataLoaderContextBase,
11-
DataLoaderEntryBase,
12-
DefineDataLoaderOptionsBase,
13-
DefineLoaderFn,
14-
UseDataLoader,
15-
UseDataLoaderResult,
16-
_DefineLoaderEntryMap,
17-
_PromiseMerged,
18-
} from 'unplugin-vue-router/runtime'
199
import {
10+
type DataLoaderContextBase,
11+
type DataLoaderEntryBase,
12+
type DefineDataLoaderOptionsBase,
13+
type DefineLoaderFn,
14+
type UseDataLoader,
15+
type UseDataLoaderResult,
16+
type _DefineLoaderEntryMap,
17+
type _PromiseMerged,
2018
ABORT_CONTROLLER_KEY,
2119
APP_KEY,
2220
IS_USE_DATA_LOADER_KEY,
@@ -31,7 +29,7 @@ import {
3129
setCurrentContext,
3230
trackRoute,
3331
IS_SSR_KEY,
34-
} from 'unplugin-vue-router/runtime'
32+
} from 'unplugin-vue-router/data-loaders'
3533
import {} from './utils'
3634
import { type ShallowRef, shallowRef, watch } from 'vue'
3735
import {

src/data-loaders/defineLoader.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ import {
2323
NavigationResult,
2424
UseDataLoader,
2525
setCurrentContext,
26-
} from 'unplugin-vue-router/runtime'
26+
} from 'unplugin-vue-router/data-loaders'
2727
import { testDefineLoader } from '../../tests/data-loaders'
2828
import { getRouter } from 'vue-router-mock'
2929
import { enableAutoUnmount, mount } from '@vue/test-utils'
3030
import RouterViewMock from '../../tests/data-loaders/RouterViewMock.vue'
3131
import { mockPromise } from '../../tests/utils'
32-
import { RouteLocationNormalizedLoaded } from 'vue-router'
32+
import { type RouteLocationNormalizedLoaded } from 'vue-router'
3333

3434
function mockedLoader<T = string | NavigationResult>(
3535
// boolean is easier to handle for router mock

src/data-loaders/defineLoader.test-d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { describe, it, expectTypeOf } from 'vitest'
22
import { defineBasicLoader } from './defineLoader'
33
import { Ref } from 'vue'
4-
import { NavigationResult } from 'unplugin-vue-router/runtime'
4+
import { NavigationResult } from 'unplugin-vue-router/data-loaders'
55

66
describe('defineBasicLoader', () => {
77
interface UserData {

src/data-loaders/defineLoader.ts

+7-9
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@ import {
55
useRouter,
66
type Router,
77
} from 'vue-router'
8-
import type {
9-
DataLoaderContextBase,
10-
DataLoaderEntryBase,
11-
DefineDataLoaderOptionsBase,
12-
DefineLoaderFn,
13-
UseDataLoader,
14-
UseDataLoaderResult,
15-
} from 'unplugin-vue-router/runtime'
168
import {
9+
type DataLoaderContextBase,
10+
type DataLoaderEntryBase,
11+
type DefineDataLoaderOptionsBase,
12+
type DefineLoaderFn,
13+
type UseDataLoader,
14+
type UseDataLoaderResult,
1715
ABORT_CONTROLLER_KEY,
1816
APP_KEY,
1917
IS_USE_DATA_LOADER_KEY,
@@ -25,7 +23,7 @@ import {
2523
getCurrentContext,
2624
setCurrentContext,
2725
IS_SSR_KEY,
28-
} from 'unplugin-vue-router/runtime'
26+
} from 'unplugin-vue-router/data-loaders'
2927

3028
import { shallowRef } from 'vue'
3129
import { toLazyValue } from './createDataLoader'

src/data-loaders/defineQueryLoader.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest'
99
import {
1010
NavigationResult,
1111
setCurrentContext,
12-
} from 'unplugin-vue-router/runtime'
12+
} from 'unplugin-vue-router/data-loaders'
1313
import { testDefineLoader } from '../../tests/data-loaders'
1414
import { enableAutoUnmount } from '@vue/test-utils'
1515

src/data-loaders/defineVueFireLoader.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
IS_USE_DATA_LOADER_KEY,
2121
LOADER_ENTRIES_KEY,
2222
STAGED_NO_VALUE,
23-
} from 'unplugin-vue-router/runtime'
23+
} from 'unplugin-vue-router/data-loaders'
2424
import { Ref, UnwrapRef, ref, shallowRef } from 'vue'
2525

2626
export function defineVueFireLoader<

src/data-loaders/entries/index.ts

+27-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,31 @@
1-
export {
2-
DataLoaderPlugin,
3-
NavigationResult,
4-
withLoaderContext,
5-
} from 'unplugin-vue-router/runtime'
1+
export type {
2+
UseDataLoader,
3+
UseDataLoaderInternals,
4+
UseDataLoaderResult,
5+
DataLoaderContextBase,
6+
DataLoaderEntryBase,
7+
DefineDataLoaderOptionsBase,
8+
DefineLoaderFn,
9+
} from '../createDataLoader'
10+
11+
// new data fetching
12+
export { DataLoaderPlugin, NavigationResult } from '../navigation-guard'
613
export type {
714
DataLoaderPluginOptions,
815
SetupLoaderGuardOptions,
916
_DataLoaderRedirectResult,
10-
} from 'unplugin-vue-router/runtime'
17+
} from '../navigation-guard'
18+
19+
export {
20+
getCurrentContext,
21+
setCurrentContext,
22+
type _PromiseMerged,
23+
assign,
24+
isSubsetOf,
25+
trackRoute,
26+
withLoaderContext,
27+
currentContext,
28+
} from '../utils'
29+
30+
// expose all symbols that could be use by loaders
31+
export * from '../meta-extensions'

src/data-loaders/index.ts

-34
This file was deleted.

src/data-loaders/meta-extensions.ts

+8
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,16 @@ declare module 'vue-router' {
4242
*/
4343
[PENDING_LOCATION_KEY]: RouteLocationNormalizedLoaded | null
4444

45+
/**
46+
* The app instance that is used by the router.
47+
* @internal
48+
*/
4549
[APP_KEY]: App<unknown>
4650

51+
/**
52+
* Whether the router is running in server-side rendering mode.
53+
* @internal
54+
*/
4755
[IS_SSR_KEY]: boolean
4856
}
4957

src/data-loaders/navigation-guard.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
DataLoaderPlugin,
2121
NavigationResult,
2222
DataLoaderPluginOptions,
23-
} from 'unplugin-vue-router/runtime'
23+
} from 'unplugin-vue-router/data-loaders'
2424
import { mockPromise } from '../../tests/utils'
2525
import {
2626
useDataOne,

src/runtime.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { RouteRecordRaw } from 'vue-router'
22

33
// new data fetching
4-
export * from './data-loaders'
4+
export * from './data-loaders/entries/index'
55

66
// NOTE: for tests only
77
// export * from './data-loaders/defineQueryLoader'

tests/data-loaders/tester.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ import {
1313
type DataLoaderContextBase,
1414
type DefineDataLoaderOptionsBase,
1515
type UseDataLoader,
16-
// TODO: move to /data-loaders
17-
} from 'unplugin-vue-router/runtime'
16+
} from 'unplugin-vue-router/data-loaders'
1817
import { mockPromise } from '../utils'
1918
import RouterViewMock from '../data-loaders/RouterViewMock.vue'
2019
import ComponentWithNestedLoader from '../data-loaders/ComponentWithNestedLoader.vue'

tsconfig.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@
5151
"unplugin-vue-router/runtime": [
5252
"./src/runtime.ts"
5353
],
54-
// "unplugin-vue-router/data-loaders": [
55-
// "./src/data-loaders/entries/index.ts"
56-
// ]
54+
"unplugin-vue-router/data-loaders": [
55+
"./src/data-loaders/entries/index.ts"
56+
]
5757
},
5858
"types": [
5959
"node",

vitest.config.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,15 @@ export default defineConfig({
88
alias: [
99
{
1010
find: 'unplugin-vue-router/runtime',
11-
replacement: fileURLToPath(new URL('src/runtime.ts', import.meta.url)),
11+
replacement: fileURLToPath(
12+
new URL('./src/runtime.ts', import.meta.url)
13+
),
14+
},
15+
{
16+
find: 'unplugin-vue-router/data-loaders',
17+
replacement: fileURLToPath(
18+
new URL('./src/data-loaders/entries/index.ts', import.meta.url)
19+
),
1220
},
1321
],
1422
},

0 commit comments

Comments
 (0)