reactjrx 1.68.0 → 1.69.0
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/README.md +6 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +2052 -1488
- package/dist/lib/binding/types.d.ts +2 -0
- package/dist/lib/binding/useObservableEvent.d.ts +5 -0
- package/dist/lib/binding/useObservableState.d.ts +16 -0
- package/dist/lib/binding/useSubscribe.d.ts +2 -3
- package/dist/lib/binding/useSubscribeEffect.d.ts +11 -0
- package/dist/lib/queries/client/QueryClient.d.ts +48 -0
- package/dist/lib/queries/client/focusManager.d.ts +19 -0
- package/dist/lib/queries/client/keys/hashKey.d.ts +3 -0
- package/dist/lib/queries/client/keys/{compareKeys.d.ts → matchKey.d.ts} +1 -1
- package/dist/lib/queries/client/keys/partialMatchKey.d.ts +5 -0
- package/dist/lib/queries/client/mutations/cache/MutationCache.d.ts +5 -16
- package/dist/lib/queries/client/mutations/mutation/Mutation.d.ts +4 -10
- package/dist/lib/queries/client/mutations/mutation/delayWhenNetworkOnline.d.ts +4 -0
- package/dist/lib/queries/client/mutations/mutation/observeUntilFinished.d.ts +3 -0
- package/dist/lib/queries/client/mutations/mutation/types.d.ts +4 -3
- package/dist/lib/queries/client/mutations/mutation/waitForNetworkOnError.d.ts +6 -0
- package/dist/lib/queries/client/mutations/observers/MutationObserver.d.ts +1 -7
- package/dist/lib/queries/client/mutations/runner/MutationRunner.d.ts +9 -7
- package/dist/lib/queries/client/onlineManager.d.ts +10 -0
- package/dist/lib/queries/client/queries/cache/QueryCache.d.ts +33 -0
- package/dist/lib/queries/client/queries/cache/types.d.ts +45 -0
- package/dist/lib/queries/client/queries/observer/QueryObserver.d.ts +65 -0
- package/dist/lib/queries/client/queries/observer/queryStateHelpers.d.ts +9 -0
- package/dist/lib/queries/client/queries/observer/types.d.ts +241 -0
- package/dist/lib/queries/client/queries/query/Query.d.ts +71 -0
- package/dist/lib/queries/client/queries/query/delayOnNetworkMode.d.ts +6 -0
- package/dist/lib/queries/client/queries/query/delayUntilFocus.d.ts +2 -0
- package/dist/lib/queries/client/queries/query/executeQuery.d.ts +17 -0
- package/dist/lib/queries/client/queries/query/getDefaultState.d.ts +4 -0
- package/dist/lib/queries/client/queries/query/operators.d.ts +13 -0
- package/dist/lib/queries/client/queries/query/types.d.ts +93 -0
- package/dist/lib/queries/client/queries/retryer/CancelledError.d.ts +6 -0
- package/dist/lib/queries/client/queries/retryer/types.d.ts +4 -0
- package/dist/lib/queries/client/queries/retryer/utils.d.ts +2 -0
- package/dist/lib/queries/client/queries/types.d.ts +112 -0
- package/dist/lib/queries/client/queries/utils.d.ts +8 -0
- package/dist/lib/queries/client/store.d.ts +25 -0
- package/dist/lib/queries/client/tests/utils.d.ts +7 -1
- package/dist/lib/queries/client/types.d.ts +20 -11
- package/dist/lib/queries/client/utils/keepPreviousData.d.ts +1 -0
- package/dist/lib/queries/client/utils/makeObservable.d.ts +6 -0
- package/dist/lib/queries/react/QueryClientProvider.d.ts +7 -0
- package/dist/lib/queries/react/QueryClientProvider.rq.test.d.ts +1 -0
- package/dist/lib/queries/react/mutations/useIsMutating.d.ts +1 -1
- package/dist/lib/queries/react/mutations/useMutation.d.ts +1 -1
- package/dist/lib/queries/react/mutations/useMutationState.d.ts +2 -2
- package/dist/lib/queries/react/queries/QueryErrorResetBoundary.d.ts +11 -0
- package/dist/lib/queries/react/queries/QueryOptions.rq.types.test.d.ts +1 -0
- package/dist/lib/queries/react/queries/errorBoundaryUtils.d.ts +12 -0
- package/dist/lib/queries/react/queries/isRestoring.d.ts +3 -0
- package/dist/lib/queries/react/queries/queryOptions.d.ts +18 -0
- package/dist/lib/queries/react/queries/types.d.ts +9 -11
- package/dist/lib/queries/react/queries/useBaseQuery.d.ts +6 -0
- package/dist/lib/queries/react/queries/useIsFetching.d.ts +3 -0
- package/dist/lib/queries/react/queries/useIsFetching.rq.test.d.ts +1 -0
- package/dist/lib/queries/react/queries/useQuery.d.ts +8 -6
- package/dist/lib/queries/react/queries/useQuery.rq.test.d.ts +1 -0
- package/dist/lib/queries/react/queries/useQuery.rq.types.test.d.ts +1 -0
- package/dist/lib/queries/react/useQueryClient.d.ts +2 -0
- package/dist/lib/utils/filterObjectByKey.d.ts +1 -0
- package/dist/lib/utils/hasObjectPrototype.d.ts +1 -0
- package/dist/lib/utils/index.d.ts +1 -0
- package/dist/lib/utils/isPlainArray.d.ts +1 -0
- package/dist/lib/utils/isPlainObject.d.ts +1 -0
- package/dist/lib/utils/isPromiseLike.d.ts +1 -0
- package/dist/lib/utils/isServer.d.ts +1 -0
- package/dist/lib/utils/operators/retryBackoff.d.ts +7 -5
- package/dist/lib/utils/replaceEqualDeep.d.ts +6 -0
- package/dist/lib/utils/types.d.ts +7 -0
- package/dist/tests/testUtils.d.ts +1 -1
- package/dist/tests/utils.d.ts +12 -6
- package/package.json +10 -11
- package/dist/lib/binding/trigger.d.ts +0 -4
- package/dist/lib/binding/useObserveCallback.d.ts +0 -5
- package/dist/lib/queries/client/cache/cacheClient.d.ts +0 -12
- package/dist/lib/queries/client/cache/invalidateCache.d.ts +0 -5
- package/dist/lib/queries/client/cache/logger.d.ts +0 -24
- package/dist/lib/queries/client/cache/registerResultInCache.d.ts +0 -8
- package/dist/lib/queries/client/createClient.d.ts +0 -90
- package/dist/lib/queries/client/deduplication/deduplicate.d.ts +0 -3
- package/dist/lib/queries/client/fetch/notifyQueryResult.d.ts +0 -3
- package/dist/lib/queries/client/fetch/queryFetch.d.ts +0 -12
- package/dist/lib/queries/client/invalidation/invalidationClient.d.ts +0 -11
- package/dist/lib/queries/client/invalidation/logger.d.ts +0 -24
- package/dist/lib/queries/client/invalidation/markAsStale.d.ts +0 -8
- package/dist/lib/queries/client/keys/serializeKey.d.ts +0 -4
- package/dist/lib/queries/client/keys/withKeyComparison.d.ts +0 -16
- package/dist/lib/queries/client/operators.d.ts +0 -8
- package/dist/lib/queries/client/refetch/client.d.ts +0 -17
- package/dist/lib/queries/client/refetch/dispatchExternalRefetchToAllQueries.d.ts +0 -3
- package/dist/lib/queries/client/refetch/logger.d.ts +0 -24
- package/dist/lib/queries/client/refetch/markQueryAsStaleIfRefetch.d.ts +0 -3
- package/dist/lib/queries/client/store/createQueryStore.d.ts +0 -55
- package/dist/lib/queries/client/store/debugger.d.ts +0 -3
- package/dist/lib/queries/client/store/garbageCache.d.ts +0 -5
- package/dist/lib/queries/client/store/initializeQueryInStore.d.ts +0 -8
- package/dist/lib/queries/client/store/mapStoreQueryToRunnerOptions.d.ts +0 -4
- package/dist/lib/queries/client/store/queryListener.d.ts +0 -3
- package/dist/lib/queries/client/store/updateStoreWithNewQuery.d.ts +0 -10
- package/dist/lib/queries/client/triggers.d.ts +0 -8
- package/dist/lib/queries/client/utils/functionAsObservable.d.ts +0 -2
- package/dist/lib/queries/client/utils/wrapInPromise.d.ts +0 -3
- package/dist/lib/queries/react/Provider.d.ts +0 -12
- package/dist/lib/queries/react/queries/helpers.d.ts +0 -28
- package/dist/lib/queries/react/triggers/activityTrigger.d.ts +0 -11
- package/dist/lib/queries/react/triggers/networkTrigger.d.ts +0 -8
- package/dist/lib/queries/react/useSubscribeEffect.d.ts +0 -10
- /package/dist/lib/queries/client/{cache/cache.garbage.test.d.ts → QueryClient.types.rq.test.d.ts} +0 -0
- /package/dist/lib/queries/client/{cache/cacheClient.test.d.ts → focusManager.rq.test.d.ts} +0 -0
- /package/dist/lib/queries/client/{deduplication/deduplicate.test.d.ts → keys/hashKey.test.d.ts} +0 -0
- /package/dist/lib/queries/client/{invalidation/invalidation.test.d.ts → keys/matchKey.test.d.ts} +0 -0
- /package/dist/lib/queries/client/keys/{compareKeys.test.d.ts → partialMatchKey.rq.test.d.ts} +0 -0
- /package/dist/lib/queries/client/{keys/keys.test.d.ts → mutations/cache/mutationCache.rq.test.d.ts} +0 -0
- /package/dist/lib/queries/client/{keys/serializeKey.test.d.ts → queries/observer/QueryObserver.rq.test.d.ts} +0 -0
- /package/dist/lib/queries/client/{mutations/cache/mutationCache.test.d.ts → queries/observer/QueryObserver.types.rq.test.d.ts} +0 -0
- /package/dist/lib/queries/client/{refetch/refetch.test.d.ts → queries/query/query.rq.test.d.ts} +0 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* This creates an event handler and an observable that represents calls to that handler.
|
|
4
|
+
*/
|
|
5
|
+
export declare const useObserveCallback: <T = void>() => readonly [import("react").MutableRefObject<import("rxjs").Observable<T>>, (arg: T) => void];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Observable } from "rxjs";
|
|
2
|
+
/**
|
|
3
|
+
* If you need to represent some piece of state as an observable and also want the ability to change
|
|
4
|
+
* this state during the lifetime of the component, useObservableState
|
|
5
|
+
* is for you. It acts like React.useState(), only that
|
|
6
|
+
* it returns an observable representing changes to the
|
|
7
|
+
* value instead of the value itself. The callback/setter
|
|
8
|
+
* returned acts like a the regular callback you
|
|
9
|
+
* would otherwise get from React.useState. This is useful when you want
|
|
10
|
+
* to compose the state change together with other observables.
|
|
11
|
+
*
|
|
12
|
+
* @important
|
|
13
|
+
* The last array value is the value itself in case
|
|
14
|
+
* you need a direct reference to the value
|
|
15
|
+
*/
|
|
16
|
+
export declare const useObservableState: <T>(defaultValue: T) => [Observable<T>, (value: T) => void, T];
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { type DependencyList } from "react";
|
|
2
|
-
import { type
|
|
3
|
-
export declare function useSubscribe<T>(source:
|
|
4
|
-
export declare function useSubscribe<T>(source$: () => Observable<T>, deps: DependencyList): void;
|
|
2
|
+
import { type SubscribeSource } from "./types";
|
|
3
|
+
export declare function useSubscribe<T>(source: SubscribeSource<T>, deps?: DependencyList): void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type DependencyList } from "react";
|
|
2
|
+
import { type SubscribeSource } from "./types";
|
|
3
|
+
interface Option {
|
|
4
|
+
retry?: boolean;
|
|
5
|
+
onError?: (error: unknown) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function useSubscribeEffect<T>(source: SubscribeSource<T>): void;
|
|
8
|
+
export declare function useSubscribeEffect<T>(source: SubscribeSource<T>, options: Option): void;
|
|
9
|
+
export declare function useSubscribeEffect<T>(source: SubscribeSource<T>, deps: DependencyList): void;
|
|
10
|
+
export declare function useSubscribeEffect<T>(source: SubscribeSource<T>, options: Option, deps: DependencyList): void;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type MutationKey } from "./mutations/types";
|
|
2
|
+
import { MutationCache } from "./mutations/cache/MutationCache";
|
|
3
|
+
import { type MutationObserverOptions } from "./mutations/observers/types";
|
|
4
|
+
import { type MutationOptions } from "./mutations/mutation/types";
|
|
5
|
+
import { QueryCache } from "./queries/cache/QueryCache";
|
|
6
|
+
import { type DataTag, type Updater, type FetchQueryOptions, type QueryFilters, type SetDataOptions, type RefetchOptions } from "./queries/types";
|
|
7
|
+
import { type RefetchQueryFilters, type DefaultError, type InvalidateOptions, type InvalidateQueryFilters, type ResetOptions } from "./types";
|
|
8
|
+
import { type QueryKey } from "./keys/types";
|
|
9
|
+
import { type DefaultedQueryObserverOptions, type QueryObserverOptions } from "./queries/observer/types";
|
|
10
|
+
import { type NoInfer } from "../../utils/types";
|
|
11
|
+
import { type QueryState } from "./queries/query/types";
|
|
12
|
+
import { type CancelOptions } from "./queries/retryer/types";
|
|
13
|
+
export interface DefaultOptions<TError = DefaultError> {
|
|
14
|
+
queries?: Omit<QueryObserverOptions<unknown, TError>, "suspense">;
|
|
15
|
+
mutations?: MutationObserverOptions<unknown, TError, unknown, unknown>;
|
|
16
|
+
}
|
|
17
|
+
export interface QueryClientConfig {
|
|
18
|
+
queryCache?: QueryCache;
|
|
19
|
+
mutationCache?: MutationCache;
|
|
20
|
+
defaultOptions?: DefaultOptions;
|
|
21
|
+
}
|
|
22
|
+
export declare class QueryClient {
|
|
23
|
+
#private;
|
|
24
|
+
constructor({ mutationCache, queryCache, defaultOptions }?: QueryClientConfig);
|
|
25
|
+
mount(): void;
|
|
26
|
+
unmount(): void;
|
|
27
|
+
getMutationCache(): MutationCache;
|
|
28
|
+
getQueryCache(): QueryCache;
|
|
29
|
+
defaultMutationOptions<T extends MutationOptions<any, any, any, any>>(options?: T): T;
|
|
30
|
+
defaultQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never>(options?: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam> | DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
|
|
31
|
+
fetchQuery<TQueryFnData, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never>(options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): Promise<TData>;
|
|
32
|
+
prefetchQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>): Promise<void>;
|
|
33
|
+
resetQueries(filters?: QueryFilters, options?: ResetOptions): Promise<void>;
|
|
34
|
+
refetchQueries(filters?: RefetchQueryFilters, options?: RefetchOptions): Promise<void>;
|
|
35
|
+
getQueryData<TQueryFnData = unknown, TTaggedQueryKey extends QueryKey = QueryKey, TInferredQueryFnData = TTaggedQueryKey extends DataTag<unknown, infer TaggedValue> ? TaggedValue : TQueryFnData>(queryKey: TTaggedQueryKey): TInferredQueryFnData | undefined;
|
|
36
|
+
setQueryData<TQueryFnData = unknown, TaggedQueryKey extends QueryKey = QueryKey, TInferredQueryFnData = TaggedQueryKey extends DataTag<unknown, infer TaggedValue> ? TaggedValue : TQueryFnData>(queryKey: TaggedQueryKey, updater: Updater<NoInfer<TInferredQueryFnData> | undefined, NoInfer<TInferredQueryFnData> | undefined>, options?: SetDataOptions): TInferredQueryFnData | undefined;
|
|
37
|
+
getMutationDefaults(mutationKey: MutationKey): MutationObserverOptions<any, any, any, any>;
|
|
38
|
+
getQueryState<TQueryFnData = unknown, TError = DefaultError>(queryKey: QueryKey): QueryState<TQueryFnData, TError> | undefined;
|
|
39
|
+
setMutationDefaults(mutationKey: MutationKey, options: Omit<MutationObserverOptions<any, any, any, any>, "mutationKey">): void;
|
|
40
|
+
setQueryDefaults(queryKey: QueryKey, options: Partial<Omit<QueryObserverOptions<unknown, any, any, any>, "queryKey">>): void;
|
|
41
|
+
getQueryDefaults(queryKey: QueryKey): QueryObserverOptions<any, any, any, any, any>;
|
|
42
|
+
removeQueries(filters?: QueryFilters): void;
|
|
43
|
+
cancelQueries(filters?: QueryFilters, cancelOptions?: CancelOptions): Promise<void>;
|
|
44
|
+
invalidateQueries(filters?: InvalidateQueryFilters, options?: InvalidateOptions): Promise<void>;
|
|
45
|
+
resumePausedMutations(): Promise<import("./mutations/mutation/types").MutationState<any, any, any, any>[]>;
|
|
46
|
+
isFetching(filters?: QueryFilters): number;
|
|
47
|
+
clear(): void;
|
|
48
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BehaviorSubject } from "rxjs";
|
|
2
|
+
export declare class FocusManager {
|
|
3
|
+
#private;
|
|
4
|
+
readonly focused$: BehaviorSubject<boolean>;
|
|
5
|
+
readonly focusRegained$: import("rxjs").Observable<boolean>;
|
|
6
|
+
constructor();
|
|
7
|
+
isFocused(): boolean;
|
|
8
|
+
setFocused(focused?: boolean): void;
|
|
9
|
+
subscribe(fn: () => void): () => void;
|
|
10
|
+
/**
|
|
11
|
+
* @important
|
|
12
|
+
* You do not need that outside of testing. This is bad practice but necessary in order
|
|
13
|
+
* to not mess too much with rq tests files.
|
|
14
|
+
*
|
|
15
|
+
* Use it after mocking to force the manager to hold mocked value.
|
|
16
|
+
*/
|
|
17
|
+
refresh(): void;
|
|
18
|
+
}
|
|
19
|
+
export declare const focusManager: FocusManager;
|
|
@@ -1,30 +1,19 @@
|
|
|
1
|
-
import { type DefaultError } from "@tanstack/react-query";
|
|
2
1
|
import { Mutation } from "../mutation/Mutation";
|
|
3
|
-
import { type QueryClient } from "../../
|
|
2
|
+
import { type QueryClient } from "../../QueryClient";
|
|
4
3
|
import { type MutationFilters } from "../types";
|
|
5
|
-
import { BehaviorSubject } from "rxjs";
|
|
6
4
|
import { type MutationCacheConfig, type MutationCacheNotifyEvent } from "./types";
|
|
7
5
|
import { type MutationOptions, type MutationState } from "../mutation/types";
|
|
6
|
+
import { type DefaultError } from "../../types";
|
|
8
7
|
export declare class MutationCache {
|
|
8
|
+
#private;
|
|
9
9
|
config: MutationCacheConfig;
|
|
10
|
-
protected readonly mutationsSubject: BehaviorSubject<Mutation<any, any, any, any>[]>;
|
|
11
|
-
protected mutations$: import("rxjs").Observable<Mutation<any, any, any, any>[]>;
|
|
12
|
-
protected added$: import("rxjs").Observable<Mutation<any, any, any, any>>;
|
|
13
|
-
protected removed$: import("rxjs").Observable<Mutation<any, any, any, any>>;
|
|
14
|
-
protected stateChange$: import("rxjs").Observable<Mutation<any, any, any, any>>;
|
|
15
10
|
constructor(config?: MutationCacheConfig);
|
|
16
11
|
build<TData, TError, TVariables, TContext>(client: QueryClient, options: MutationOptions<TData, TError, TVariables, TContext>, state?: MutationState<TData, TError, TVariables, TContext>): Mutation<TData, TError, TVariables, TContext>;
|
|
17
12
|
getAll(): Mutation<any, any, any, any>[];
|
|
18
13
|
remove(mutationToRemove: Mutation<any, any, any, any>): void;
|
|
19
14
|
find<TData = unknown, TError = DefaultError, TVariables = any, TContext = unknown>(filters: MutationFilters<TData, TError, TVariables, TContext>): Mutation<TData, TError, TVariables, TContext> | undefined;
|
|
20
|
-
findAll(filters?: MutationFilters): Array<Mutation<any, any, any, any>>;
|
|
21
|
-
observe<
|
|
22
|
-
filters?: MutationFilters<TData>;
|
|
23
|
-
select?: (mutation: Mutation<TData>) => MutationStateSelected;
|
|
24
|
-
}): {
|
|
25
|
-
value$: import("rxjs").Observable<MutationStateSelected[]>;
|
|
26
|
-
lastValue: MutationStateSelected[];
|
|
27
|
-
};
|
|
15
|
+
findAll<TData = unknown, TError = Error, TVariables = any, TContext = unknown>(filters?: MutationFilters<TData, TError, TVariables, TContext>): Array<Mutation<any, any, any, any>>;
|
|
16
|
+
observe(): import("rxjs").Observable<Mutation<any, any, any, any>>;
|
|
28
17
|
/**
|
|
29
18
|
* @important
|
|
30
19
|
* ISO api react-query
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type Observable } from "rxjs";
|
|
2
2
|
import { type DefaultError } from "../../types";
|
|
3
3
|
import { type MutationCache } from "../cache/MutationCache";
|
|
4
4
|
import { type MutationState, type MutationMeta, type MutationOptions } from "./types";
|
|
@@ -9,20 +9,15 @@ interface MutationConfig<TData, TError, TVariables, TContext> {
|
|
|
9
9
|
state?: MutationState<TData, TError, TVariables, TContext>;
|
|
10
10
|
}
|
|
11
11
|
export declare class Mutation<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> {
|
|
12
|
-
|
|
13
|
-
protected observerCount: BehaviorSubject<number>;
|
|
14
|
-
protected destroySubject: Subject<void>;
|
|
15
|
-
protected resetSubject: Subject<void>;
|
|
16
|
-
protected executeSubject: Subject<TVariables>;
|
|
12
|
+
#private;
|
|
17
13
|
state: MutationState<TData, TError, TVariables, TContext>;
|
|
18
14
|
state$: Observable<typeof this.state>;
|
|
19
15
|
options: MutationOptions<TData, TError, TVariables, TContext>;
|
|
20
16
|
observerCount$: Observable<number>;
|
|
21
|
-
|
|
17
|
+
cancelled$: Observable<void>;
|
|
22
18
|
constructor({ options, mutationCache, state }: MutationConfig<TData, TError, TVariables, TContext>);
|
|
23
19
|
get meta(): MutationMeta | undefined;
|
|
24
20
|
setOptions(options?: MutationOptions<TData, TError, TVariables, TContext>): void;
|
|
25
|
-
observeTillFinished(): Observable<MutationState<TData, TError, TVariables, TContext>>;
|
|
26
21
|
/**
|
|
27
22
|
* @important
|
|
28
23
|
* The resulting observable will complete as soon as the mutation
|
|
@@ -30,7 +25,6 @@ export declare class Mutation<TData = unknown, TError = DefaultError, TVariables
|
|
|
30
25
|
*/
|
|
31
26
|
execute(variables: TVariables): Observable<MutationState<TData, TError, TVariables, TContext>>;
|
|
32
27
|
continue(): Observable<MutationState<TData, TError, TVariables, TContext>>;
|
|
33
|
-
|
|
34
|
-
reset(): void;
|
|
28
|
+
cancel(): void;
|
|
35
29
|
}
|
|
36
30
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Observable, type MonoTypeOperatorFunction } from "rxjs";
|
|
2
|
-
import { type DefaultError, type
|
|
2
|
+
import { type DefaultError, type DeprecatedQuery, type QueryResult, type Register } from "../../types";
|
|
3
3
|
import { type MapOperator, type MutationFn, type MutationKey } from "../types";
|
|
4
4
|
export type MutationStatus = "idle" | "pending" | "success" | "error";
|
|
5
5
|
export interface MutationState<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> {
|
|
@@ -15,8 +15,9 @@ export interface MutationState<TData = unknown, TError = unknown, TVariables = v
|
|
|
15
15
|
}
|
|
16
16
|
export type MutationMeta = Register extends {
|
|
17
17
|
mutationMeta: infer TMutationMeta;
|
|
18
|
-
} ? TMutationMeta : Record<string, unknown>;
|
|
18
|
+
} ? TMutationMeta extends Record<string, unknown> ? TMutationMeta : Record<string, unknown> : Record<string, unknown>;
|
|
19
19
|
export interface MutationOptions<TData, TError = DefaultError, TVariables = void, TContext = unknown> {
|
|
20
|
+
networkMode?: "offlineFirst";
|
|
20
21
|
enabled?: boolean;
|
|
21
22
|
retry?: false | number | ((attempt: number, error: unknown) => boolean);
|
|
22
23
|
retryDelay?: number | ((failureCount: number, error: TError) => number);
|
|
@@ -36,7 +37,7 @@ export interface MutationOptions<TData, TError = DefaultError, TVariables = void
|
|
|
36
37
|
* interval is paused until the query finish fetching. This avoid infinite
|
|
37
38
|
* loop of refetch
|
|
38
39
|
*/
|
|
39
|
-
refetchInterval?: number | false | ((data: QueryResult<TData>["data"] | undefined, query:
|
|
40
|
+
refetchInterval?: number | false | ((data: QueryResult<TData>["data"] | undefined, query: DeprecatedQuery) => number | false);
|
|
40
41
|
terminateOnFirstResult?: boolean;
|
|
41
42
|
onMutate?: (variables: TVariables) => Promise<TContext | undefined> | Observable<TContext | undefined> | TContext | undefined;
|
|
42
43
|
onError?: (error: TError, variables: TVariables, context: TContext | undefined) => Promise<unknown> | unknown;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Observable } from "rxjs";
|
|
2
2
|
import { type MutateOptions } from "../types";
|
|
3
|
-
import { type QueryClient } from "../../
|
|
3
|
+
import { type QueryClient } from "../../QueryClient";
|
|
4
4
|
import { type DefaultError } from "../../types";
|
|
5
5
|
import { type MutationObserverOptions, type MutationObserverResult } from "./types";
|
|
6
6
|
import { MutationRunner } from "../runner/MutationRunner";
|
|
@@ -13,8 +13,6 @@ export declare class MutationObserver<TData = unknown, TError = DefaultError, TV
|
|
|
13
13
|
#private;
|
|
14
14
|
protected client: QueryClient;
|
|
15
15
|
protected options: MutationObserverOptions<TData, TError, TVariables, TContext>;
|
|
16
|
-
protected numberOfObservers: number;
|
|
17
|
-
protected mutationRunner: MutationRunner<any, any, any, TContext>;
|
|
18
16
|
/**
|
|
19
17
|
* @important
|
|
20
18
|
* Used to maintain persistance to latest mutation. This ensure
|
|
@@ -22,10 +20,6 @@ export declare class MutationObserver<TData = unknown, TError = DefaultError, TV
|
|
|
22
20
|
* - mutation mutate options are run on finish
|
|
23
21
|
*/
|
|
24
22
|
readonly observed$: Observable<never>;
|
|
25
|
-
readonly result$: Observable<{
|
|
26
|
-
state: MutationObserverResult<TData, TError, TVariables, TContext>;
|
|
27
|
-
options: MutateOptions<TData, TError, TVariables, TContext> | undefined;
|
|
28
|
-
}>;
|
|
29
23
|
constructor(client: QueryClient, options?: MutationObserverOptions<TData, TError, TVariables, TContext>, mutationRunner?: MutationRunner<any, any, any, TContext>);
|
|
30
24
|
setOptions(options: MutationObserverOptions<TData, TError, TVariables, TContext>): void;
|
|
31
25
|
protected getObserverResultFromState: (state: MutationState<any, any, any, any>) => MutationObserverResult<TData, TError, TVariables, TContext>;
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Observable } from "rxjs";
|
|
2
2
|
import { type DefaultError } from "../../types";
|
|
3
3
|
import { type MutationObserverOptions } from "../observers/types";
|
|
4
4
|
import { type Mutation } from "../mutation/Mutation";
|
|
5
5
|
import { type MutationOptions, type MutationState } from "../mutation/types";
|
|
6
|
+
interface TriggerSubject<TData, TError = DefaultError, TVariables = void, TContext = unknown> {
|
|
7
|
+
args: TVariables;
|
|
8
|
+
options: MutationOptions<TData, TError, TVariables, TContext>;
|
|
9
|
+
mutation: Mutation<TData, TError, TVariables, TContext>;
|
|
10
|
+
}
|
|
6
11
|
export declare class MutationRunner<TData, TError = DefaultError, TVariables = void, TContext = unknown> {
|
|
7
|
-
|
|
8
|
-
args: TVariables;
|
|
9
|
-
options: MutationOptions<TData, TError, TVariables, TContext>;
|
|
10
|
-
mutation: Mutation<TData, TError, TVariables, TContext>;
|
|
11
|
-
}>;
|
|
12
|
+
#private;
|
|
12
13
|
state$: Observable<MutationState<TData, TError, TVariables, TContext>>;
|
|
13
14
|
constructor({ __queryFinalizeHook }?: MutationObserverOptions<TData, TError, TVariables, TContext>);
|
|
14
|
-
trigger({ args, options, mutation }:
|
|
15
|
+
trigger({ args, options, mutation }: TriggerSubject<TData, TError, TVariables, TContext>): void;
|
|
15
16
|
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BehaviorSubject } from "rxjs";
|
|
2
|
+
export declare class OnlineManager {
|
|
3
|
+
protected isOnlineSubject: BehaviorSubject<boolean>;
|
|
4
|
+
readonly online$: import("rxjs").Observable<boolean>;
|
|
5
|
+
readonly backToOnline$: import("rxjs").Observable<boolean>;
|
|
6
|
+
constructor();
|
|
7
|
+
isOnline(): boolean;
|
|
8
|
+
setOnline(online: boolean): void;
|
|
9
|
+
}
|
|
10
|
+
export declare const onlineManager: OnlineManager;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type DefaultError } from "../../types";
|
|
2
|
+
import { type QueryKey } from "../../keys/types";
|
|
3
|
+
import { Query } from "../query/Query";
|
|
4
|
+
import { type QueryOptions, type QueryFilters } from "../types";
|
|
5
|
+
import { type QueryClient } from "../../QueryClient";
|
|
6
|
+
import { type QueryState } from "../query/types";
|
|
7
|
+
import { type WithRequired } from "../../../../utils/types";
|
|
8
|
+
import { type QueryCacheConfig, type QueryCacheListener } from "./types";
|
|
9
|
+
export interface QueryStore {
|
|
10
|
+
has: (queryHash: string) => boolean;
|
|
11
|
+
set: (queryHash: string, query: Query) => void;
|
|
12
|
+
get: (queryHash: string) => Query | undefined;
|
|
13
|
+
delete: (queryHash: string) => void;
|
|
14
|
+
values: () => IterableIterator<Query>;
|
|
15
|
+
}
|
|
16
|
+
export declare class QueryCache {
|
|
17
|
+
#private;
|
|
18
|
+
config: QueryCacheConfig;
|
|
19
|
+
constructor(config?: QueryCacheConfig);
|
|
20
|
+
mount(): void;
|
|
21
|
+
unmount(): void;
|
|
22
|
+
notify(event: Parameters<QueryCacheListener>[0]): void;
|
|
23
|
+
observeIsFetching(filters?: QueryFilters): import("rxjs").Observable<number>;
|
|
24
|
+
getAll(): Query[];
|
|
25
|
+
findAll(filters?: QueryFilters): Query[];
|
|
26
|
+
build<TQueryFnData, TError, TData, TQueryKey extends QueryKey>(client: QueryClient, options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>, state?: QueryState<TData, TError>): Query<TQueryFnData, TError, TData, TQueryKey>;
|
|
27
|
+
add(query: Query<any, any, any, any>): void;
|
|
28
|
+
get<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(queryHash: string): Query<TQueryFnData, TError, TData, TQueryKey> | undefined;
|
|
29
|
+
find<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(filters: WithRequired<QueryFilters, "queryKey">): Query<TQueryFnData, TError, TData> | undefined;
|
|
30
|
+
subscribe(fn: QueryCacheListener): () => void;
|
|
31
|
+
remove(query: Query<any, any, any, any>): void;
|
|
32
|
+
clear(): void;
|
|
33
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type NotifyEvent } from "../../mutations/cache/types";
|
|
2
|
+
import { type DefaultError } from "../../types";
|
|
3
|
+
import { type QueryObserver } from "../observer/QueryObserver";
|
|
4
|
+
import { type Query } from "../query/Query";
|
|
5
|
+
import { type Action } from "../query/types";
|
|
6
|
+
export interface QueryCacheConfig {
|
|
7
|
+
onError?: (error: DefaultError, query: Query<unknown, unknown, unknown>) => void;
|
|
8
|
+
onSuccess?: (data: unknown, query: Query<unknown, unknown, unknown>) => void;
|
|
9
|
+
onSettled?: (data: unknown | undefined, error: DefaultError | null, query: Query<unknown, unknown, unknown>) => void;
|
|
10
|
+
}
|
|
11
|
+
interface NotifyEventQueryAdded extends NotifyEvent {
|
|
12
|
+
type: "added";
|
|
13
|
+
query: Query<any, any, any, any>;
|
|
14
|
+
}
|
|
15
|
+
interface NotifyEventQueryRemoved extends NotifyEvent {
|
|
16
|
+
type: "removed";
|
|
17
|
+
query: Query<any, any, any, any>;
|
|
18
|
+
}
|
|
19
|
+
interface NotifyEventQueryUpdated extends NotifyEvent {
|
|
20
|
+
type: "updated";
|
|
21
|
+
query: Query<any, any, any, any>;
|
|
22
|
+
action: Action<any, any>;
|
|
23
|
+
}
|
|
24
|
+
interface NotifyEventQueryObserverAdded extends NotifyEvent {
|
|
25
|
+
type: "observerAdded";
|
|
26
|
+
query: Query<any, any, any, any>;
|
|
27
|
+
observer: QueryObserver<any, any, any, any, any>;
|
|
28
|
+
}
|
|
29
|
+
interface NotifyEventQueryObserverRemoved extends NotifyEvent {
|
|
30
|
+
type: "observerRemoved";
|
|
31
|
+
query: Query<any, any, any, any>;
|
|
32
|
+
observer: QueryObserver<any, any, any, any, any>;
|
|
33
|
+
}
|
|
34
|
+
interface NotifyEventQueryObserverResultsUpdated extends NotifyEvent {
|
|
35
|
+
type: "observerResultsUpdated";
|
|
36
|
+
query: Query<any, any, any, any>;
|
|
37
|
+
}
|
|
38
|
+
interface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent {
|
|
39
|
+
type: "observerOptionsUpdated";
|
|
40
|
+
query: Query<any, any, any, any>;
|
|
41
|
+
observer: QueryObserver<any, any, any, any, any>;
|
|
42
|
+
}
|
|
43
|
+
export type QueryCacheNotifyEvent = NotifyEventQueryAdded | NotifyEventQueryRemoved | NotifyEventQueryUpdated | NotifyEventQueryObserverAdded | NotifyEventQueryObserverRemoved | NotifyEventQueryObserverResultsUpdated | NotifyEventQueryObserverOptionsUpdated;
|
|
44
|
+
export type QueryCacheListener = (event: QueryCacheNotifyEvent) => void;
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { type Observable, Subject } from "rxjs";
|
|
2
|
+
import { type QueryClient } from "../../QueryClient";
|
|
3
|
+
import { type QueryKey } from "../../keys/types";
|
|
4
|
+
import { type DefaultError } from "../../types";
|
|
5
|
+
import { type Query } from "../query/Query";
|
|
6
|
+
import { type FetchOptions } from "../query/types";
|
|
7
|
+
import { type RefetchOptions } from "../types";
|
|
8
|
+
import { type QueryObserverResult, type QueryObserverOptions, type DefaultedQueryObserverOptions, type QueryObserverListener } from "./types";
|
|
9
|
+
export interface ObserverFetchOptions extends FetchOptions {
|
|
10
|
+
throwOnError?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface NotifyOptions {
|
|
13
|
+
listeners?: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface LastResult<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey = QueryKey> {
|
|
16
|
+
state: Query<TQueryFnData, TError, TQueryData, TQueryKey>["state"];
|
|
17
|
+
result: QueryObserverResult<TData, TError>;
|
|
18
|
+
options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
|
|
19
|
+
selectResult?: TData;
|
|
20
|
+
selectError?: null | TError;
|
|
21
|
+
select?: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>["select"] | null;
|
|
22
|
+
}
|
|
23
|
+
export declare class QueryObserver<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
|
|
24
|
+
#private;
|
|
25
|
+
options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
|
|
26
|
+
/**
|
|
27
|
+
* Used to subscribe to changes in either query or options (or both).
|
|
28
|
+
* We need to be able to track change to both of them at the same time
|
|
29
|
+
* in order to react accordingly and in order (such as refetch on options change)
|
|
30
|
+
*/
|
|
31
|
+
readonly queryUpdateSubject: Subject<{
|
|
32
|
+
options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
|
|
33
|
+
query: Query<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
34
|
+
}>;
|
|
35
|
+
constructor(client: QueryClient, options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>);
|
|
36
|
+
protected bindMethods(): void;
|
|
37
|
+
setOptions(options?: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): Query<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
38
|
+
protected buildQuery(options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): Query<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
39
|
+
protected getObserverResultFromQuery: ({ options, query, optimisticResult, prevResult: { result: prevResult, options: prevResultOptions, state: prevResultState, select: prevSelect, selectError: prevSelectError, selectResult: prevSelectResult } }: {
|
|
40
|
+
query: Query<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
41
|
+
options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
|
|
42
|
+
optimisticResult?: boolean | undefined;
|
|
43
|
+
prevResult: Partial<LastResult<TQueryFnData, TError, TData, TQueryData, TQueryKey>>;
|
|
44
|
+
}) => {
|
|
45
|
+
result: QueryObserverResult<TData, TError>;
|
|
46
|
+
selectError: TError | null | undefined;
|
|
47
|
+
select: ((data: TQueryData) => TData) | null;
|
|
48
|
+
selectResult: TData | undefined;
|
|
49
|
+
};
|
|
50
|
+
getCurrentResult(): QueryObserverResult<TData, TError>;
|
|
51
|
+
getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
52
|
+
getOptimisticResult(options: DefaultedQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>): QueryObserverResult<TData, TError>;
|
|
53
|
+
protected updateResult({ query, result, selectError, select, selectResult }: Pick<LastResult<TQueryFnData, TError, TData, TQueryData, TQueryKey>, "select" | "selectError" | "result" | "selectResult"> & {
|
|
54
|
+
query: Query<TQueryFnData, TError, TQueryData, TQueryKey>;
|
|
55
|
+
}): void;
|
|
56
|
+
refetch({ ...options }?: RefetchOptions): Promise<QueryObserverResult<TData, TError>>;
|
|
57
|
+
protected fetch(fetchOptions?: ObserverFetchOptions): Promise<QueryObserverResult<TData, TError>>;
|
|
58
|
+
/**
|
|
59
|
+
* feature parity with rq, not used internally
|
|
60
|
+
*/
|
|
61
|
+
subscribe(listener: QueryObserverListener<TData, TError>): () => void;
|
|
62
|
+
observe(): Observable<QueryObserverResult<TData, TError>>;
|
|
63
|
+
destroy(): void;
|
|
64
|
+
}
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Query } from "../query/Query";
|
|
2
|
+
import { type NetworkMode } from "../types";
|
|
3
|
+
import { type QueryObserverOptions } from "./types";
|
|
4
|
+
export declare function isStale(query: Query<any, any, any, any>, options: QueryObserverOptions<any, any, any, any, any>): boolean;
|
|
5
|
+
export declare function shouldFetchOnMount(query: Query<any, any, any, any>, options: QueryObserverOptions<any, any, any, any, any>): boolean;
|
|
6
|
+
export declare function shouldFetchOptionally(query: Query<any, any, any, any>, prevQuery: Query<any, any, any, any>, options: QueryObserverOptions<any, any, any, any, any>, prevOptions: QueryObserverOptions<any, any, any, any, any>): boolean;
|
|
7
|
+
export declare function shouldFetchOnWindowFocus(query: Query<any, any, any, any>, options: QueryObserverOptions<any, any, any, any, any>): boolean;
|
|
8
|
+
export declare function shouldFetchOn(query: Query<any, any, any, any>, options: QueryObserverOptions<any, any, any, any, any>, field: (typeof options)["refetchOnMount"] & (typeof options)["refetchOnWindowFocus"] & (typeof options)["refetchOnReconnect"]): boolean;
|
|
9
|
+
export declare function canFetch(networkMode: NetworkMode | undefined): boolean;
|