UNPKG

@gravity-ui/data-source

Version:
32 lines (31 loc) 2.34 kB
import type { Data } from '@normy/core'; import type { InvalidateQueryFilters, QueryClientConfig, QueryKey } from '@tanstack/react-query'; import { QueryClient } from '@tanstack/react-query'; import { type AnyDataSource, type DataManager, type DataSourceParams, type DataSourceTag, type Normalizer, type NormalizerConfig } from '../core'; import type { InvalidateOptions, InvalidateRepeatOptions } from '../core/types/DataManagerOptions'; import type { QueryNormalizer } from './types/normalizer'; export interface ClientDataManagerConfig extends QueryClientConfig { normalizerConfig?: NormalizerConfig | boolean; } export declare class ClientDataManager implements DataManager { readonly queryClient: QueryClient; readonly normalizer?: Normalizer | undefined; readonly queryNormalizer?: QueryNormalizer | undefined; readonly normalizerConfig?: NormalizerConfig | boolean; constructor(config?: ClientDataManagerConfig); optimisticUpdate(mutationData: Data, queryKey?: QueryKey, queryData?: Data): void; invalidateData(data: Data, queryKey?: QueryKey): void; update(data: Data): void; invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>; invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>; invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource, invalidateOptions?: InvalidateOptions): Promise<void>; resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>; invalidateParams<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>, invalidateOptions?: InvalidateOptions): Promise<void>; resetParams<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>): Promise<void>; invalidateSourceTags<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>, invalidateOptions?: InvalidateOptions): Promise<void>; protected invalidateQueries(filters: InvalidateQueryFilters, invalidateOptions?: InvalidateOptions): Promise<void>; protected repeatInvalidate(invalidate: () => Promise<void>, repeat?: InvalidateRepeatOptions): void; private createNormalize; private invalidateQuery; private optimisticUpdateQuery; }