mongo-aql
Version:
A mongo-like interface for aql generation
29 lines (24 loc) • 792 B
JavaScript
var helpers = require('../../query-helpers');
var queryBuilder = require('../../query-builder');
helpers.register('expression', function(exp, values, query){
if (Array.isArray(exp)) return exp.join(', ');
if (query.type == 'insert' && typeof exp == 'object')
return '(' + queryBuilder(exp, values) + ')';
if (typeof exp == 'object'){
var val = [
exp.parenthesis === true ? '( ' : ''
, queryBuilder(exp, values)
, exp.parenthesis === true ? ' )' : ''
].join('');
if (Array.isArray(exp.values)){
for (var i = 0, l = exp.values.length; i < l; ++i){
val = val.replace(
RegExp('(\\$)' + (i+1) + '(\\W|$)','g')
, '$1' + utils.newVar(exp.values[i], values) + '$2'
);
}
}
return val;
}
return exp;
});