groq-builder
Version:
A **schema-aware**, strongly-typed GROQ query builder. It enables you to build GROQ queries using **auto-completion**, **type-checking**, and **runtime validation**.
37 lines • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.chainParsers = chainParsers;
exports.isParser = isParser;
exports.isParserObject = isParserObject;
exports.normalizeValidationFunction = normalizeValidationFunction;
const query_error_1 = require("../types/query-error");
function chainParsers(a, b) {
if (a && b) {
return (input) => b(a(input));
}
return a || b || null;
}
function isParser(value) {
if (typeof value === "function")
return true;
return isParserObject(value);
}
function isParserObject(value) {
return (typeof value === "object" &&
value !== null &&
"parse" in value &&
typeof value.parse === "function");
}
function normalizeValidationFunction(parser) {
if (!parser) {
return null;
}
if (typeof parser === "function") {
return parser;
}
if (isParserObject(parser)) {
return (input) => parser.parse(input);
}
throw new query_error_1.QueryError(`Parser must be a function or an object`, { parser });
}
//# sourceMappingURL=validate-utils.js.map