Class: Compiler

Compiler

new Compiler(){Compiler}

The Compiler class

Returns:
Compiler instance.

Methods

compile(ast){object}

compile a AST into a validator function

Name Type Default Description
ast object

AST of validation nodes

options.optimize object true optional

optimize enable/disable basic optimizations for the generated code

Returns:
the object containing the validator function
Example
// A simple example of compiling a schema

assert = require('assert'),
  StringNode = require('vitesse').StringNode,
  Compiler = require('vitesse').Compiler,
  ObjectNode = require('vitesse').ObjectNode,
var string = new StringNode(null, null, {typeCheck:true});
var schema = new ObjectNode(null, null, {typeCheck:true})
  .addChild('brand', string);

var compiler = new Compiler({});
// Compile the AST
var func = compiler.compile(schema);

// Validate {}
var results = func.validate([]);
assert.equal(1, results.length);
assert.equal('field is not an object', results[0].message);
assert.deepEqual(['object'], results[0].path);
assert.ok(results[0].rule === schema);

// Validate {ca:1}
var results = func.validate({brand:100});
assert.equal(1, results.length);
assert.equal('field is not a string', results[0].message);
assert.deepEqual(['object', 'brand'], results[0].path);
assert.ok(results[0].rule === string);

// Validate {ca:'test'}
var results = func.validate({brand:'test'});
assert.equal(0, results.length);
comments powered by Disqus