Add assertions to catch trying to add undefined schemas

This commit is contained in:
Fabio Berger
2019-01-08 17:07:10 +01:00
parent 5e39eae84e
commit e2df4b355b

View File

@@ -8,12 +8,18 @@ import { schemas } from './schemas';
*/
export class SchemaValidator {
private readonly _validator: Validator;
private static _assertSchemaNotUndefined(schema: Schema): void {
if (schema === undefined) {
throw new Error(`Cannot add undefined schema`);
}
}
/**
* Instantiates a SchemaValidator instance
*/
constructor() {
this._validator = new Validator();
for (const schema of values(schemas)) {
SchemaValidator._assertSchemaNotUndefined(schema);
this._validator.addSchema(schema, schema.id);
}
}
@@ -24,6 +30,7 @@ export class SchemaValidator {
* @param schema The schema to add
*/
public addSchema(schema: Schema): void {
SchemaValidator._assertSchemaNotUndefined(schema);
this._validator.addSchema(schema, schema.id);
}
// In order to validate a complex JS object using jsonschema, we must replace any complex
@@ -37,6 +44,8 @@ export class SchemaValidator {
* @returns The results of the validation
*/
public validate(instance: any, schema: Schema): ValidatorResult {
console.log('validating....');
SchemaValidator._assertSchemaNotUndefined(schema);
const jsonSchemaCompatibleObject = JSON.parse(JSON.stringify(instance));
return this._validator.validate(jsonSchemaCompatibleObject, schema);
}