work-graph-simple/types.d.ts
2025-07-02 15:35:38 -04:00

16 lines
515 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:(index:number, ...args:Sized)=>[id:string, data:Loaded],
//save:(commitSave:(...args:Sized)=>Sized, id:string, data:Loaded) => Sized
}) => {
list:Record<string, Loaded>,
find:(id:string)=>Loaded,
load:()=>Promise<void>,
save:()=>Promise<void>
}