@tanstack/query-core 5.0.0-alpha.66 → 5.0.0-alpha.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/index.d.ts +1 -0
- package/build/lib/index.d.ts.map +1 -1
- package/build/lib/infiniteQueryBehavior.cjs +1 -1
- package/build/lib/infiniteQueryBehavior.cjs.map +1 -1
- package/build/lib/infiniteQueryBehavior.d.ts.map +1 -1
- package/build/lib/infiniteQueryBehavior.js +1 -1
- package/build/lib/infiniteQueryBehavior.js.map +1 -1
- package/build/lib/infiniteQueryBehavior.legacy.cjs +1 -1
- package/build/lib/infiniteQueryBehavior.legacy.cjs.map +1 -1
- package/build/lib/infiniteQueryBehavior.legacy.js +1 -1
- package/build/lib/infiniteQueryBehavior.legacy.js.map +1 -1
- package/build/lib/notifyManager.cjs.map +1 -1
- package/build/lib/notifyManager.d.ts +3 -2
- package/build/lib/notifyManager.d.ts.map +1 -1
- package/build/lib/notifyManager.js.map +1 -1
- package/build/lib/notifyManager.legacy.cjs.map +1 -1
- package/build/lib/notifyManager.legacy.js.map +1 -1
- package/build/lib/query.cjs +1 -1
- package/build/lib/query.cjs.map +1 -1
- package/build/lib/query.d.ts.map +1 -1
- package/build/lib/query.js +1 -1
- package/build/lib/query.js.map +1 -1
- package/build/lib/query.legacy.cjs +1 -1
- package/build/lib/query.legacy.cjs.map +1 -1
- package/build/lib/query.legacy.js +1 -1
- package/build/lib/query.legacy.js.map +1 -1
- package/build/lib/queryCache.cjs.map +1 -1
- package/build/lib/queryCache.d.ts +1 -1
- package/build/lib/queryCache.d.ts.map +1 -1
- package/build/lib/queryCache.js.map +1 -1
- package/build/lib/queryCache.legacy.cjs.map +1 -1
- package/build/lib/queryCache.legacy.js.map +1 -1
- package/build/lib/tests/utils.d.ts +2 -2
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/infiniteQueryBehavior.ts +4 -1
- package/src/notifyManager.ts +7 -3
- package/src/query.ts +3 -1
- package/src/queryCache.ts +1 -1
- package/src/tests/infiniteQueryBehavior.test.tsx +5 -2
- package/src/tests/notifyManager.test.tsx +15 -0
- package/src/tests/query.test.tsx +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.cjs","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\
|
|
1
|
+
{"version":3,"file":"queryCache.cjs","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\nexport type QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\nexport interface QueryStore {\n has: (queryKey: string) => boolean\n set: (queryKey: string, query: Query) => void\n get: (queryKey: string) => Query | undefined\n delete: (queryKey: string) => void\n values: () => IterableIterator<Query>\n}\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n #queries: QueryStore\n\n constructor(public config: QueryCacheConfig = {}) {\n super()\n this.#queries = new Map<string, Query>()\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query)\n\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.#queries.get(query.queryHash)\n\n if (queryInMap) {\n query.destroy()\n\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash)\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.#queries.get(queryHash) as\n | Query<TQueryFnData, TError, TData, TQueryKey>\n | undefined\n }\n\n getAll(): Query[] {\n return [...this.#queries.values()]\n }\n\n find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: WithRequired<QueryFilters, 'queryKey'>,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((query) =>\n matchQuery(defaultedFilters, query),\n ) as Query<TQueryFnData, TError, TData> | undefined\n }\n\n findAll(filters: QueryFilters = {}): Query[] {\n const queries = this.getAll()\n return Object.keys(filters).length > 0\n ? queries.filter((query) => matchQuery(filters, query))\n : queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["QueryCache","Subscribable","constructor","config","Map","build","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","defaultQueryOptions","defaultOptions","getQueryDefaults","add","has","set","notify","type","remove","queryInMap","destroy","delete","clear","notifyManager","batch","getAll","forEach","values","find","filters","defaultedFilters","exact","matchQuery","findAll","queries","Object","keys","length","filter","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ interface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {
|
|
|
42
42
|
query: Query<any, any, any, any>;
|
|
43
43
|
observer: QueryObserver<any, any, any, any, any>;
|
|
44
44
|
}
|
|
45
|
-
type QueryCacheNotifyEvent = NotifyEventQueryAdded | NotifyEventQueryRemoved | NotifyEventQueryUpdated | NotifyEventQueryObserverAdded | NotifyEventQueryObserverRemoved | NotifyEventQueryObserverResultsUpdated | NotifyEventQueryObserverOptionsUpdated;
|
|
45
|
+
export type QueryCacheNotifyEvent = NotifyEventQueryAdded | NotifyEventQueryRemoved | NotifyEventQueryUpdated | NotifyEventQueryObserverAdded | NotifyEventQueryObserverRemoved | NotifyEventQueryObserverResultsUpdated | NotifyEventQueryObserverOptionsUpdated;
|
|
46
46
|
type QueryCacheListener = (event: QueryCacheNotifyEvent) => void;
|
|
47
47
|
export interface QueryStore {
|
|
48
48
|
has: (queryKey: string) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.d.ts","sourceRoot":"","sources":["../../src/queryCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,YAAY,EACb,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAIpD,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KACpC,IAAI,CAAA;IACT,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC5E,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KACpC,IAAI,CAAA;CACV;AAED,UAAU,qBAAsB,SAAQ,WAAW;IACjD,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CACjC;AAED,UAAU,uBAAwB,SAAQ,WAAW;IACnD,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CACjC;AAED,UAAU,uBAAwB,SAAQ,WAAW;IACnD,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAChC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CACzB;AAED,UAAU,6BAA8B,SAAQ,WAAW;IACzD,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAChC,QAAQ,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CACjD;AAED,UAAU,+BAAgC,SAAQ,WAAW;IAC3D,IAAI,EAAE,iBAAiB,CAAA;IACvB,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAChC,QAAQ,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CACjD;AAED,UAAU,sCAAuC,SAAQ,WAAW;IAClE,IAAI,EAAE,wBAAwB,CAAA;IAC9B,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CACjC;AAED,UAAU,sCAAuC,SAAQ,WAAW;IAClE,IAAI,EAAE,wBAAwB,CAAA;IAC9B,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAChC,QAAQ,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CACjD;AAED,
|
|
1
|
+
{"version":3,"file":"queryCache.d.ts","sourceRoot":"","sources":["../../src/queryCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\
|
|
1
|
+
{"version":3,"file":"queryCache.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\nexport type QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\nexport interface QueryStore {\n has: (queryKey: string) => boolean\n set: (queryKey: string, query: Query) => void\n get: (queryKey: string) => Query | undefined\n delete: (queryKey: string) => void\n values: () => IterableIterator<Query>\n}\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n #queries: QueryStore\n\n constructor(public config: QueryCacheConfig = {}) {\n super()\n this.#queries = new Map<string, Query>()\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query)\n\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.#queries.get(query.queryHash)\n\n if (queryInMap) {\n query.destroy()\n\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash)\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.#queries.get(queryHash) as\n | Query<TQueryFnData, TError, TData, TQueryKey>\n | undefined\n }\n\n getAll(): Query[] {\n return [...this.#queries.values()]\n }\n\n find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: WithRequired<QueryFilters, 'queryKey'>,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((query) =>\n matchQuery(defaultedFilters, query),\n ) as Query<TQueryFnData, TError, TData> | undefined\n }\n\n findAll(filters: QueryFilters = {}): Query[] {\n const queries = this.getAll()\n return Object.keys(filters).length > 0\n ? queries.filter((query) => matchQuery(filters, query))\n : queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["QueryCache","Subscribable","constructor","config","Map","build","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","defaultQueryOptions","defaultOptions","getQueryDefaults","add","has","set","notify","type","remove","queryInMap","destroy","delete","clear","notifyManager","batch","getAll","forEach","values","find","filters","defaultedFilters","exact","matchQuery","findAll","queries","Object","keys","length","filter","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.legacy.cjs","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\nexport interface QueryStore {\n has: (queryKey: string) => boolean\n set: (queryKey: string, query: Query) => void\n get: (queryKey: string) => Query | undefined\n delete: (queryKey: string) => void\n values: () => IterableIterator<Query>\n}\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n #queries: QueryStore\n\n constructor(public config: QueryCacheConfig = {}) {\n super()\n this.#queries = new Map<string, Query>()\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query)\n\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.#queries.get(query.queryHash)\n\n if (queryInMap) {\n query.destroy()\n\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash)\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.#queries.get(queryHash) as\n | Query<TQueryFnData, TError, TData, TQueryKey>\n | undefined\n }\n\n getAll(): Query[] {\n return [...this.#queries.values()]\n }\n\n find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: WithRequired<QueryFilters, 'queryKey'>,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((query) =>\n matchQuery(defaultedFilters, query),\n ) as Query<TQueryFnData, TError, TData> | undefined\n }\n\n findAll(filters: QueryFilters = {}): Query[] {\n const queries = this.getAll()\n return Object.keys(filters).length > 0\n ? queries.filter((query) => matchQuery(filters, query))\n : queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["_queries","_classPrivateFieldLooseKey","QueryCache","Subscribable","constructor","config","Object","defineProperty","writable","value","_classPrivateFieldLooseBase","Map","build","client","options","state","_options$queryHash","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","defaultQueryOptions","defaultOptions","getQueryDefaults","add","has","set","notify","type","remove","queryInMap","destroy","delete","clear","notifyManager","batch","getAll","forEach","values","find","filters","defaultedFilters","exact","matchQuery","findAll","queries","keys","length","filter","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queryCache.legacy.cjs","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\nexport type QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\nexport interface QueryStore {\n has: (queryKey: string) => boolean\n set: (queryKey: string, query: Query) => void\n get: (queryKey: string) => Query | undefined\n delete: (queryKey: string) => void\n values: () => IterableIterator<Query>\n}\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n #queries: QueryStore\n\n constructor(public config: QueryCacheConfig = {}) {\n super()\n this.#queries = new Map<string, Query>()\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query)\n\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.#queries.get(query.queryHash)\n\n if (queryInMap) {\n query.destroy()\n\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash)\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.#queries.get(queryHash) as\n | Query<TQueryFnData, TError, TData, TQueryKey>\n | undefined\n }\n\n getAll(): Query[] {\n return [...this.#queries.values()]\n }\n\n find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: WithRequired<QueryFilters, 'queryKey'>,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((query) =>\n matchQuery(defaultedFilters, query),\n ) as Query<TQueryFnData, TError, TData> | undefined\n }\n\n findAll(filters: QueryFilters = {}): Query[] {\n const queries = this.getAll()\n return Object.keys(filters).length > 0\n ? queries.filter((query) => matchQuery(filters, query))\n : queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["_queries","_classPrivateFieldLooseKey","QueryCache","Subscribable","constructor","config","Object","defineProperty","writable","value","_classPrivateFieldLooseBase","Map","build","client","options","state","_options$queryHash","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","defaultQueryOptions","defaultOptions","getQueryDefaults","add","has","set","notify","type","remove","queryInMap","destroy","delete","clear","notifyManager","batch","getAll","forEach","values","find","filters","defaultedFilters","exact","matchQuery","findAll","queries","keys","length","filter","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryCache.legacy.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ntype QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\nexport interface QueryStore {\n has: (queryKey: string) => boolean\n set: (queryKey: string, query: Query) => void\n get: (queryKey: string) => Query | undefined\n delete: (queryKey: string) => void\n values: () => IterableIterator<Query>\n}\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n #queries: QueryStore\n\n constructor(public config: QueryCacheConfig = {}) {\n super()\n this.#queries = new Map<string, Query>()\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query)\n\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.#queries.get(query.queryHash)\n\n if (queryInMap) {\n query.destroy()\n\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash)\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.#queries.get(queryHash) as\n | Query<TQueryFnData, TError, TData, TQueryKey>\n | undefined\n }\n\n getAll(): Query[] {\n return [...this.#queries.values()]\n }\n\n find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: WithRequired<QueryFilters, 'queryKey'>,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((query) =>\n matchQuery(defaultedFilters, query),\n ) as Query<TQueryFnData, TError, TData> | undefined\n }\n\n findAll(filters: QueryFilters = {}): Query[] {\n const queries = this.getAll()\n return Object.keys(filters).length > 0\n ? queries.filter((query) => matchQuery(filters, query))\n : queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["_queries","_classPrivateFieldLooseKey","QueryCache","Subscribable","constructor","config","Object","defineProperty","writable","value","_classPrivateFieldLooseBase","Map","build","client","options","state","_options$queryHash","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","defaultQueryOptions","defaultOptions","getQueryDefaults","add","has","set","notify","type","remove","queryInMap","destroy","delete","clear","notifyManager","batch","getAll","forEach","values","find","filters","defaultedFilters","exact","matchQuery","findAll","queries","keys","length","filter","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queryCache.legacy.js","sources":["../../src/queryCache.ts"],"sourcesContent":["import type { QueryFilters } from './utils'\nimport { hashQueryKeyByOptions, matchQuery } from './utils'\nimport type { Action, QueryState } from './query'\nimport { Query } from './query'\nimport type {\n NotifyEvent,\n QueryKey,\n QueryOptions,\n DefaultError,\n WithRequired,\n} from './types'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type { QueryObserver } from './queryObserver'\n\n// TYPES\n\ninterface QueryCacheConfig {\n onError?: (\n error: DefaultError,\n query: Query<unknown, unknown, unknown>,\n ) => void\n onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n query: Query<unknown, unknown, unknown>,\n ) => void\n}\n\ninterface NotifyEventQueryAdded extends NotifyEvent {\n type: 'added'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryRemoved extends NotifyEvent {\n type: 'removed'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryUpdated extends NotifyEvent {\n type: 'updated'\n query: Query<any, any, any, any>\n action: Action<any, any>\n}\n\ninterface NotifyEventQueryObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {\n type: 'observerResultsUpdated'\n query: Query<any, any, any, any>\n}\n\ninterface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n query: Query<any, any, any, any>\n observer: QueryObserver<any, any, any, any, any>\n}\n\nexport type QueryCacheNotifyEvent =\n | NotifyEventQueryAdded\n | NotifyEventQueryRemoved\n | NotifyEventQueryUpdated\n | NotifyEventQueryObserverAdded\n | NotifyEventQueryObserverRemoved\n | NotifyEventQueryObserverResultsUpdated\n | NotifyEventQueryObserverOptionsUpdated\n\ntype QueryCacheListener = (event: QueryCacheNotifyEvent) => void\n\nexport interface QueryStore {\n has: (queryKey: string) => boolean\n set: (queryKey: string, query: Query) => void\n get: (queryKey: string) => Query | undefined\n delete: (queryKey: string) => void\n values: () => IterableIterator<Query>\n}\n\n// CLASS\n\nexport class QueryCache extends Subscribable<QueryCacheListener> {\n #queries: QueryStore\n\n constructor(public config: QueryCacheConfig = {}) {\n super()\n this.#queries = new Map<string, Query>()\n }\n\n build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(\n client: QueryClient,\n options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n state?: QueryState<TData, TError>,\n ): Query<TQueryFnData, TError, TData, TQueryKey> {\n const queryKey = options.queryKey!\n const queryHash =\n options.queryHash ?? hashQueryKeyByOptions(queryKey, options)\n let query = this.get<TQueryFnData, TError, TData, TQueryKey>(queryHash)\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey),\n })\n this.add(query)\n }\n\n return query\n }\n\n add(query: Query<any, any, any, any>): void {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query)\n\n this.notify({\n type: 'added',\n query,\n })\n }\n }\n\n remove(query: Query<any, any, any, any>): void {\n const queryInMap = this.#queries.get(query.queryHash)\n\n if (queryInMap) {\n query.destroy()\n\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash)\n }\n\n this.notify({ type: 'removed', query })\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query)\n })\n })\n }\n\n get<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n >(\n queryHash: string,\n ): Query<TQueryFnData, TError, TData, TQueryKey> | undefined {\n return this.#queries.get(queryHash) as\n | Query<TQueryFnData, TError, TData, TQueryKey>\n | undefined\n }\n\n getAll(): Query[] {\n return [...this.#queries.values()]\n }\n\n find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(\n filters: WithRequired<QueryFilters, 'queryKey'>,\n ): Query<TQueryFnData, TError, TData> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((query) =>\n matchQuery(defaultedFilters, query),\n ) as Query<TQueryFnData, TError, TData> | undefined\n }\n\n findAll(filters: QueryFilters = {}): Query[] {\n const queries = this.getAll()\n return Object.keys(filters).length > 0\n ? queries.filter((query) => matchQuery(filters, query))\n : queries\n }\n\n notify(event: QueryCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n onFocus(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus()\n })\n })\n }\n\n onOnline(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline()\n })\n })\n }\n}\n"],"names":["_queries","_classPrivateFieldLooseKey","QueryCache","Subscribable","constructor","config","Object","defineProperty","writable","value","_classPrivateFieldLooseBase","Map","build","client","options","state","_options$queryHash","queryKey","queryHash","hashQueryKeyByOptions","query","get","Query","cache","defaultQueryOptions","defaultOptions","getQueryDefaults","add","has","set","notify","type","remove","queryInMap","destroy","delete","clear","notifyManager","batch","getAll","forEach","values","find","filters","defaultedFilters","exact","matchQuery","findAll","queries","keys","length","filter","event","listeners","listener","onFocus","onOnline"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import type { MutationOptions, QueryClientConfig } from '..';
|
|
3
3
|
import { QueryClient } from '..';
|
|
4
4
|
export declare function createQueryClient(config?: QueryClientConfig): QueryClient;
|
|
5
|
-
export declare function mockVisibilityState(value: DocumentVisibilityState): import("vitest/dist/index-
|
|
6
|
-
export declare function mockNavigatorOnLine(value: boolean): import("vitest/dist/index-
|
|
5
|
+
export declare function mockVisibilityState(value: DocumentVisibilityState): import("vitest/dist/index-1cfc7f58").S<[], DocumentVisibilityState>;
|
|
6
|
+
export declare function mockNavigatorOnLine(value: boolean): import("vitest/dist/index-1cfc7f58").S<[], boolean>;
|
|
7
7
|
export declare function queryKey(): Array<string>;
|
|
8
8
|
export declare function sleep(timeout: number): Promise<void>;
|
|
9
9
|
export declare function setActTimeout(fn: () => void, ms?: number): NodeJS.Timeout;
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
export { CancelledError } from './retryer'
|
|
4
4
|
export { QueryCache } from './queryCache'
|
|
5
|
+
export type { QueryCacheNotifyEvent } from './queryCache'
|
|
5
6
|
export { QueryClient } from './queryClient'
|
|
6
7
|
export { QueryObserver } from './queryObserver'
|
|
7
8
|
export { QueriesObserver } from './queriesObserver'
|
|
@@ -39,7 +39,10 @@ export function infiniteQueryBehavior<TQueryFnData, TError, TData>(
|
|
|
39
39
|
// Get query function
|
|
40
40
|
const queryFn =
|
|
41
41
|
context.options.queryFn ||
|
|
42
|
-
(() =>
|
|
42
|
+
(() =>
|
|
43
|
+
Promise.reject(
|
|
44
|
+
new Error(`Missing queryFn: '${context.options.queryHash}'`),
|
|
45
|
+
))
|
|
43
46
|
|
|
44
47
|
// Create function to fetch a page
|
|
45
48
|
const fetchPage = async (
|
package/src/notifyManager.ts
CHANGED
|
@@ -8,6 +8,8 @@ type NotifyFunction = (callback: () => void) => void
|
|
|
8
8
|
|
|
9
9
|
type BatchNotifyFunction = (callback: () => void) => void
|
|
10
10
|
|
|
11
|
+
type BatchCallsCallback<T extends unknown[]> = (...args: T) => void
|
|
12
|
+
|
|
11
13
|
export function createNotifyManager() {
|
|
12
14
|
let queue: NotifyCallback[] = []
|
|
13
15
|
let transactions = 0
|
|
@@ -45,12 +47,14 @@ export function createNotifyManager() {
|
|
|
45
47
|
/**
|
|
46
48
|
* All calls to the wrapped function will be batched.
|
|
47
49
|
*/
|
|
48
|
-
const batchCalls = <T extends
|
|
49
|
-
|
|
50
|
+
const batchCalls = <T extends unknown[]>(
|
|
51
|
+
callback: BatchCallsCallback<T>,
|
|
52
|
+
): BatchCallsCallback<T> => {
|
|
53
|
+
return (...args) => {
|
|
50
54
|
schedule(() => {
|
|
51
55
|
callback(...args)
|
|
52
56
|
})
|
|
53
|
-
}
|
|
57
|
+
}
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
const flush = (): void => {
|
package/src/query.ts
CHANGED
|
@@ -387,7 +387,9 @@ export class Query<
|
|
|
387
387
|
// Create fetch function
|
|
388
388
|
const fetchFn = () => {
|
|
389
389
|
if (!this.options.queryFn) {
|
|
390
|
-
return Promise.reject(
|
|
390
|
+
return Promise.reject(
|
|
391
|
+
new Error(`Missing queryFn: '${this.options.queryHash}'`),
|
|
392
|
+
)
|
|
391
393
|
}
|
|
392
394
|
this.#abortSignalConsumed = false
|
|
393
395
|
return this.options.queryFn(
|
package/src/queryCache.ts
CHANGED
|
@@ -68,7 +68,7 @@ interface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {
|
|
|
68
68
|
observer: QueryObserver<any, any, any, any, any>
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
type QueryCacheNotifyEvent =
|
|
71
|
+
export type QueryCacheNotifyEvent =
|
|
72
72
|
| NotifyEventQueryAdded
|
|
73
73
|
| NotifyEventQueryRemoved
|
|
74
74
|
| NotifyEventQueryUpdated
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { waitFor } from '@testing-library/react'
|
|
2
|
-
import type { QueryClient, InfiniteQueryObserverResult } from '..'
|
|
2
|
+
import type { QueryClient, QueryCache, InfiniteQueryObserverResult } from '..'
|
|
3
3
|
import { InfiniteQueryObserver, CancelledError } from '..'
|
|
4
4
|
import { createQueryClient, queryKey, sleep } from './utils'
|
|
5
5
|
import { vi } from 'vitest'
|
|
6
6
|
|
|
7
7
|
describe('InfiniteQueryBehavior', () => {
|
|
8
8
|
let queryClient: QueryClient
|
|
9
|
+
let queryCache: QueryCache
|
|
9
10
|
|
|
10
11
|
beforeEach(() => {
|
|
11
12
|
queryClient = createQueryClient()
|
|
13
|
+
queryCache = queryClient.getQueryCache()
|
|
12
14
|
queryClient.mount()
|
|
13
15
|
})
|
|
14
16
|
|
|
@@ -35,9 +37,10 @@ describe('InfiniteQueryBehavior', () => {
|
|
|
35
37
|
})
|
|
36
38
|
|
|
37
39
|
await waitFor(() => {
|
|
40
|
+
const query = queryCache.find({ queryKey: key })!
|
|
38
41
|
return expect(observerResult).toMatchObject({
|
|
39
42
|
isError: true,
|
|
40
|
-
error: new Error(
|
|
43
|
+
error: new Error(`Missing queryFn: '${query.queryHash}'`),
|
|
41
44
|
})
|
|
42
45
|
})
|
|
43
46
|
|
|
@@ -49,4 +49,19 @@ describe('notifyManager', () => {
|
|
|
49
49
|
|
|
50
50
|
expect(notifySpy).toHaveBeenCalledTimes(1)
|
|
51
51
|
})
|
|
52
|
+
|
|
53
|
+
it('typedefs should catch proper signatures', async () => {
|
|
54
|
+
const notifyManagerTest = createNotifyManager()
|
|
55
|
+
|
|
56
|
+
// we define some fn with its signature:
|
|
57
|
+
const fn: (a: string, b: number) => string = (a, b) => a + b
|
|
58
|
+
|
|
59
|
+
//now somefn expect to be called with args [a: string, b: number]
|
|
60
|
+
const someFn = notifyManagerTest.batchCalls(fn)
|
|
61
|
+
|
|
62
|
+
someFn('im happy', 4)
|
|
63
|
+
|
|
64
|
+
//@ts-expect-error
|
|
65
|
+
someFn('im not happy', false)
|
|
66
|
+
})
|
|
52
67
|
})
|
package/src/tests/query.test.tsx
CHANGED
|
@@ -761,10 +761,12 @@ describe('query', () => {
|
|
|
761
761
|
})
|
|
762
762
|
|
|
763
763
|
const unsubscribe = observer.subscribe(() => undefined)
|
|
764
|
+
|
|
764
765
|
await sleep(10)
|
|
766
|
+
const query = queryCache.find({ queryKey: key })!
|
|
765
767
|
expect(observer.getCurrentResult()).toMatchObject({
|
|
766
768
|
status: 'error',
|
|
767
|
-
error: new Error(
|
|
769
|
+
error: new Error(`Missing queryFn: '${query.queryHash}'`),
|
|
768
770
|
})
|
|
769
771
|
unsubscribe()
|
|
770
772
|
})
|