diff options
author | Fabio Berger <me@fabioberger.com> | 2017-11-14 06:42:42 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2017-11-14 06:42:42 +0800 |
commit | 3e8e3478a3d770b16a5e6fec1fbd43a3d7967450 (patch) | |
tree | d291bf183c343b864369e4ef204c5637d3168a21 /packages/assert/src/index.ts | |
parent | cf29530dd0303e5ef1f49c1ce889bafc62921cf2 (diff) | |
download | dexon-sol-tools-3e8e3478a3d770b16a5e6fec1fbd43a3d7967450.tar dexon-sol-tools-3e8e3478a3d770b16a5e6fec1fbd43a3d7967450.tar.gz dexon-sol-tools-3e8e3478a3d770b16a5e6fec1fbd43a3d7967450.tar.bz2 dexon-sol-tools-3e8e3478a3d770b16a5e6fec1fbd43a3d7967450.tar.lz dexon-sol-tools-3e8e3478a3d770b16a5e6fec1fbd43a3d7967450.tar.xz dexon-sol-tools-3e8e3478a3d770b16a5e6fec1fbd43a3d7967450.tar.zst dexon-sol-tools-3e8e3478a3d770b16a5e6fec1fbd43a3d7967450.zip |
Rename assert sub-package and removed duplicate methods from 0x.js's assert module
Diffstat (limited to 'packages/assert/src/index.ts')
-rw-r--r-- | packages/assert/src/index.ts | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/packages/assert/src/index.ts b/packages/assert/src/index.ts deleted file mode 100644 index b391a8bbb..000000000 --- a/packages/assert/src/index.ts +++ /dev/null @@ -1,84 +0,0 @@ -import BigNumber from 'bignumber.js'; -import * as ethereum_address from 'ethereum-address'; -import * as _ from 'lodash'; -import * as validUrl from 'valid-url'; - -import {SchemaValidator, Schema} from '0x-json-schemas'; - -const HEX_REGEX = /^0x[0-9A-F]*$/i; - -export const assert = { - isBigNumber(variableName: string, value: BigNumber): void { - const isBigNumber = _.isObject(value) && (value as any).isBigNumber; - this.assert(isBigNumber, this.typeAssertionMessage(variableName, 'BigNumber', value)); - }, - isUndefined(value: any, variableName?: string): void { - this.assert(_.isUndefined(value), this.typeAssertionMessage(variableName, 'undefined', value)); - }, - isString(variableName: string, value: string): void { - this.assert(_.isString(value), this.typeAssertionMessage(variableName, 'string', value)); - }, - isFunction(variableName: string, value: any): void { - this.assert(_.isFunction(value), this.typeAssertionMessage(variableName, 'function', value)); - }, - isHexString(variableName: string, value: string): void { - this.assert(_.isString(value) && HEX_REGEX.test(value), - this.typeAssertionMessage(variableName, 'HexString', value)); - }, - isETHAddressHex(variableName: string, value: string): void { - this.assert(ethereum_address.isAddress(value), this.typeAssertionMessage(variableName, 'ETHAddressHex', value)); - this.assert( - ethereum_address.isAddress(value) && value.toLowerCase() === value, - `Checksummed addresses are not supported. Convert ${variableName} to lower case before passing`, - ); - }, - doesBelongToStringEnum(variableName: string, value: string, - stringEnum: any /* There is no base type for every string enum */): void { - const doesBelongToStringEnum = !_.isUndefined(stringEnum[value]); - const enumValues = _.keys(stringEnum); - const enumValuesAsStrings = _.map(enumValues, enumValue => `'${enumValue}'`); - const enumValuesAsString = enumValuesAsStrings.join(', '); - assert.assert( - doesBelongToStringEnum, - `Expected ${variableName} to be one of: ${enumValuesAsString}, encountered: ${value}`, - ); - }, - hasAtMostOneUniqueValue(value: any[], errMsg: string): void { - this.assert(_.uniq(value).length <= 1, errMsg); - }, - isNumber(variableName: string, value: number): void { - this.assert(_.isFinite(value), this.typeAssertionMessage(variableName, 'number', value)); - }, - isBoolean(variableName: string, value: boolean): void { - this.assert(_.isBoolean(value), this.typeAssertionMessage(variableName, 'boolean', value)); - }, - isWeb3Provider(variableName: string, value: any): void { - const isWeb3Provider = _.isFunction((value as any).send) || _.isFunction((value as any).sendAsync); - this.assert(isWeb3Provider, this.typeAssertionMessage(variableName, 'Web3.Provider', value)); - }, - doesConformToSchema(variableName: string, value: any, schema: Schema): void { - const schemaValidator = new 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')} -Validation errors: ${validationResult.errors.join(', ')}`; - this.assert(!hasValidationErrors, msg); - }, - isHttpUrl(variableName: string, value: any): void { - const isValidUrl = validUrl.isWebUri(value); - this.assert(isValidUrl, this.typeAssertionMessage(variableName, 'http url', value)); - }, - isUri(variableName: string, value: any): void { - const isValidUri = validUrl.isUri(value); - this.assert(isValidUri, this.typeAssertionMessage(variableName, 'uri', value)); - }, - assert(condition: boolean, message: string): void { - if (!condition) { - throw new Error(message); - } - }, - typeAssertionMessage(variableName: string, type: string, value: any): string { - return `Expected ${variableName} to be of type ${type}, encountered: ${value}`; - }, -}; |