layered-loader
Version:
Data loader with support for caching and fallback data sources
15 lines (14 loc) • 952 B
TypeScript
import type { DataSource } from './types/DataSources';
export type GeneratedDataSourceParams<LoadedValue, LoaderParams = undefined, LoaderManyParams = LoaderParams> = {
name?: string;
dataSourceGetOneFn?: (loadParams: LoaderParams) => Promise<LoadedValue | undefined | null>;
dataSourceGetManyFn?: (keys: string[], loadParams?: LoaderManyParams) => Promise<LoadedValue[]>;
};
export declare class GeneratedDataSource<LoadedValue, LoadParams = undefined, LoadManyParams = LoadParams extends string ? undefined : LoadParams> implements DataSource<LoadedValue, LoadParams, LoadManyParams> {
private readonly getOneFn;
private readonly getManyFn;
readonly name: string;
constructor(params: GeneratedDataSourceParams<LoadedValue, LoadParams, LoadManyParams>);
get(loadParams: LoadParams): Promise<LoadedValue | undefined | null>;
getMany(keys: string[], loadParams: LoadManyParams | undefined): Promise<LoadedValue[]>;
}