mirror: A tiny/fast dataloader implementation
0

Configure Feed

Select the types of activity you want to include in your feed.

chore: adds types tests

Marais Rossouw (May 23, 2023, 10:04 AM +1000) 424637eb 908c3aaa

+34
+34
src/index.types.ts
··· 1 + import * as dldr from '.'; 2 + 3 + declare function assert<T>(thing: T): void; 4 + 5 + declare function loadFn<T, R = T>(keys: T[]): Promise<R[]>; 6 + 7 + type User = { name: string }; 8 + type Comment = { text: string }; 9 + 10 + assert<Promise<string>>(dldr.load(loadFn<string>, 'test')); 11 + assert<Promise<string>>(dldr.load(loadFn<string>, 'test', 'test')); 12 + 13 + // @ts-expect-error 14 + assert<Promise<string>>(dldr.load(loadFn<string>, 'test', 123)); 15 + 16 + assert<Promise<number>>(dldr.load(loadFn<number>, 123)); 17 + assert<Promise<number>>(dldr.load(loadFn<number>, 123, '123')); 18 + 19 + assert<Promise<User>>(dldr.load(loadFn<string, User>, '1')); 20 + // @ts-expect-error 21 + assert<Promise<Comment>>(dldr.load(loadFn<string, User>, '1')); 22 + 23 + // @ts-expect-error 24 + assert<Promise<User>>(dldr.load(loadFn<string, User>, '1', 1)); 25 + 26 + assert<Promise<User>>(dldr.load(loadFn<{ id: string }, User>, { id: '123' })); 27 + 28 + // @ts-expect-error 29 + assert<Promise<User>>(dldr.load(loadFn<{ id: string }, User>, { id: 123 })); 30 + 31 + assert<Promise<User>>(dldr.load(loadFn<{ id: string }, User>, { id: '123' }, '123')); 32 + 33 + // @ts-expect-error 34 + assert<Promise<User>>(dldr.load(loadFn<{ id: string }, User>, { id: '123' }, 123));