new OneOfNode(){OneOfNode}
The OneOfNode class represents a validation where the value must be one of the validation nodes
Returns:
OneOfNode instance.Methods
-
addValidations(validations){OneOfNode}
-
One of the validation nodes must be satisfied for the provided value
Name Type Description validations
array an array of validation nodes
Example
// Create a Not validator for string validations assert = require('assert'), Compiler = require('vitesse').Compiler, StringNode = require('vitesse').StringNode, IntegerNode = require('vitesse').IntegerNode, OneOfNode = require('vitesse').OneOfNode; var string1 = new StringNode(null, null, {typeCheck:true}) .addValidation({$gte: 5, $lte: 100}); var integer1 = new IntegerNode(null, null, {typeCheck:true}) .addValidation({$gte: 100, $lte: 1000}); var schema = new OneOfNode() .addValidations([string1, integer1]); var compiler = new Compiler({}); // Compile the AST var func = compiler.compile(schema, {}); // Validate {} var results = func.validate(20); assert.equal(1, results.length); assert.equal("more than one schema matched ofOne rule", results[0].message); assert.deepEqual(['object'], results[0].path); assert.ok(results[0].rule === schema); // Validate string 'xxxxxx' var results = func.validate(200); assert.equal(0, results.length);
-
generate(context)
-
Generate the code for this node
Name Type Description context
object the generation context for this node
-
path(){array}
-
Return the current object path
Returns:
array containing the path to this node
-
setTypeCheck(typeCheck){OneOfNode}
-
Type check value
Name Type Description typeCheck
boolean type check value