@stoqey/sofa
Version:
Couchbase utilities
65 lines (64 loc) • 2.78 kB
TypeScript
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;