feathers-solr
Version:
A Feathers service adapter for Solr
29 lines • 1.38 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertOperators = void 0;
const operatorResolver_1 = require("./operatorResolver");
const lib_1 = require("@feathersjs/commons/lib");
const convertOperators = (query, escapeFn, root = '') => {
if (Array.isArray(query)) {
return query.map(q => (0, exports.convertOperators)(q, escapeFn, root));
}
return Object.keys(query).map((prop) => {
if (prop === '$or') {
return operatorResolver_1.operatorResolver.$or((0, exports.convertOperators)(query[prop], escapeFn));
}
if (prop === '$and') {
return operatorResolver_1.operatorResolver.$and((0, exports.convertOperators)(query[prop], escapeFn, prop));
}
if (prop in operatorResolver_1.operatorResolver) {
const values = Object.values(escapeFn(root, query[prop]));
return operatorResolver_1.operatorResolver[prop](...values);
}
if (lib_1._.isObject(query[prop])) {
return operatorResolver_1.operatorResolver.$and((0, exports.convertOperators)(query[prop], escapeFn, prop));
}
const values = Object.values(escapeFn(prop, query[prop]));
return operatorResolver_1.operatorResolver.$eq(...values);
});
};
exports.convertOperators = convertOperators;
//# sourceMappingURL=convertOperators.js.map
;