Add assertions to catch trying to add undefined schemas
This commit is contained in:
@@ -8,12 +8,18 @@ import { schemas } from './schemas';
|
|||||||
*/
|
*/
|
||||||
export class SchemaValidator {
|
export class SchemaValidator {
|
||||||
private readonly _validator: Validator;
|
private readonly _validator: Validator;
|
||||||
|
private static _assertSchemaNotUndefined(schema: Schema): void {
|
||||||
|
if (schema === undefined) {
|
||||||
|
throw new Error(`Cannot add undefined schema`);
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Instantiates a SchemaValidator instance
|
* Instantiates a SchemaValidator instance
|
||||||
*/
|
*/
|
||||||
constructor() {
|
constructor() {
|
||||||
this._validator = new Validator();
|
this._validator = new Validator();
|
||||||
for (const schema of values(schemas)) {
|
for (const schema of values(schemas)) {
|
||||||
|
SchemaValidator._assertSchemaNotUndefined(schema);
|
||||||
this._validator.addSchema(schema, schema.id);
|
this._validator.addSchema(schema, schema.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -24,6 +30,7 @@ export class SchemaValidator {
|
|||||||
* @param schema The schema to add
|
* @param schema The schema to add
|
||||||
*/
|
*/
|
||||||
public addSchema(schema: Schema): void {
|
public addSchema(schema: Schema): void {
|
||||||
|
SchemaValidator._assertSchemaNotUndefined(schema);
|
||||||
this._validator.addSchema(schema, schema.id);
|
this._validator.addSchema(schema, schema.id);
|
||||||
}
|
}
|
||||||
// In order to validate a complex JS object using jsonschema, we must replace any complex
|
// 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
|
* @returns The results of the validation
|
||||||
*/
|
*/
|
||||||
public validate(instance: any, schema: Schema): ValidatorResult {
|
public validate(instance: any, schema: Schema): ValidatorResult {
|
||||||
|
console.log('validating....');
|
||||||
|
SchemaValidator._assertSchemaNotUndefined(schema);
|
||||||
const jsonSchemaCompatibleObject = JSON.parse(JSON.stringify(instance));
|
const jsonSchemaCompatibleObject = JSON.parse(JSON.stringify(instance));
|
||||||
return this._validator.validate(jsonSchemaCompatibleObject, schema);
|
return this._validator.validate(jsonSchemaCompatibleObject, schema);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user