var mschema = require('mschema'); /** * OKSchema! * Meant as a thin wrapper around some existing schema validation * module, mostly to allow for the extension of types. */ function OKSchema(spec) { if (!(this instanceof OKSchema)) return new OKSchema(spec); if (!spec) throw new Error('No spec provided to OKSchema'); Object.defineProperty(this, 'spec', { value: spec, writable: false }); } OKSchema.prototype.assertValid = function(data) { var result = mschema.validate(data, this.toMschema()); if (!result.valid) throw result.errors; }; /** * Return schema as an mschema object. * Currently no difference between the two. */ OKSchema.prototype.toMschema = function() { return this.spec; }; module.exports = OKSchema;