generated from TBD54566975/tbd-project-template
/
query-types.ts
61 lines (47 loc) · 1.36 KB
/
query-types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
export type QueryOptions = {
sortProperty: string;
sortDirection?: SortDirection;
limit?: number;
cursor?: PaginationCursor;
};
export enum SortDirection {
Descending = -1,
Ascending = 1
}
export type KeyValues = { [key:string]: string | number | boolean | string[] | number[] };
export type EqualFilter = string | number | boolean;
export type OneOfFilter = EqualFilter[];
export type RangeValue = string | number;
/**
* "greater than" or "greater than or equal to" range condition. `gt` and `gte` are mutually exclusive.
*/
export type GT = ({ gt: RangeValue } & { gte?: never }) | ({ gt?: never } & { gte: RangeValue });
/**
* "less than" or "less than or equal to" range condition. `lt`, `lte` are mutually exclusive.
*/
export type LT = ({ lt: RangeValue } & { lte?: never }) | ({ lt?: never } & { lte: RangeValue });
/**
* Ranger filter. 1 condition is required.
*/
export type RangeFilter = (GT | LT) & Partial<GT> & Partial<LT>;
export type StartsWithFilter = {
startsWith: string;
};
export type FilterValue = EqualFilter | OneOfFilter | RangeFilter;
export type Filter = {
[property: string]: FilterValue;
};
export type RangeCriterion = {
/**
* Inclusive starting date-time.
*/
from?: string;
/**
* Inclusive end date-time.
*/
to?: string;
};
export type PaginationCursor = {
messageCid: string;
value: string | number;
};