UNPKG

@sqb/builder

Version:

Extensible multi-dialect SQL query builder written with TypeScript

92 lines (91 loc) 2.75 kB
import { SerializationType } from '../enums.js'; import { Serializable } from '../serializable.js'; import { SerializeContext } from '../serialize-context.js'; import { GroupColumn } from '../sql-objects/group-column.js'; import { JoinStatement } from '../sql-objects/join-statement.js'; import { LogicalOperator } from '../sql-objects/operators/logical-operator.js'; import { OrderColumn } from '../sql-objects/order-column.js'; import { RawStatement } from '../sql-objects/raw-statement.js'; import { Query } from './query.js'; import type { UnionQuery } from './union-query.js'; export declare class SelectQuery extends Query { _tables?: Serializable[]; _columns?: Serializable[]; _joins?: JoinStatement[]; _where?: LogicalOperator; _groupBy?: (GroupColumn | Serializable)[]; _orderBy?: (OrderColumn | Serializable)[]; _limit?: number; _offset?: number; _alias?: string; _distinct?: boolean; constructor(...column: (string | string[] | Serializable)[]); get _type(): SerializationType; /** * Adds columns to query. */ addColumn(...column: (string | string[] | Serializable)[]): this; /** * Defines "from" part of query. */ from(...table: (string | RawStatement | SelectQuery | UnionQuery)[]): this; /** * Adds "join" statements to query */ join(...join: JoinStatement[]): this; /** * Defines "where" part of query */ where(...condition: (Serializable | Object)[]): this; /** * Defines "where" part of query */ groupBy(...field: (string | Serializable)[]): this; /** * Defines "order by" part of query. */ orderBy(...field: (string | Serializable)[]): this; /** * Sets alias for sub-select queries */ as(alias: string): this; /** * Sets limit for query */ limit(limit: number): this; /** * Sets offset for query */ offset(offset: number): this; /** * Enables distinct mode */ distinct(): this; onFetch(listener: (...args: any[]) => void): this; onceFetch(listener: (...args: any[]) => void): this; /** * Performs serialization */ _serialize(ctx: SerializeContext): string; /** * */ protected __serializeSelectColumns(ctx: SerializeContext): string; /** * */ protected __serializeFrom(ctx: SerializeContext): string; /** * */ protected __serializeJoins(ctx: SerializeContext): string; /** * */ protected __serializeWhere(ctx: SerializeContext): string; /** * */ protected __serializeGroupColumns(ctx: SerializeContext): string; protected __serializeOrderColumns(ctx: SerializeContext): string; }