Spaces:
Sleeping
Sleeping
File size: 791 Bytes
c2b7eb3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import { dereference } from './dereference.js';
import { Schema, SchemaDraft, ValidationResult } from './types.js';
import { validate } from './validate.js';
export class Validator {
private readonly lookup: ReturnType<typeof dereference>;
constructor(
private readonly schema: Schema | boolean,
private readonly draft: SchemaDraft = '2019-09',
private readonly shortCircuit = true
) {
this.lookup = dereference(schema);
}
public validate(instance: any): ValidationResult {
return validate(
instance,
this.schema,
this.draft,
this.lookup,
this.shortCircuit
);
}
public addSchema(schema: Schema, id?: string): void {
if (id) {
schema = { ...schema, $id: id };
}
dereference(schema, this.lookup);
}
}
|