diff options
author | Hsuan Lee <hsuan@cobinhood.com> | 2019-01-19 18:42:04 +0800 |
---|---|---|
committer | Hsuan Lee <hsuan@cobinhood.com> | 2019-01-19 18:42:04 +0800 |
commit | 7ae38906926dc09bc10670c361af0d2bf0050426 (patch) | |
tree | 5fb10ae366b987db09e4ddb4bc3ba0f75404ad08 /packages/json-schemas/src/schema_validator.ts | |
parent | b5fd3c72a08aaa6957917d74c333387a16edf66b (diff) | |
download | dexon-sol-tools-7ae38906926dc09bc10670c361af0d2bf0050426.tar dexon-sol-tools-7ae38906926dc09bc10670c361af0d2bf0050426.tar.gz dexon-sol-tools-7ae38906926dc09bc10670c361af0d2bf0050426.tar.bz2 dexon-sol-tools-7ae38906926dc09bc10670c361af0d2bf0050426.tar.lz dexon-sol-tools-7ae38906926dc09bc10670c361af0d2bf0050426.tar.xz dexon-sol-tools-7ae38906926dc09bc10670c361af0d2bf0050426.tar.zst dexon-sol-tools-7ae38906926dc09bc10670c361af0d2bf0050426.zip |
Update dependency packages
Diffstat (limited to 'packages/json-schemas/src/schema_validator.ts')
-rw-r--r-- | packages/json-schemas/src/schema_validator.ts | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/packages/json-schemas/src/schema_validator.ts b/packages/json-schemas/src/schema_validator.ts deleted file mode 100644 index 43647b594..000000000 --- a/packages/json-schemas/src/schema_validator.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Schema, Validator, ValidatorResult } from 'jsonschema'; -import values = require('lodash.values'); - -import { schemas } from './schemas'; - -/** - * A validator for [JSON-schemas](http://json-schema.org/) - */ -export class SchemaValidator { - private readonly _validator: Validator; - private static _assertSchemaDefined(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._assertSchemaDefined(schema); - this._validator.addSchema(schema, schema.id); - } - } - /** - * Add a schema to the validator. All schemas and sub-schemas must be added to - * the validator before the `validate` and `isValid` methods can be called with - * instances of that schema. - * @param schema The schema to add - */ - public addSchema(schema: Schema): void { - SchemaValidator._assertSchemaDefined(schema); - this._validator.addSchema(schema, schema.id); - } - // In order to validate a complex JS object using jsonschema, we must replace any complex - // sub-types (e.g BigNumber) with a simpler string representation. Since BigNumber and other - // complex types implement the `toString` method, we can stringify the object and - // then parse it. The resultant object can then be checked using jsonschema. - /** - * Validate the JS object conforms to a specific JSON schema - * @param instance JS object in question - * @param schema Schema to check against - * @returns The results of the validation - */ - public validate(instance: any, schema: Schema): ValidatorResult { - SchemaValidator._assertSchemaDefined(schema); - const jsonSchemaCompatibleObject = JSON.parse(JSON.stringify(instance)); - return this._validator.validate(jsonSchemaCompatibleObject, schema); - } - /** - * Check whether an instance properly adheres to a JSON schema - * @param instance JS object in question - * @param schema Schema to check against - * @returns Whether or not the instance adheres to the schema - */ - public isValid(instance: any, schema: Schema): boolean { - const isValid = this.validate(instance, schema).errors.length === 0; - return isValid; - } -} |