mutation.d.ts 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import { Removable } from './removable';
  2. import type { MutationMeta, MutationOptions, MutationStatus } from './types';
  3. import type { MutationCache } from './mutationCache';
  4. import type { MutationObserver } from './mutationObserver';
  5. import type { Logger } from './logger';
  6. interface MutationConfig<TData, TError, TVariables, TContext> {
  7. mutationId: number;
  8. mutationCache: MutationCache;
  9. options: MutationOptions<TData, TError, TVariables, TContext>;
  10. logger?: Logger;
  11. defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>;
  12. state?: MutationState<TData, TError, TVariables, TContext>;
  13. meta?: MutationMeta;
  14. }
  15. export interface MutationState<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> {
  16. context: TContext | undefined;
  17. data: TData | undefined;
  18. error: TError | null;
  19. failureCount: number;
  20. failureReason: TError | null;
  21. isPaused: boolean;
  22. status: MutationStatus;
  23. variables: TVariables | undefined;
  24. }
  25. interface FailedAction<TError> {
  26. type: 'failed';
  27. failureCount: number;
  28. error: TError | null;
  29. }
  30. interface LoadingAction<TVariables, TContext> {
  31. type: 'loading';
  32. variables?: TVariables;
  33. context?: TContext;
  34. }
  35. interface SuccessAction<TData> {
  36. type: 'success';
  37. data: TData;
  38. }
  39. interface ErrorAction<TError> {
  40. type: 'error';
  41. error: TError;
  42. }
  43. interface PauseAction {
  44. type: 'pause';
  45. }
  46. interface ContinueAction {
  47. type: 'continue';
  48. }
  49. interface SetStateAction<TData, TError, TVariables, TContext> {
  50. type: 'setState';
  51. state: MutationState<TData, TError, TVariables, TContext>;
  52. }
  53. export declare type Action<TData, TError, TVariables, TContext> = ContinueAction | ErrorAction<TError> | FailedAction<TError> | LoadingAction<TVariables, TContext> | PauseAction | SetStateAction<TData, TError, TVariables, TContext> | SuccessAction<TData>;
  54. export declare class Mutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> extends Removable {
  55. state: MutationState<TData, TError, TVariables, TContext>;
  56. options: MutationOptions<TData, TError, TVariables, TContext>;
  57. mutationId: number;
  58. private observers;
  59. private defaultOptions?;
  60. private mutationCache;
  61. private logger;
  62. private retryer?;
  63. constructor(config: MutationConfig<TData, TError, TVariables, TContext>);
  64. setOptions(options?: MutationOptions<TData, TError, TVariables, TContext>): void;
  65. get meta(): MutationMeta | undefined;
  66. setState(state: MutationState<TData, TError, TVariables, TContext>): void;
  67. addObserver(observer: MutationObserver<any, any, any, any>): void;
  68. removeObserver(observer: MutationObserver<any, any, any, any>): void;
  69. protected optionalRemove(): void;
  70. continue(): Promise<unknown>;
  71. execute(): Promise<TData>;
  72. private dispatch;
  73. }
  74. export declare function getDefaultState<TData, TError, TVariables, TContext>(): MutationState<TData, TError, TVariables, TContext>;
  75. export {};
  76. //# sourceMappingURL=mutation.d.ts.map