UNPKG

database-builder

Version:

Library to assist in creating and maintaining SQL commands.

38 lines (37 loc) 2.14 kB
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; }