amanda

JSON Schema validator

Amanda

Amanda is aiming to be a universal schema validation library. Currently it supports only the JSON Schema Internet Draft, but I'm planning to add Orderly, Relax NG and others very soon.

/**
 * Schema
 */
var schema = {
  type: 'object',
  properties: {
    name: {
      required: true,
      type: 'string'
    }
  }
};
 
/**
 * Data
 */
var data = {
  name: 'Kenneth'
};
 
// Initialize a JSON Schema validator. 
var jsonSchemaValidator = amanda('json');
 
// Validate the data against the schema. 
jsonSchemaValidator.validate(data, schema, function(error) {
 
  // Do something... 
 
});

Contents

  • Extendable, you can create your own attributes
  • Can be used with Node.js and in a browser
  • Amanda has no dependencies
  • AMD compatible, you can load it via RequireJS
  • Lightweight
  • Fully documented
  • Tested

To install Amanda, use NPM.

$ npm install amanda

Then you can load the library via require.

var amanda = require('amanda');

If you prefer RequireJS, go ahead.

// Configuration options, the path should not include the .js extension. 
require.config({
  paths: {
    'amanda': 'path/to/amanda'
  }
});
 
// Load Amanda 
require(['amanda'], function(amanda) {
 
  // Do something... 
 
});

Releases for the browser are available for download from GitHub.

VersionDescriptionSizeAction
amanda.jsuncompressed, with comments42.12 KB (7.98 KB gzipped)Download
amanda.min.jscompressed, without comments13.8 KB (4.09 KB gzipped)Download

Or you can use JAM.

$ jam install amanda

Then you can load the library via the <script> tag.

<script src="/path/to/amanda.js"></script>

...or via RequireJS.

// Configuration options, the path should not include the .js extension. 
require.config({
  paths: {
    'amanda': 'path/to/amanda'
  }
});
 
// Load Amanda 
require(['amanda'], function(amanda) {
 
  // Do something... 
 
});
BranchStatus
master

All documentation is available in the /docs/ folder.

From version 0.6.0.

Testing in progress...

I have included a Makefile with convenience methods for working with the library.

  • make Builds the library
$ npm test

Releases will be numbered with the following format.

<major>.<minor>.<patch>

And constructed with the following guidelines.

  • Breaking backwards compatibility bumps the major
  • New additions without breaking backwards compatibility bumps the minor
  • Bug fixes and misc changes bump the patch

For more information on semantic versioning, please visit http://semver.org/.

František Hába (@Baggz) created Amanda and these people have contributed.

Please see the LICENSE file.