From 7b67afae06c93290e6d8c4a4f0de2435f31ae714 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Tue, 20 Feb 2018 11:39:36 -0800 Subject: Change assert.doesConformToShema interface --- packages/0x.js/src/0x.ts | 8 ++++---- packages/assert/src/index.ts | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/0x.js/src/0x.ts b/packages/0x.js/src/0x.ts index d024e6097..c578478d8 100644 --- a/packages/0x.js/src/0x.ts +++ b/packages/0x.js/src/0x.ts @@ -22,9 +22,6 @@ import { decorators } from './utils/decorators'; import { signatureUtils } from './utils/signature_utils'; import { utils } from './utils/utils'; -assert.schemaValidator.addSchema(zeroExPrivateNetworkConfigSchema); -assert.schemaValidator.addSchema(zeroExPublicNetworkConfigSchema); - /** * The ZeroEx class is the single entry-point into the 0x.js library. It contains all of the library's functionality * and all calls to the library should be made through a ZeroEx instance. @@ -168,7 +165,10 @@ export class ZeroEx { */ constructor(provider: Web3Provider, config: ZeroExConfig) { assert.isWeb3Provider('provider', provider); - assert.doesConformToSchema('config', config, zeroExConfigSchema); + assert.doesConformToSchema('config', config, zeroExConfigSchema, [ + zeroExPrivateNetworkConfigSchema, + zeroExPublicNetworkConfigSchema, + ]); const artifactJSONs = _.values(artifacts); const abiArrays = _.map(artifactJSONs, artifact => artifact.abi); this._abiDecoder = new AbiDecoder(abiArrays); diff --git a/packages/assert/src/index.ts b/packages/assert/src/index.ts index 383cc2c42..71f2cbeb2 100644 --- a/packages/assert/src/index.ts +++ b/packages/assert/src/index.ts @@ -4,10 +4,8 @@ import * as _ from 'lodash'; import * as validUrl from 'valid-url'; const HEX_REGEX = /^0x[0-9A-F]*$/i; -const schemaValidator = new SchemaValidator(); export const assert = { - schemaValidator, isBigNumber(variableName: string, value: BigNumber): void { const isBigNumber = _.isObject(value) && (value as any).isBigNumber; this.assert(isBigNumber, this.typeAssertionMessage(variableName, 'BigNumber', value)); @@ -68,8 +66,10 @@ export const assert = { const isWeb3Provider = _.isFunction(value.send) || _.isFunction(value.sendAsync); this.assert(isWeb3Provider, this.typeAssertionMessage(variableName, 'Web3.Provider', value)); }, - doesConformToSchema(variableName: string, value: any, schema: Schema): void { - const validationResult = this.schemaValidator.validate(value, schema); + doesConformToSchema(variableName: string, value: any, schema: Schema, subSchemas?: Schema[]): void { + const schemaValidator = new SchemaValidator(); + _.map(subSchemas, schemaValidator.addSchema.bind(schemaValidator)); + const validationResult = schemaValidator.validate(value, schema); const hasValidationErrors = validationResult.errors.length > 0; const msg = `Expected ${variableName} to conform to schema ${schema.id} Encountered: ${JSON.stringify(value, null, '\t')} -- cgit v1.2.3