UNPKG

@stoqey/sofa

Version:
65 lines (64 loc) 2.78 kB
import { IGroupBy, IIndexOnParams, IIndexWithParams, ILetExpr, IndexType, ISelectType, LogicalWhereExpr, SortType } from '../interface/query.types'; /** * Build a SELECT N1QL query from user-specified parameters. * {@link https://docs.couchbase.com/server/6.5/n1ql/n1ql-language-reference/select-syntax.html} * @param collection Collection name * @param select SELECT Clause param * @param letExpr LET Clause param * @param where WHERE Clause param * @param orderBy ORDER BY Clause param * @param limit LIMIT Clause param * @param offset OFFSET Clause param * @param useExpr USE Clause param * * @return N1QL SELECT Query * */ export declare const selectBuilder: (collection: string, select: ISelectType[] | string, letExpr?: ILetExpr[], where?: LogicalWhereExpr, orderBy?: Record<string, SortType>, limit?: number, offset?: number, useExpr?: string[], groupByExpr?: IGroupBy[], lettingExpr?: ILetExpr[], havingExpr?: LogicalWhereExpr, plainJoinExpr?: string) => string; /** * Create N1QL queries from select array params * @param clause SELECT Clause param * * @return N1QL SELECT Query * */ export declare const buildSelectArrayExpr: (clause: ISelectType[]) => string; /** * Recursive function to create N1QL queries. * @param n1ql N1QL Query String * @param clause SELECT Clause param * * @return N1QL SELECT Query * */ export declare const buildSelectExpr: (n1ql: string, clause: ISelectType) => string; /** * Create WHERE N1QL Expressions. * {@link https://docs.couchbase.com/server/6.5/n1ql/n1ql-language-reference/where.html} * @param clause WHERE Clause param * @return N1QL WHERE Expression * */ export declare const buildWhereExpr: (expr: LogicalWhereExpr | undefined, clause?: string) => string; /** * @ignore * **/ export declare const verifyWhereObjectKey: (clause: LogicalWhereExpr) => boolean; /** * Recursive function to create WHERE N1QL Expressions. * @param n1ql N1QL Query String * @param clause WHERE Clause param * * @return N1QL WHERE Expression * */ export declare const buildWhereClauseExpr: (n1ql: string, clause: LogicalWhereExpr) => string; /** * Build a INDEX N1QL query from user-specified parameters. * {@link https://docs.couchbase.com/server/6.5/n1ql/n1ql-language-reference/createindex.html} * @param collection Collection name * @param type INDEX clause types can be 'CREATE' | 'BUILD' | 'DROP' | 'CREATE PRIMARY' * @param on ON Clause param * @param where WHERE Clause param * @param usingGSI use a Global Secondary Index(GSI). * @param withExpr WITH Clause param * * @return N1QL INDEX Query * */ export declare const buildIndexExpr: (collection: string, type: IndexType, name: string, on?: IIndexOnParams[], where?: LogicalWhereExpr, usingGSI?: boolean, withExpr?: IIndexWithParams) => string;