-
Notifications
You must be signed in to change notification settings - Fork 7
/
interfaces.d.ts
98 lines (89 loc) · 3.91 KB
/
interfaces.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
export interface Keywords<T> {
select: T;
orderBy?: Array<string> | string;
desc?: boolean;
limit?: number;
offset?: number;
distinct?: boolean;
}
export interface KeywordsWithExclude<T> {
exclude: T;
orderBy?: Array<string> | string;
desc?: boolean;
limit?: number;
offset?: number;
distinct?: boolean;
}
export interface KeywordsWithoutSelect {
orderBy?: Array<string> | string;
desc?: boolean;
limit?: number;
offset?: number;
distinct?: boolean;
}
export interface VirtualKeywordsSelect<T, K> {
select: K;
rank?: true;
bm25?: Record<keyof Omit<T, "rowid">, number>;
limit?: number;
offset?: number;
}
export interface VirtualKeywordsHighlight<T> {
rank?: true;
bm25?: Record<keyof Omit<T, "rowid">, number>;
highlight: { column: keyof T, tags: [string, string] };
limit?: number;
offset?: number;
}
export interface VirtualKeywordsSnippet<T> {
rank?: true;
bm25?: Record<keyof Omit<T, "rowid">, number>;
snippet: { column: keyof T, tags: [string, string], trailing: string, tokens: number };
limit?: number;
offset?: number;
}
export interface SingularVirtualQueries<T, W> {
[key: string]: any;
get(params?: W | null): Promise<T | undefined>;
get<K extends keyof T>(params: W | null, column: K): Promise<T[K] | undefined>;
get<K extends keyof T>(params: W | null, keywords: VirtualKeywordsSelect<T, K[]>): Promise<Pick<T, K> | undefined>;
get(params: W | null, keywords: VirtualKeywordsHighlight<T>): Promise<{ id: number, highlight: string } | undefined>;
get(params: W | null, keywords: VirtualKeywordsSnippet<T>): Promise<{ id: number, snippet: string } | undefined>;
}
export interface MultipleVirtualQueries<T, W> {
[key: string]: any;
get(params?: W): Promise<Array<T>>;
get<K extends keyof T>(params: W | null, columns: K[]): Promise<Array<Pick<T, K>>>;
get<K extends keyof T>(params: W | null, column: K): Promise<Array<T[K]>>;
get<K extends keyof T>(params: W | null, keywords: VirtualKeywordsSelect<T, K[]>): Promise<Array<Pick<T, K>>>;
get(params: W | null, keywords: VirtualKeywordsHighlight<T>): Promise<Array<{ id: number, highlight: string }>>;
get(params: W | null, keywords: VirtualKeywordsSnippet<T>): Promise<Array<{ id: number, snippet: string }>>;
}
export interface SingularQueries<T, I, W, R> {
[key: string]: any;
insert(params: I): Promise<R>;
update(query: W | null, params: Partial<T>): Promise<number>;
get(params?: W | null): Promise<T | undefined>;
get<K extends keyof T>(params: W | null, columns: K[]): Promise<Pick<T, K> | undefined>;
get<K extends keyof T>(params: W | null, column: K): Promise<T[K] | undefined>;
get(params: W | null, keywords: KeywordsWithoutSelect): Promise<T | undefined>;
get<K extends keyof T>(params: W | null, keywords: Keywords<K>): Promise<T[K] | undefined>;
get<K extends keyof T>(params: W | null, keywords: Keywords<K[]>): Promise<Pick<T, K> | undefined>;
get<K extends keyof T>(params: W | null, keywords: KeywordsWithExclude<K[]>): Promise<Omit<T, K> | undefined>;
exists(params: W | null): Promise<boolean>;
remove(params?: W): Promise<number>;
}
export interface MultipleQueries<T, I, W> {
[key: string]: any;
insert(params: Array<I>): Promise<void>;
update(query: W | null, params: Partial<T>): Promise<number>;
get(params?: W): Promise<Array<T>>;
get<K extends keyof T>(params: W | null, columns: K[]): Promise<Array<Pick<T, K>>>;
get<K extends keyof T>(params: W | null, column: K): Promise<Array<T[K]>>;
get(params: W | null, keywords: KeywordsWithoutSelect): Promise<Array<T>>;
get<K extends keyof T>(params: W | null, keywords: Keywords<K>): Promise<Array<T[K]>>;
get<K extends keyof T>(params: W | null, keywords: Keywords<K[]>): Promise<Array<Pick<T, K>>>;
get<K extends keyof T>(params: W | null, keywords: KeywordsWithExclude<K[]>): Promise<Array<Omit<T, K>>>;
count(params: W | null, keywords?: { distinct: true }): Promise<number>;
remove(params?: W): Promise<number>;
}