From f2a1a56c7494bf2caf793ce3626a63a39607c91f Mon Sep 17 00:00:00 2001 From: skirtle <65301168+skirtles-code@users.noreply.github.com> Date: Tue, 5 Mar 2024 05:03:53 +0000 Subject: [PATCH] Use isRouteLocation --- packages/router/src/RouterLink.ts | 8 ++++---- packages/router/src/router.ts | 12 +++--------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/packages/router/src/RouterLink.ts b/packages/router/src/RouterLink.ts index 419710a945..d2e66fa28b 100644 --- a/packages/router/src/RouterLink.ts +++ b/packages/router/src/RouterLink.ts @@ -27,6 +27,7 @@ import { ComponentOptionsMixin, } from 'vue' import { + isRouteLocation, RouteLocationRaw, VueUseOptions, RouteLocation, @@ -36,7 +37,7 @@ import { isSameRouteLocationParams, isSameRouteRecord } from './location' import { routerKey, routeLocationKey } from './injectionSymbols' import { RouteRecord } from './matcher/types' import { NavigationFailure } from './errors' -import { isArray, isBrowser, isObject, noop } from './utils' +import { isArray, isBrowser, noop } from './utils' import { warn } from './warning' export interface RouterLinkOptions { @@ -95,7 +96,6 @@ export function useLink(props: UseLinkOptions) { const router = inject(routerKey)! const currentRoute = inject(routeLocationKey)! - const isValidTo = (to: unknown) => typeof to === 'string' || isObject(to) let hasPrevious = false let previousTo: unknown = null @@ -103,7 +103,7 @@ export function useLink(props: UseLinkOptions) { const to = unref(props.to) if (__DEV__ && (!hasPrevious || to !== previousTo)) { - if (!isValidTo(to)) { + if (!isRouteLocation(to)) { if (hasPrevious) { warn( `Invalid value for prop "to" in useLink()\n- to:`, @@ -204,7 +204,7 @@ export function useLink(props: UseLinkOptions) { linkContextDevtools.route = route.value linkContextDevtools.isActive = isActive.value linkContextDevtools.isExactActive = isExactActive.value - linkContextDevtools.error = isValidTo(unref(props.to)) + linkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : 'Invalid "to" value' }, diff --git a/packages/router/src/router.ts b/packages/router/src/router.ts index 4934391611..5f263c6d5b 100644 --- a/packages/router/src/router.ts +++ b/packages/router/src/router.ts @@ -8,6 +8,7 @@ import { RouteLocationNormalizedLoaded, RouteLocation, RouteRecordName, + isRouteLocation, isRouteName, NavigationGuardWithThis, RouteLocationOptions, @@ -32,14 +33,7 @@ import { NavigationRedirectError, isNavigationFailure, } from './errors' -import { - applyToParams, - isBrowser, - assign, - noop, - isArray, - isObject, -} from './utils' +import { applyToParams, isBrowser, assign, noop, isArray } from './utils' import { useCallbacks } from './utils/callbacks' import { encodeParam, decode, encodeHash } from './encoding' import { @@ -467,7 +461,7 @@ export function createRouter(options: RouterOptions): Router { }) } - if (__DEV__ && !isObject(rawLocation)) { + if (__DEV__ && !isRouteLocation(rawLocation)) { warn( `router.resolve() was passed an invalid location. This will fail in production.\n- Location:`, rawLocation