database-builder
Version:
Library to assist in creating and maintaining SQL commands.
38 lines (37 loc) • 2.14 kB
TypeScript
import { ExecutableBuilder } from "../core/executable-builder";
import { DatabaseBase, DatabaseResult } from "../definitions/database-definition";
import { MapperTable } from "../mapper-table";
import { ValueTypeToParse } from "../core/utils";
import { SqlCompilable } from "./sql-compilable";
import { QueryCompiled } from "../core/query-compiled";
import { SqlExecutable } from "./sql-executable";
import { Observable } from "rxjs";
export declare abstract class SqlBase<T> implements SqlCompilable, SqlExecutable {
protected readonly _executableBuilder: ExecutableBuilder;
protected readonly mapperTable: MapperTable;
protected readonly database: DatabaseBase;
protected readonly enableLog: boolean;
protected get mainScriptLength(): number;
private _mainScriptLength;
constructor({ mapperTable, database, enableLog }: {
mapperTable: MapperTable;
database?: DatabaseBase;
enableLog?: boolean;
});
execute({ cascade, database }?: {
cascade?: boolean;
database?: DatabaseBase;
}): Observable<DatabaseResult[]>;
compile(cascade?: boolean): QueryCompiled[];
protected compileDependency(cascade: boolean): QueryCompiled[];
protected compileDependencyByValue(dependency: MapperTable): QueryCompiled[];
protected compileValuesDependency(dependency: MapperTable, valuesDependencyArray: ValueTypeToParse[][], fieldReferenceSubItem: string): QueryCompiled[];
protected abstract dependencies(): MapperTable[];
protected abstract model(): T | Array<T>;
protected abstract builderCompiled(): QueryCompiled | QueryCompiled[];
protected abstract resolveDependency(dependency: MapperTable): QueryCompiled;
protected abstract checkDatabaseResult(promise: Observable<DatabaseResult[]>): Observable<DatabaseResult[]>;
protected resolveDependencyByValue(dependency: MapperTable, value: ValueTypeToParse, index: number): QueryCompiled;
protected getDatabase(database: DatabaseBase): DatabaseBase;
protected checkAndPush(scripts: QueryCompiled[], push: QueryCompiled | QueryCompiled[]): void;
}