Class: OneOfNode

OneOfNode

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

comments powered by Disqus