Skip to content

Commit f2a1a56

Browse files
committed
Use isRouteLocation
1 parent 0598e88 commit f2a1a56

File tree

2 files changed

+7
-13
lines changed

2 files changed

+7
-13
lines changed

packages/router/src/RouterLink.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
ComponentOptionsMixin,
2828
} from 'vue'
2929
import {
30+
isRouteLocation,
3031
RouteLocationRaw,
3132
VueUseOptions,
3233
RouteLocation,
@@ -36,7 +37,7 @@ import { isSameRouteLocationParams, isSameRouteRecord } from './location'
3637
import { routerKey, routeLocationKey } from './injectionSymbols'
3738
import { RouteRecord } from './matcher/types'
3839
import { NavigationFailure } from './errors'
39-
import { isArray, isBrowser, isObject, noop } from './utils'
40+
import { isArray, isBrowser, noop } from './utils'
4041
import { warn } from './warning'
4142

4243
export interface RouterLinkOptions {
@@ -95,15 +96,14 @@ export function useLink(props: UseLinkOptions) {
9596
const router = inject(routerKey)!
9697
const currentRoute = inject(routeLocationKey)!
9798

98-
const isValidTo = (to: unknown) => typeof to === 'string' || isObject(to)
9999
let hasPrevious = false
100100
let previousTo: unknown = null
101101

102102
const route = computed(() => {
103103
const to = unref(props.to)
104104

105105
if (__DEV__ && (!hasPrevious || to !== previousTo)) {
106-
if (!isValidTo(to)) {
106+
if (!isRouteLocation(to)) {
107107
if (hasPrevious) {
108108
warn(
109109
`Invalid value for prop "to" in useLink()\n- to:`,
@@ -204,7 +204,7 @@ export function useLink(props: UseLinkOptions) {
204204
linkContextDevtools.route = route.value
205205
linkContextDevtools.isActive = isActive.value
206206
linkContextDevtools.isExactActive = isExactActive.value
207-
linkContextDevtools.error = isValidTo(unref(props.to))
207+
linkContextDevtools.error = isRouteLocation(unref(props.to))
208208
? null
209209
: 'Invalid "to" value'
210210
},

packages/router/src/router.ts

+3-9
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
RouteLocationNormalizedLoaded,
99
RouteLocation,
1010
RouteRecordName,
11+
isRouteLocation,
1112
isRouteName,
1213
NavigationGuardWithThis,
1314
RouteLocationOptions,
@@ -32,14 +33,7 @@ import {
3233
NavigationRedirectError,
3334
isNavigationFailure,
3435
} from './errors'
35-
import {
36-
applyToParams,
37-
isBrowser,
38-
assign,
39-
noop,
40-
isArray,
41-
isObject,
42-
} from './utils'
36+
import { applyToParams, isBrowser, assign, noop, isArray } from './utils'
4337
import { useCallbacks } from './utils/callbacks'
4438
import { encodeParam, decode, encodeHash } from './encoding'
4539
import {
@@ -467,7 +461,7 @@ export function createRouter(options: RouterOptions): Router {
467461
})
468462
}
469463

470-
if (__DEV__ && !isObject(rawLocation)) {
464+
if (__DEV__ && !isRouteLocation(rawLocation)) {
471465
warn(
472466
`router.resolve() was passed an invalid location. This will fail in production.\n- Location:`,
473467
rawLocation

0 commit comments

Comments
 (0)