You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

18 lines
397 B
JavaScript

"use strict";
const combinator = require("@validatem/combinator");
// TODO: Document that this *exposes* context
module.exports = function dynamic(ruleGenerationFunction) {
let validator = combinator((value, applyValidators, context) => {
let rules = ruleGenerationFunction(value, context);
return applyValidators(value, rules);
});
validator.callIfNull = true;
return validator;
};