UNPKG

unomi-node

Version:
31 lines (30 loc) 910 B
"use strict"; 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;