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...
});
- Features
- Download
- Status
- Documentation
- compatibility
- Building
- Tests
- Versioning
- Release Notes
- authors
- License
- 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.
Version | Description | Size | Action |
---|---|---|---|
amanda.js |
uncompressed, with comments | 36.23 KB (7.23 KB gzipped) | Download |
amanda.min.js |
compressed, without comments | 13.71 KB (3.98 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...
});
Branch | Status |
---|---|
master | |
dev |
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.