@egi/smart-db
Version:
Unified Smart DB Access
88 lines (87 loc) • 7.44 kB
TypeScript
import { BehaviorSubject, Observable } from "rxjs";
import { AbstractModel } from "./models/abstract-model";
import { SmartDbVersionViewModel } from "./models/smart-db-version-view-model";
import { GenericModelData, IndexedGenericModelData, SmartDbConnector, SmartDbDatabase, SmartDbOptions, SmartDbRunResult, SmartDbSqlOptions, SmartDbTableInfo, SqlFieldDescriptor, SqlLimit, SqlOrderBy, SqlUpdateValues, SqlValueType, SqlWhere } from "./smart-db-interfaces";
import { SmartDbLog } from "./smart-db-log";
import { SmartDbSqlBuildData } from "./smart-db-sql-build-data";
import { SmartError } from "./smart-error";
export declare abstract class SmartDb {
abstract getDatabaseType(): string;
abstract getTableInfo(table: string): Promise<SmartDbTableInfo>;
protected: any;
readonly dbLogging: boolean;
protected dbConnector: SmartDbConnector;
protected lastBuildData: SmartDbSqlBuildData;
protected smartDbLog: SmartDbLog;
protected _onReady: BehaviorSubject<boolean>;
protected db: SmartDbDatabase;
private _lastError;
private dictionaries;
private _isReady;
protected constructor(dbConnector: SmartDbConnector, noDbLogging?: boolean);
buildSelectStatement<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), options: SmartDbSqlOptions<T, D>): SmartDbSqlBuildData;
close(): Promise<boolean>;
closeSync(): boolean;
commit(): Promise<void>;
commitSync(): void;
delete<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), where?: SqlWhere): Promise<number>;
deleteSync<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), where?: SqlWhere): number | false;
exec(script: string): Promise<void>;
execScript(script: string, ignoreDropError?: boolean): Promise<void>;
execScriptSync(script: string): void;
execSync(script: string): boolean;
exists<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), type?: "view" | "table" | "index", indexTableName?: string): Promise<boolean>;
existsSync<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), type?: "view" | "table" | "index", indexTableName?: string): boolean;
get<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), options: SmartDbSqlOptions<T, D>): Promise<(T | D)[] | T | D | SqlValueType | IndexedGenericModelData<T, D> | string | string[] | false>;
getAll<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), where?: SqlWhere, fields?: string | string[] | null, orderBy?: SqlOrderBy, limit?: SqlLimit): Promise<T[] | false>;
getAllSync<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), where?: SqlWhere, fields?: string | string[] | null, orderBy?: SqlOrderBy, limit?: SqlLimit): T[] | false;
getDb(): SmartDbDatabase;
getDbConnector(): string | SmartDbConnector;
getDbQuote(): string;
getFirst<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), where?: SqlWhere, fields?: string | string[] | null, orderBy?: SqlOrderBy): Promise<T | false>;
getFirstSync<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), where?: SqlWhere, fields?: string | string[] | null, orderBy?: SqlOrderBy): T | false;
getLastBuildData(): SmartDbSqlBuildData;
getLastError(): SmartError;
getLogger(): SmartDbLog;
getSync<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), options: SmartDbSqlOptions<T, D>): (T | D)[] | T | D | SqlValueType | IndexedGenericModelData<T, D> | string | string[] | false;
hasConcurrentTransactions(): boolean;
hasTransaction(): boolean;
initDb(appOptions: SmartDbOptions): Promise<SmartDbVersionViewModel[]>;
insert<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), values: SqlUpdateValues | T): Promise<number>;
insertSync<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), values: SqlUpdateValues | T): number | false;
rollback(): Promise<void>;
rollbackSync(): void;
toDate(d: Date | number | string): Date | null;
toDbDate(d: Date | number): string;
toDbTimestamp(d: Date | number): string;
update<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), values: SqlUpdateValues | T, where?: SqlWhere): Promise<number>;
updateSync<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), values: SqlUpdateValues | T, where?: SqlWhere): number | false;
protected statementRun(buildData: SmartDbSqlBuildData): Promise<SmartDbRunResult>;
protected statementRunSync(buildData: SmartDbSqlBuildData): SmartDbRunResult;
protected statementGet<T extends object>(buildData: SmartDbSqlBuildData): Promise<T>;
protected statementGetSync(buildData: SmartDbSqlBuildData): any;
protected statementGetAll<T>(buildData: SmartDbSqlBuildData): Promise<T[]>;
protected statementGetAllSync(buildData: SmartDbSqlBuildData): any[];
protected buildWhere<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), where: SqlWhere, op?: string): SmartDbSqlBuildData;
protected buildDeleteStatement<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), where?: SqlWhere): SmartDbSqlBuildData;
protected buildUpdateStatement<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), values: D | T, where?: SqlWhere): SmartDbSqlBuildData;
protected buildInsertStatement<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), values: SqlUpdateValues | T): SmartDbSqlBuildData;
protected prepareFieldValue<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), fieldOperation: SqlFieldDescriptor): string;
protected prepareField<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), field: SqlValueType | SqlFieldDescriptor, values?: SqlValueType[]): string;
protected buildFieldList<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), fields: (SqlValueType | SqlFieldDescriptor)[]): string[];
protected buildSelectSectionStatement<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), options: SmartDbSqlOptions<T, D>): SmartDbSqlBuildData;
protected translateFieldName<T extends AbstractModel<T, D>, D extends GenericModelData>(modelClass: string | (new () => T), field: string): string;
protected makeDbValue(value: SqlValueType): SqlValueType;
protected makeArgumentDbValue(value: SqlValueType): SqlValueType;
protected saveExecute<T>(fn: () => T): T | false;
private scriptParser;
private prepareResultRow;
private prepareResultRows;
private getTableName;
get isReady(): boolean;
set isReady(ready: boolean);
get lastError(): SmartError;
set lastError(value: any);
get onReady(): Observable<boolean>;
get supportSyncCalls(): boolean;
}