diff --git a/packages/query-core/src/infiniteQueryBehavior.ts b/packages/query-core/src/infiniteQueryBehavior.ts index 5293bf3bc3..837780a94f 100644 --- a/packages/query-core/src/infiniteQueryBehavior.ts +++ b/packages/query-core/src/infiniteQueryBehavior.ts @@ -76,7 +76,7 @@ export function infiniteQueryBehavior< const queryFnContext: QueryFunctionContext = { queryKey: context.queryKey, pageParam: param, - meta: context.meta, + meta: context.options.meta, } addSignalProperty(queryFnContext) diff --git a/packages/query-core/src/mutation.ts b/packages/query-core/src/mutation.ts index b365aecb52..7d3ee1bfb8 100644 --- a/packages/query-core/src/mutation.ts +++ b/packages/query-core/src/mutation.ts @@ -91,7 +91,6 @@ export class Mutation< state: MutationState options: MutationOptions mutationId: number - meta: MutationMeta | undefined private observers: MutationObserver[] private mutationCache: MutationCache @@ -110,12 +109,15 @@ export class Mutation< this.logger = config.logger || defaultLogger this.observers = [] this.state = config.state || getDefaultState() - this.meta = config.meta this.updateCacheTime(this.options.cacheTime) this.scheduleGc() } + get meta(): MutationMeta | undefined { + return this.options.meta + } + setState(state: MutationState): void { this.dispatch({ type: 'setState', state }) } diff --git a/packages/query-core/src/mutationCache.ts b/packages/query-core/src/mutationCache.ts index 7307c928de..acf87caf70 100644 --- a/packages/query-core/src/mutationCache.ts +++ b/packages/query-core/src/mutationCache.ts @@ -101,7 +101,6 @@ export class MutationCache extends Subscribable { defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined, - meta: options.meta, }) this.add(mutation) diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index d26d50a3e5..fbbbc4c628 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -34,7 +34,6 @@ interface QueryConfig< options?: QueryOptions defaultOptions?: QueryOptions state?: QueryState - meta: QueryMeta | undefined } export interface QueryState { @@ -64,7 +63,6 @@ export interface FetchContext< options: QueryOptions queryKey: TQueryKey state: QueryState - meta: QueryMeta | undefined } export interface QueryBehavior< @@ -152,7 +150,6 @@ export class Query< initialState: QueryState revertState?: QueryState state: QueryState - meta: QueryMeta | undefined isFetchingOptimistic?: boolean private cache: QueryCache @@ -176,7 +173,10 @@ export class Query< this.queryHash = config.queryHash this.initialState = config.state || getDefaultState(this.options) this.state = this.initialState - this.meta = config.meta + } + + get meta(): QueryMeta | undefined { + return this.options.meta } private setOptions( @@ -184,8 +184,6 @@ export class Query< ): void { this.options = { ...this.defaultOptions, ...options } - this.meta = options?.meta - this.updateCacheTime(this.options.cacheTime) } @@ -406,7 +404,6 @@ export class Query< queryKey: this.queryKey, state: this.state, fetchFn, - meta: this.meta, } addSignalProperty(context) diff --git a/packages/query-core/src/queryCache.ts b/packages/query-core/src/queryCache.ts index b6a1a37f82..e3c0690bb8 100644 --- a/packages/query-core/src/queryCache.ts +++ b/packages/query-core/src/queryCache.ts @@ -103,7 +103,6 @@ export class QueryCache extends Subscribable { options: client.defaultQueryOptions(options), state, defaultOptions: client.getQueryDefaults(queryKey), - meta: options.meta, }) this.add(query) } diff --git a/packages/query-core/src/tests/query.test.tsx b/packages/query-core/src/tests/query.test.tsx index 92a0bc4d55..d2ed06dc1c 100644 --- a/packages/query-core/src/tests/query.test.tsx +++ b/packages/query-core/src/tests/query.test.tsx @@ -596,6 +596,23 @@ describe('query', () => { expect(query.options.meta).toBeUndefined() }) + test('can use default meta', async () => { + const meta = { + it: 'works', + } + + const key = queryKey() + const queryFn = () => 'data' + + queryClient.setQueryDefaults(key, { meta }) + + await queryClient.prefetchQuery(key, queryFn) + + const query = queryCache.find(key)! + + expect(query.meta).toBe(meta) + }) + test('provides meta object inside query function', async () => { const meta = { it: 'works',