-
Notifications
You must be signed in to change notification settings - Fork 364
/
query.d.ts
108 lines (102 loc) · 1.71 KB
/
query.d.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
// Copyright IBM Corp. 2018. All Rights Reserved.
// Node module: loopback-datasource-juggler
// This file is licensed under the MIT License.
// License text available at https://opensource.org/licenses/MIT
/**
* Operators for where clauses
*/
export declare enum Operators {
/**
* Equal operator (=)
*/
eq = 'eq',
/**
* Not equal operator (!=)
*/
neq = 'neq',
/**
* Greater than operator (>)
*/
gt = 'gt',
/**
* Greater than or equal operator (>=)
*/
gte = 'gte',
/**
* Less than operator (<)
*/
lt = 'lt',
/**
* Less than or equal (<=)
*/
lte = 'lte',
/**
* IN operator. For example, `{type: {inq: ['a', 'b', 'c']}}`
*/
inq = 'inq',
/**
* Between operator. For example, `{age: {between: [18, 40]}}`
*/
between = 'between',
/**
* Exists operator
*/
exists = 'exists',
/**
* AND operator
*/
and = 'and',
/**
* OR operator
*/
or = 'or',
}
/**
* Matching criteria
*/
export interface Condition {
eq?: any;
neq?: any;
gt?: any;
gte?: any;
lt?: any;
lte?: any;
inq?: any[];
between?: any[];
exists?: boolean;
and?: Where[];
or?: Where[];
}
/**
* Where object
*/
export interface Where {
and?: Where[]; // AND
or?: Where[]; // OR
[property: string]: Condition | any;
}
/**
* Selection of fields
*/
export interface Fields {
[property: string]: boolean;
}
/**
* Inclusion of related items
*/
export interface Inclusion {
relation: string;
scope?: Filter;
}
/**
* Query filter object
*/
export interface Filter {
where?: Where;
fields?: string | string[] | Fields;
order?: string | string[];
limit?: number;
skip?: number;
offset?: number;
include?: string | string[] | Inclusion[];
}