@bitblit/ratchet-rdbms
Version:
Ratchet tooling for working with relational databases
53 lines (52 loc) • 2.29 kB
TypeScript
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;
}