/
interfaces.ts
41 lines (33 loc) · 953 Bytes
/
interfaces.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
export interface SortOptions { [fieldName: string]: 1 | -1 | 'asc' | 'desc' | 'ascending' | 'descending'; }
export interface IRoomListingData {
clients: number;
locked: boolean;
private: boolean;
maxClients: number;
metadata: any;
name: string;
processId: string;
roomId: string;
unlisted: boolean;
[property: string]: any;
}
export interface RoomListingData<Metadata= any> extends IRoomListingData {
metadata: Metadata;
updateOne(operations: any);
save();
remove();
}
export interface QueryHelpers<T> {
then: Promise<T>['then'];
sort(options: SortOptions);
}
export interface MatchMakerDriver {
createInstance(initialValues: any): RoomListingData;
find(
conditions: Partial<IRoomListingData>,
additionalProjectionFields?: any,
): Promise<RoomListingData[]> | RoomListingData[];
findOne(conditions: Partial<IRoomListingData>): QueryHelpers<RoomListingData>;
clear(): void;
shutdown(): void;
}