query.d.ts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import { Removable } from './removable';
  2. import type { CancelOptions, FetchStatus, QueryKey, QueryMeta, QueryOptions, QueryStatus, SetDataOptions } from './types';
  3. import type { QueryCache } from './queryCache';
  4. import type { QueryObserver } from './queryObserver';
  5. import type { Logger } from './logger';
  6. interface QueryConfig<TQueryFnData, TError, TData, TQueryKey extends QueryKey = QueryKey> {
  7. cache: QueryCache;
  8. queryKey: TQueryKey;
  9. queryHash: string;
  10. logger?: Logger;
  11. options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>;
  12. defaultOptions?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>;
  13. state?: QueryState<TData, TError>;
  14. }
  15. export interface QueryState<TData = unknown, TError = unknown> {
  16. data: TData | undefined;
  17. dataUpdateCount: number;
  18. dataUpdatedAt: number;
  19. error: TError | null;
  20. errorUpdateCount: number;
  21. errorUpdatedAt: number;
  22. fetchFailureCount: number;
  23. fetchFailureReason: TError | null;
  24. fetchMeta: any;
  25. isInvalidated: boolean;
  26. status: QueryStatus;
  27. fetchStatus: FetchStatus;
  28. }
  29. export interface FetchContext<TQueryFnData, TError, TData, TQueryKey extends QueryKey = QueryKey> {
  30. fetchFn: () => unknown | Promise<unknown>;
  31. fetchOptions?: FetchOptions;
  32. signal?: AbortSignal;
  33. options: QueryOptions<TQueryFnData, TError, TData, any>;
  34. queryKey: TQueryKey;
  35. state: QueryState<TData, TError>;
  36. }
  37. export interface QueryBehavior<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
  38. onFetch: (context: FetchContext<TQueryFnData, TError, TData, TQueryKey>) => void;
  39. }
  40. export interface FetchOptions {
  41. cancelRefetch?: boolean;
  42. meta?: any;
  43. }
  44. interface FailedAction<TError> {
  45. type: 'failed';
  46. failureCount: number;
  47. error: TError;
  48. }
  49. interface FetchAction {
  50. type: 'fetch';
  51. meta?: any;
  52. }
  53. interface SuccessAction<TData> {
  54. data: TData | undefined;
  55. type: 'success';
  56. dataUpdatedAt?: number;
  57. manual?: boolean;
  58. }
  59. interface ErrorAction<TError> {
  60. type: 'error';
  61. error: TError;
  62. }
  63. interface InvalidateAction {
  64. type: 'invalidate';
  65. }
  66. interface PauseAction {
  67. type: 'pause';
  68. }
  69. interface ContinueAction {
  70. type: 'continue';
  71. }
  72. interface SetStateAction<TData, TError> {
  73. type: 'setState';
  74. state: Partial<QueryState<TData, TError>>;
  75. setStateOptions?: SetStateOptions;
  76. }
  77. export declare type Action<TData, TError> = ContinueAction | ErrorAction<TError> | FailedAction<TError> | FetchAction | InvalidateAction | PauseAction | SetStateAction<TData, TError> | SuccessAction<TData>;
  78. export interface SetStateOptions {
  79. meta?: any;
  80. }
  81. export declare class Query<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends Removable {
  82. queryKey: TQueryKey;
  83. queryHash: string;
  84. options: QueryOptions<TQueryFnData, TError, TData, TQueryKey>;
  85. initialState: QueryState<TData, TError>;
  86. revertState?: QueryState<TData, TError>;
  87. state: QueryState<TData, TError>;
  88. isFetchingOptimistic?: boolean;
  89. private cache;
  90. private logger;
  91. private promise?;
  92. private retryer?;
  93. private observers;
  94. private defaultOptions?;
  95. private abortSignalConsumed;
  96. constructor(config: QueryConfig<TQueryFnData, TError, TData, TQueryKey>);
  97. get meta(): QueryMeta | undefined;
  98. private setOptions;
  99. protected optionalRemove(): void;
  100. setData(newData: TData, options?: SetDataOptions & {
  101. manual: boolean;
  102. }): TData;
  103. setState(state: Partial<QueryState<TData, TError>>, setStateOptions?: SetStateOptions): void;
  104. cancel(options?: CancelOptions): Promise<void>;
  105. destroy(): void;
  106. reset(): void;
  107. isActive(): boolean;
  108. isDisabled(): boolean;
  109. isStale(): boolean;
  110. isStaleByTime(staleTime?: number): boolean;
  111. onFocus(): void;
  112. onOnline(): void;
  113. addObserver(observer: QueryObserver<any, any, any, any, any>): void;
  114. removeObserver(observer: QueryObserver<any, any, any, any, any>): void;
  115. getObserversCount(): number;
  116. invalidate(): void;
  117. fetch(options?: QueryOptions<TQueryFnData, TError, TData, TQueryKey>, fetchOptions?: FetchOptions): Promise<TData>;
  118. private dispatch;
  119. }
  120. export {};
  121. //# sourceMappingURL=query.d.ts.map