work-graph-simple/types.d.ts

15 lines
506 B
TypeScript

export type Row<
L extends number,
T extends any[] = []
> = T["length"] extends L ? T : Row<L, [string, ...T]>;
export type Builder = <Count extends number, Loaded, Sized extends Row<Count>>(params:
{
path:string,
cols:Count,
load:(commitLoad:(id:string, data:Loaded)=>Sized, ...args:Sized)=>[id:string, data:Loaded],
save:(commitSave:(...args:Sized)=>Sized, internal:Loaded) => Sized
}) => {
list:Record<string, Loaded>,
load:()=>Promise<void>,
save:()=>Promise<void>
}