batchloader
Version:
BatchLoader is a utility for data fetching layer to reduce requests via batching written in TypeScript. Inspired by Facebook's DataLoader
22 lines • 977 B
TypeScript
import { MappedBatchLoader } from './mappedbatchloader';
import { IBatchLoader, MaybePromise } from './types';
export interface ICache<Key, Value> {
clear(): void;
delete(key: Key): boolean;
get(key: Key): Value | undefined;
set(key: Key, value: Value): void;
}
export declare class CacheLoader<Key, Value> implements IBatchLoader<Key, Value>, ICache<Key, MaybePromise<Value>> {
protected loader: IBatchLoader<Key, Value>;
cache: ICache<Key, Value>;
promiseCache: Map<Key, Promise<Value>>;
constructor(loader: IBatchLoader<Key, Value>, cache?: ICache<Key, Value>);
load(key: Key): Promise<Value>;
loadMany(keys: Key[]): Promise<Value[]>;
mapLoader<MappedValue>(mapFn: (value: Value, key: Key) => MappedValue): MappedBatchLoader<Key, Value, MappedValue>;
get(key: Key): Promise<Value> | undefined;
set(key: Key, value: Value): void;
delete(key: Key): boolean;
clear(): void;
}
//# sourceMappingURL=cacheloader.d.ts.map