"use strict"; const either = require("@validatem/either"); const wrapError = require("@validatem/wrap-error"); module.exports = function (operations) { const isObjectType = require("./is-object-type")(operations); const isValueExpression = require("./is-value-expression")(operations); const wrapWithOperation = require("./wrap-with-operation")(operations); return wrapError("Must be a type of condition or value", either([ [ isObjectType("condition") ], // equals, lessThan, moreThan [ isObjectType("notCondition") ], // not(condition) [ isObjectType("anyOfConditions") ], // anyOf(...) [ isObjectType("allOfConditions") ], // allOf(...) [ isValueExpression, wrapWithOperation("equals") ] ])); };