@sqb/builder
Version:
Extensible multi-dialect SQL query builder written with TypeScript
92 lines (91 loc) • 2.75 kB
TypeScript
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;
}