@@ -34,20 +34,24 @@ export type QueryableKeys<T> = {
3434 [K in keyof T]: ExtractQueryValue<T [K]> extends never ? never : K;
3535}[keyof T];
3636
37+ export type QueryableFieldValue<T , K> = K extends keyof T
38+ ? ExtractQueryValue<T [K]>
39+ : never;
40+
3741export type QueryBuilder<T > = {
38- equal: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue< T [K] >) => string;
39- notEqual: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue< T [K] >) => string;
40- lessThan: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue< T [K] >) => string;
41- lessThanEqual: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue< T [K] >) => string;
42- greaterThan: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue< T [K] >) => string;
43- greaterThanEqual: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue< T [K] >) => string;
44- contains: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue< T [K] >) => string;
42+ equal: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue< T , K >) => string;
43+ notEqual: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue< T , K >) => string;
44+ lessThan: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue< T , K >) => string;
45+ lessThanEqual: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue< T , K >) => string;
46+ greaterThan: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue< T , K >) => string;
47+ greaterThanEqual: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue< T , K >) => string;
48+ contains: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue< T , K >) => string;
4549 search: <K extends QueryableKeys<T>>(field: K, value: string) => string;
4650 isNull: <K extends QueryableKeys<T>>(field: K) => string;
4751 isNotNull: <K extends QueryableKeys<T>>(field: K) => string;
4852 startsWith: <K extends QueryableKeys<T>>(field: K, value: string) => string;
4953 endsWith: <K extends QueryableKeys<T>>(field: K, value: string) => string;
50- between: <K extends QueryableKeys<T>>(field: K, start: ExtractQueryValue< T [K] >, end: ExtractQueryValue< T [K] >) => string;
54+ between: <K extends QueryableKeys<T>>(field: K, start: QueryableFieldValue< T , K >, end: QueryableFieldValue< T , K >) => string;
5155 select: <K extends keyof T>(fields: K[]) => string;
5256 orderAsc: <K extends keyof T>(field: K) => string;
5357 orderDesc: <K extends keyof T>(field: K) => string;
0 commit comments