From 5c1b6c3078984d9c83c5de1344b18beb891d0fbb Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Wed, 12 Jun 2024 16:31:53 +0200 Subject: [PATCH] fix(types): use native vue-router types BREAKING CHANGE: TODO: write changelog once the changes are confirmed --- client.d.ts | 73 +------- examples/nuxt/pages/users/[id].vue | 2 +- package.json | 2 +- playground/env.d.ts | 21 +-- playground/package.json | 6 +- playground/src/App.vue | 7 +- playground/src/pages/[...path]+.vue | 18 ++ playground/src/pages/[...path].vue | 4 +- playground/src/pages/users/[id].vue | 6 +- playground/src/router.ts | 15 +- playground/tsconfig.json | 3 - playground/typed-router.d.ts | 18 +- pnpm-lock.yaml | 23 ++- src/codegen/generateDTS.ts | 17 +- src/codegen/generateRouteMap.spec.ts | 1 - src/codegen/generateRouteMap.ts | 33 ---- src/codegen/vueRouterModule.ts | 4 +- src/core/definePage.ts | 7 +- src/data-loaders/createDataLoader.ts | 5 +- src/data-loaders/defineColadaLoader.spec.ts | 2 +- src/data-loaders/defineColadaLoader.ts | 31 ++-- src/data-loaders/defineLoader.spec.ts | 7 +- src/data-loaders/defineLoader.ts | 21 ++- src/data-loaders/defineQueryLoader.spec.ts | 1 + src/data-loaders/defineQueryLoader.ts | 1 + src/data-loaders/defineVueFireLoader.ts | 1 + src/data-loaders/meta-extensions.spec.ts | 87 --------- src/data-loaders/meta-extensions.test-d.ts | 83 +++++++++ src/data-loaders/navigation-guard.spec.ts | 4 +- src/data-loaders/navigation-guard.ts | 196 ++++++++++---------- src/data-loaders/utils.ts | 5 +- src/type-extensions/RouterLink.ts | 86 --------- src/type-extensions/RouterTyped.test-d.ts | 9 +- src/type-extensions/navigationGuards.ts | 111 ----------- src/type-extensions/routeLocation.test-d.ts | 5 +- src/type-extensions/routeLocation.ts | 165 ---------------- src/type-extensions/router.ts | 167 ----------------- src/type-extensions/types-config.ts | 16 -- src/types.ts | 63 ------- tests/data-loaders/tester.ts | 74 ++++---- tests/utils.ts | 5 - tests/vitest-mock-warn.ts | 10 +- vitest.config.ts | 1 - 43 files changed, 355 insertions(+), 1061 deletions(-) create mode 100644 playground/src/pages/[...path]+.vue delete mode 100644 src/data-loaders/meta-extensions.spec.ts create mode 100644 src/data-loaders/meta-extensions.test-d.ts delete mode 100644 src/type-extensions/RouterLink.ts delete mode 100644 src/type-extensions/navigationGuards.ts delete mode 100644 src/type-extensions/routeLocation.ts delete mode 100644 src/type-extensions/router.ts delete mode 100644 src/type-extensions/types-config.ts diff --git a/client.d.ts b/client.d.ts index f0b172001..107591b74 100644 --- a/client.d.ts +++ b/client.d.ts @@ -7,86 +7,19 @@ declare module 'vue-router/auto-routes' { export const routes: RouteRecordRaw[] } -declare module 'unplugin-vue-router/types' { - import type { RouteNamedMap } from 'vue-router/auto-routes' - export interface TypesConfig { - RouteNamedMap: RouteNamedMap - } -} - declare module 'vue-router' { - import type { - NavigationGuardTyped, - NavigationGuardWithThisTyped, - RouteLocationNormalizedLoadedTypedList, - _RouterTyped, - RouterLinkTyped, - } from 'unplugin-vue-router/types' - import type { RouteNamedMap } from 'vue-router/auto-routes' - export interface TypesConfig { - beforeRouteEnter: NavigationGuardWithThisTyped - beforeRouteUpdate: NavigationGuardTyped - beforeRouteLeave: NavigationGuardTyped - $route: RouteLocationNormalizedLoadedTypedList[keyof RouteNamedMap] - $router: _RouterTyped - - RouterLink: RouterLinkTyped + export interface TypesConfig { + RouteNamedMap: RouteNamedMap } } declare module 'vue-router/auto' { - import type { RouteNamedMap } from 'vue-router/auto-routes' - import type { - _RouterTyped, - _RouterOptions, - RouteLocationNormalizedLoadedTypedList, - NavigationGuardTyped, - RouterLinkPropsTyped, - RouterLinkTyped, - UseLinkFnTyped, - } from 'unplugin-vue-router/types' - // reexport all types that are not augmented by unplugin-vue-router export * from 'vue-router' - // Augmented types to override the ones exported by vue-router - export type { - Router, - RouteLocationNormalized, - RouteRecordName, - RouteLocationNormalizedLoaded, - RouteLocation, - RouteLocationAsRelativePath, - RouteLocationRaw, - RouteLocationResolved, - RouteParams, - RouteParamsRaw, - NavigationGuard, - NavigationGuardWithThis, - } from 'unplugin-vue-router/types' - - /** - * @deprecated use `Router` instead. This type will be a different one in the next major version. - */ - export type RouterTyped = _RouterTyped - export function useRouter(): _RouterTyped - export function useRoute< - Name extends keyof RouteNamedMap = keyof RouteNamedMap, - >(name?: Name): RouteLocationNormalizedLoadedTypedList[Name] - export const useLink: UseLinkFnTyped - export function onBeforeRouteLeave( - guard: NavigationGuardTyped - ): void - export function onBeforeRouteUpdate( - guard: NavigationGuardTyped - ): void - export const RouterLink: RouterLinkTyped - export const RouterLinkProps: RouterLinkPropsTyped - export function createRouter( - options: _RouterOptions - ): _RouterTyped + // TODO: deprecate vue-router/auto export { // Experimental Data Fetching definePage, diff --git a/examples/nuxt/pages/users/[id].vue b/examples/nuxt/pages/users/[id].vue index 474a61ee0..9f81cce44 100644 --- a/examples/nuxt/pages/users/[id].vue +++ b/examples/nuxt/pages/users/[id].vue @@ -1,5 +1,5 @@ + + + + +{ + "props": true +} + diff --git a/playground/src/pages/[...path].vue b/playground/src/pages/[...path].vue index 0f60689a4..e8bf8e24e 100644 --- a/playground/src/pages/[...path].vue +++ b/playground/src/pages/[...path].vue @@ -1,7 +1,9 @@ diff --git a/playground/src/pages/users/[id].vue b/playground/src/pages/users/[id].vue index 2fb0fcc41..8e362643c 100644 --- a/playground/src/pages/users/[id].vue +++ b/playground/src/pages/users/[id].vue @@ -1,5 +1,6 @@