sphinxql
Version:
SphinxQL query builder for Node.JS. Supports Sphinx search(2.x and 3.x) and Manticore search
35 lines (28 loc) • 951 B
text/typescript
import SelectStatement from '../SelectStatement';
import StatementBuilderBase from '../StatementBuilderBase';
/**
* const conn.getQueryBuilder()
* fromIndexes('books', conn.getQueryBuilder().select('').fromIndexes())
*/
export default class FromExprStatement implements StatementBuilderBase {
protected indexes: any[];
public constructor(...indexes: (string | SelectStatement)[]) {
this.indexes = [];
indexes.forEach((index: string | SelectStatement) => {
this.indexes = [...this.indexes, index];
});
}
protected static generateFromIndexExpressions(index: string | SelectStatement): string {
if (index instanceof SelectStatement) {
return `(${index.generate()})`;
}
return index;
}
build(): string {
let expressions: string[];
expressions = this.indexes.map(index => {
return FromExprStatement.generateFromIndexExpressions(index);
});
return expressions.join(', ');
}
}