UNPKG

@bitblit/ratchet-rdbms

Version:

Ratchet tooling for working with relational databases

53 lines (52 loc) 2.29 kB
import { QueryBuilderResult } from './query-builder-result.js'; import { TransactionIsolationLevel } from '../model/transaction-isolation-level.js'; import { QueryTextProvider } from '../model/query-text-provider.js'; import { Paginator } from '../model/paginator.js'; export declare class QueryBuilder { static readonly ALLOWED_SQL_CONSTRUCT: RegExp; private readonly queryProvider; private query?; meta: { queryPath?: string; }; private sqlConstructs; private namedParams; private conditionals; private debugComment; private paginator?; private debugAnnotateMode; private transactionIsolationLevel; constructor(queryProvider: QueryTextProvider); clone(): QueryBuilder; withTransactionIsolationLevel(level: TransactionIsolationLevel): QueryBuilder; withDebugComment(comment: string): QueryBuilder; appendDebugComment(comment: string): QueryBuilder; withNamedQuery(queryPath: string): QueryBuilder; withBaseQuery(baseQuery: string): void; withSqlConstruct(key: string, value: unknown): QueryBuilder; withSqlConstructs(params: Record<string, unknown>): QueryBuilder; removeParam(key: string): QueryBuilder; paramNames(): string[]; withParam(key: string, value: unknown): QueryBuilder; withParams(params: unknown): QueryBuilder; withExpandedParam(keyPrefix: string, values: unknown[], extendIfExists: boolean): QueryBuilder; withConditional(tag: string, state?: boolean): QueryBuilder; withConditionals(params: Record<string, boolean>): QueryBuilder; withPaginator(paginator: Paginator<any>): QueryBuilder; fetchCopyOfParam<T>(paramName: string): T | undefined; fetchCopyOfConditional<T>(conditionalName: string): T | undefined; containsParam(paramName: string): boolean; getDebugComment(): string; containsConditional(conditionalName: string): boolean; build(): QueryBuilderResult; buildUnfiltered(): QueryBuilderResult; protected internalBuild(unfiltered: boolean): QueryBuilderResult; private stripNonAsciiParams; private runQueryChecks; private applyComments; applySqlConstructs(): void; private applyRepeatBlocks; private applyQueryFragments; private applyPagination; private applyConditionalBlocks; }