UNPKG

sphinxql

Version:

SphinxQL query builder for Node.JS. Supports Sphinx search(2.x and 3.x) and Manticore search

33 lines (25 loc) 1.06 kB
import StatementBuilderBase from '../StatementBuilderBase'; import MatchExprStatement from './MatchStatement'; import WhereStatement from './WhereStatement'; export default class WhereCondition implements StatementBuilderBase { protected matchStatement: MatchExprStatement = new MatchExprStatement(); protected whereConditions: WhereStatement[] = []; build(): string { let statement: string = ''; const hasMatchStatement: boolean = this.matchStatement.getParts().length > 0; const hasWhereStatements: boolean = this.whereConditions.length > 0; if (hasWhereStatements || hasMatchStatement) { statement = ' WHERE '; if (hasMatchStatement) { statement += `MATCH(${this.matchStatement.build()})`; if (hasWhereStatements) { statement += ' AND '; } } let stringStatements: string[]; stringStatements = this.whereConditions.map((condition: StatementBuilderBase) => condition.build()); statement += stringStatements.join(' AND '); } return statement; } }