Skip to content

Commit e43c5f5

Browse files
committed
feat(loaders): warn incorrect query usage
1 parent f42b94e commit e43c5f5

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/data-loaders/defineColadaLoader.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ export function defineColadaLoader<Data, isLazy extends boolean>(
168168
query: () => {
169169
const route = entry.route.value
170170
const [trackedRoute, params, query, hash] = trackRoute(route)
171-
entry.tracked.set(keyText(options.key(trackedRoute)).join('|'), {
171+
entry.tracked.set(joinKeys(keyText(options.key(trackedRoute))), {
172172
ready: false,
173173
params,
174174
query,
@@ -215,7 +215,7 @@ export function defineColadaLoader<Data, isLazy extends boolean>(
215215
// )
216216
if (entry.route.value !== to) {
217217
// ensure we call refetch instead of refresh
218-
const tracked = entry.tracked.get(key.join('|'))
218+
const tracked = entry.tracked.get(joinKeys(key))
219219
reload = !tracked || hasRouteChanged(to, tracked)
220220
}
221221

@@ -322,7 +322,15 @@ export function defineColadaLoader<Data, isLazy extends boolean>(
322322
// if the entry is null, it means the loader never resolved, maybe there was an error
323323
if (this.staged !== STAGED_NO_VALUE) {
324324
this.data.value = this.staged
325-
this.tracked.get(key.join('|'))!.ready = true
325+
if (
326+
process.env.NODE_ENV === 'development' &&
327+
!this.tracked.has(joinKeys(key))
328+
) {
329+
console.warn(
330+
`A query was defined with the same key as the loader "[${key.join(', ')}]" but with different "query" function.\nSee https://pinia-colada.esm.dev/#TODO`
331+
)
332+
}
333+
this.tracked.get(joinKeys(key))!.ready = true
326334
}
327335
// we always commit the error unless the navigation was cancelled
328336
this.error.value = this.stagedError
@@ -475,6 +483,8 @@ export function defineColadaLoader<Data, isLazy extends boolean>(
475483
return useDataLoader
476484
}
477485

486+
export const joinKeys = (keys: string[]): string => keys.join('|')
487+
478488
export interface DefineDataColadaLoaderOptions<
479489
isLazy extends boolean,
480490
Name extends keyof RouteMap,

0 commit comments

Comments
 (0)