layered-loader
Version:
Data loader with support for caching and fallback data sources
21 lines (20 loc) • 1.86 kB
TypeScript
import { AbstractCache } from './AbstractCache';
import type { InMemoryGroupCacheConfiguration } from './memory/InMemoryGroupCache';
import type { GroupNotificationPublisher } from './notifications/GroupNotificationPublisher';
import type { GroupCache } from './types/DataSources';
import type { GetManyResult, SynchronousGroupCache } from './types/SyncDataSources';
export declare abstract class AbstractGroupCache<LoadedValue, LoadParams = string> extends AbstractCache<LoadedValue, Map<string, Promise<LoadedValue | undefined | null> | undefined>, GroupCache<LoadedValue>, SynchronousGroupCache<LoadedValue>, InMemoryGroupCacheConfiguration, GroupNotificationPublisher<LoadedValue>, LoadParams> {
isGroupCache(): boolean;
invalidateCacheForGroup(group: string): Promise<void>;
getInMemoryOnly(loadParams: LoadParams, group: string): LoadedValue | undefined | null;
getManyInMemoryOnly(keys: string[], group: string): GetManyResult<LoadedValue>;
getAsyncOnly(loadParams: LoadParams, group: string): Promise<LoadedValue | undefined | null>;
getManyAsyncOnly(keys: string[], group: string, loadParams?: LoadParams): Promise<GetManyResult<LoadedValue>>;
get(loadParams: LoadParams, group: string): Promise<LoadedValue | undefined | null>;
getMany(keys: string[], group: string, loadParams?: LoadParams): Promise<LoadedValue[]>;
invalidateCacheFor(key: string, group: string): Promise<void>;
protected resolveGroupValue(key: string, group: string, _loadParams?: LoadParams): Promise<LoadedValue | undefined | null>;
protected resolveManyGroupValues(keys: string[], group: string, _loadParams?: LoadParams): Promise<GetManyResult<LoadedValue>>;
protected resolveGroupLoads(group: string): Map<any, any>;
protected deleteGroupRunningLoad(groupLoads: Map<string, unknown>, group: string, key: string): void;
}