forked from databricks/databricks-sql-nodejs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIOperation.ts
65 lines (52 loc) · 1.34 KB
/
IOperation.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
import { TGetOperationStatusResp, TTableSchema } from '../../thrift/TCLIService_types';
import Status from '../dto/Status';
export type OperationStatusCallback = (progress: TGetOperationStatusResp) => unknown;
export interface WaitUntilReadyOptions {
progress?: boolean;
callback?: OperationStatusCallback;
}
export interface FinishedOptions extends WaitUntilReadyOptions {
// no other options
}
export interface FetchOptions extends WaitUntilReadyOptions {
maxRows?: number;
}
export interface GetSchemaOptions extends WaitUntilReadyOptions {
// no other options
}
export default interface IOperation {
/**
* Fetch a portion of data
*/
fetchChunk(options?: FetchOptions): Promise<Array<object>>;
/**
* Fetch all the data
*/
fetchAll(options?: FetchOptions): Promise<Array<object>>;
/**
* Request status of operation
*
* @param progress
*/
status(progress?: boolean): Promise<TGetOperationStatusResp>;
/**
* Cancel operation
*/
cancel(): Promise<Status>;
/**
* Close operation
*/
close(): Promise<Status>;
/**
* Waits until operation is finished
*/
finished(options?: FinishedOptions): Promise<void>;
/**
* Check if operation hasMoreRows
*/
hasMoreRows(): Promise<boolean>;
/**
* Fetch schema
*/
getSchema(options?: GetSchemaOptions): Promise<TTableSchema | null>;
}