Add isNumberOrBigNumber assertion
This commit is contained in:
parent
985696631c
commit
c58306cd49
@ -16,7 +16,7 @@ export const utils = {
|
|||||||
const solTypeRegexToTsType = [
|
const solTypeRegexToTsType = [
|
||||||
{
|
{
|
||||||
regex: '^u?int(8|16|32)?$',
|
regex: '^u?int(8|16|32)?$',
|
||||||
assertion: '', // TODO(fabio): Create a combined assertion for `number|bigNumber`?
|
assertion: `assert.isNumberOrBigNumber('${solName}', ${solName});`,
|
||||||
},
|
},
|
||||||
{ regex: '^string$', assertion: `assert.isString('${solName}', ${solName});` },
|
{ regex: '^string$', assertion: `assert.isString('${solName}', ${solName});` },
|
||||||
{ regex: '^address$', assertion: `assert.isString('${solName}', ${solName});` },
|
{ regex: '^address$', assertion: `assert.isString('${solName}', ${solName});` },
|
||||||
@ -32,9 +32,8 @@ export const utils = {
|
|||||||
}
|
}
|
||||||
const TUPLE_TYPE_REGEX = '^tuple$';
|
const TUPLE_TYPE_REGEX = '^tuple$';
|
||||||
if (solType.match(TUPLE_TYPE_REGEX)) {
|
if (solType.match(TUPLE_TYPE_REGEX)) {
|
||||||
// Omit assertions for complex types for now
|
// NOTE(fabio): Omit assertions for complex types since this would require schema assertions
|
||||||
// TODO(fabio): Figure out an elegant way to map complex types to JSON-schemas and
|
// and we currently do not want to make @0x/abi-gen a 0x-specific tool.
|
||||||
// add a schema assertion for that type here.
|
|
||||||
const assertion = '';
|
const assertion = '';
|
||||||
return assertion;
|
return assertion;
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"changes": [
|
"changes": [
|
||||||
{
|
{
|
||||||
"note": "Add new assertions: `isArray`, `isBlockParam`",
|
"note": "Add new assertions: `isArray`, `isBlockParam` and `isNumberOrBigNumber`",
|
||||||
"pr": 1823
|
"pr": 1823
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -56,6 +56,16 @@ export const assert = {
|
|||||||
isNumber(variableName: string, value: number): void {
|
isNumber(variableName: string, value: number): void {
|
||||||
assert.assert(_.isFinite(value), assert.typeAssertionMessage(variableName, 'number', value));
|
assert.assert(_.isFinite(value), assert.typeAssertionMessage(variableName, 'number', value));
|
||||||
},
|
},
|
||||||
|
isNumberOrBigNumber(variableName: string, value: number): void {
|
||||||
|
if (_.isFinite(value)) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
assert.assert(
|
||||||
|
BigNumber.isBigNumber(value),
|
||||||
|
assert.typeAssertionMessage(variableName, 'number or BigNumber', value),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
isBoolean(variableName: string, value: boolean): void {
|
isBoolean(variableName: string, value: boolean): void {
|
||||||
assert.assert(_.isBoolean(value), assert.typeAssertionMessage(variableName, 'boolean', value));
|
assert.assert(_.isBoolean(value), assert.typeAssertionMessage(variableName, 'boolean', value));
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user