mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-10-25 09:34:18 +08:00
refactor: CB-491 Database Data API
This commit is contained in:
@@ -10,16 +10,18 @@ import { observable } from 'mobx';
|
||||
|
||||
import { ResultDataFormat } from '@cloudbeaver/core-sdk';
|
||||
|
||||
import { IExecutionContext } from '../IExecutionContext';
|
||||
import { IDatabaseDataResult } from './IDatabaseDataResult';
|
||||
import { DataUpdate, IDatabaseDataSource, IRequestInfo } from './IDatabaseDataSource';
|
||||
|
||||
export abstract class DatabaseDataSource<TOptions, TResult extends IDatabaseDataResult>
|
||||
implements IDatabaseDataSource<TOptions, TResult> {
|
||||
implements IDatabaseDataSource<TOptions, TResult> {
|
||||
@observable offset: number;
|
||||
@observable count: number;
|
||||
@observable dataFormat: ResultDataFormat;
|
||||
@observable options: TOptions | null;
|
||||
@observable requestInfo: IRequestInfo;
|
||||
@observable executionContext: IExecutionContext | null;
|
||||
@observable supportedDataFormats: ResultDataFormat[];
|
||||
abstract get canCancel(): boolean;
|
||||
|
||||
@@ -32,6 +34,7 @@ export abstract class DatabaseDataSource<TOptions, TResult extends IDatabaseData
|
||||
this.options = null;
|
||||
this.activeRequest = null;
|
||||
this.activeSave = null;
|
||||
this.executionContext = null;
|
||||
this.dataFormat = ResultDataFormat.Resultset;
|
||||
this.supportedDataFormats = [];
|
||||
this.requestInfo = {
|
||||
@@ -67,6 +70,11 @@ export abstract class DatabaseDataSource<TOptions, TResult extends IDatabaseData
|
||||
return this;
|
||||
}
|
||||
|
||||
setExecutionContext(context: IExecutionContext | null): this {
|
||||
this.executionContext = context;
|
||||
return this;
|
||||
}
|
||||
|
||||
async requestData(prevResults: TResult[]): Promise<TResult[]> {
|
||||
if (this.activeSave) {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user