automatic invalidation not working
export function getContext() {
const queryClient = new QueryClient({
defaultOptions: {
dehydrate: { serializeData: superjson.serialize },
hydrate: { deserializeData: superjson.deserialize },
},
queryCache: new QueryCache({
onError: (error, query) => {
toast.error(`Error: ${error.message}`, {
action: {
label: "retry",
onClick: query.invalidate,
},
})
},
}),
mutationCache: new MutationCache({
onSettled: async (_data, _error, _vars, _context, mutation) => {
console.log(_data, _error, _vars, _context, mutation)
const meta = mutation.meta as {
invalidateQueryKey?: unknown[]
}
console.log(
"Invalidating query key in onSettled:",
meta.invalidateQueryKey,
)
if (meta.invalidateQueryKey) {
await queryClient.invalidateQueries({
queryKey: meta.invalidateQueryKey,
})
}
},
onSuccess: (data, vars, res, mutation) => {
const meta = mutation.meta as {
invalidateQueryKey?: unknown[]
}
console.log(
"Invalidating query key in onSuccess:",
meta.invalidateQueryKey,
)
},
onError: console.log,
}),
})
const serverHelpers = createTRPCOptionsProxy({
client: trpcClient,
queryClient: queryClient,
})
return {
queryClient,
trpc: serverHelpers,
}
}export function getContext() {
const queryClient = new QueryClient({
defaultOptions: {
dehydrate: { serializeData: superjson.serialize },
hydrate: { deserializeData: superjson.deserialize },
},
queryCache: new QueryCache({
onError: (error, query) => {
toast.error(`Error: ${error.message}`, {
action: {
label: "retry",
onClick: query.invalidate,
},
})
},
}),
mutationCache: new MutationCache({
onSettled: async (_data, _error, _vars, _context, mutation) => {
console.log(_data, _error, _vars, _context, mutation)
const meta = mutation.meta as {
invalidateQueryKey?: unknown[]
}
console.log(
"Invalidating query key in onSettled:",
meta.invalidateQueryKey,
)
if (meta.invalidateQueryKey) {
await queryClient.invalidateQueries({
queryKey: meta.invalidateQueryKey,
})
}
},
onSuccess: (data, vars, res, mutation) => {
const meta = mutation.meta as {
invalidateQueryKey?: unknown[]
}
console.log(
"Invalidating query key in onSuccess:",
meta.invalidateQueryKey,
)
},
onError: console.log,
}),
})
const serverHelpers = createTRPCOptionsProxy({
client: trpcClient,
queryClient: queryClient,
})
return {
queryClient,
trpc: serverHelpers,
}
}I've set this up in my tanstack start app which uses trpc and query.
from one of the components, im trying to invalidate it upon mutation: