amanda

JSON Schema validator

  • amanda

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
amanda
4721.0.16 years ago13 years agoMinified + gzip package size for amanda in KB

Readme

Build Status
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.

Example

/**
 * 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

Features

  • 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

Download

Node.js

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...

});

Browser

Releases for the browser are available for download from GitHub.
| Version | Description | Size | Action | |:------------|:----------------|:---------|:-----------| | amanda.js | uncompressed, with comments | 42.12 KB (7.98 KB gzipped) | Download | | amanda.min.js | compressed, without comments | 13.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...

});

Status

| Branch | Status | |:-----------|:----------| | master | Build Status |

Documentation

All documentation is available in the /docs/ folder.

Compatibility

Node.js

From version 0.6.0.

Browsers

Testing in progress...

Building

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

Tests

$ npm test

Versioning

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/.

Release Notes

Authors

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

License

Please see the LICENSE file.