unomi-node
Version:
Node.js SDK for the Apache Unomi CDP
31 lines (30 loc) • 910 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function queryBuilder(query) {
var validatorRegex = /^(\w\.?)*[\s?]*[=|<|>][\s?]*(".+"|\d+|true|false)$/i;
var key = /^(\w\.?)*/i;
var value = /(".+"|\d+|true|false)$/i;
var operator = /[=|<|>]/i;
if (!validatorRegex.test(query)) {
throw new Error("Invalid query: " + query);
}
var parseOperator = function () {
switch (query.match(operator)[0]) {
case "=":
return "equals";
case ">":
return "greaterThan";
case "<":
return "lessThan";
}
};
var parseValue = query.match(value)[0]
.replace(/^"/, "")
.replace(/"$/, "");
return {
key: query.match(key)[0],
value: parseValue,
operator: parseOperator()
};
}
exports.queryBuilder = queryBuilder;