diff options
Diffstat (limited to 'packages/utils')
-rw-r--r-- | packages/utils/CHANGELOG.json | 16 | ||||
-rw-r--r-- | packages/utils/CHANGELOG.md | 6 | ||||
-rw-r--r-- | packages/utils/package.json | 16 | ||||
-rw-r--r-- | packages/utils/src/abi_decoder.ts | 2 | ||||
-rw-r--r-- | packages/utils/src/fetchAsync.ts | 37 | ||||
-rw-r--r-- | packages/utils/src/index.ts | 1 |
6 files changed, 59 insertions, 19 deletions
diff --git a/packages/utils/CHANGELOG.json b/packages/utils/CHANGELOG.json index c6736dc4d..0ac49952b 100644 --- a/packages/utils/CHANGELOG.json +++ b/packages/utils/CHANGELOG.json @@ -1,14 +1,5 @@ [ { - "version": "0.7.3", - "changes": [ - { - "note": "Fixes uncaught Error in abi_decoder", - "pr": 763 - } - ] - }, - { "version": "0.7.2", "changes": [ { @@ -17,8 +8,13 @@ { "note": "Add logUtils.warn", "pr": 589 + }, + { + "note": "Fixes uncaught Error in abi_decoder", + "pr": 763 } - ] + ], + "timestamp": 1531149657 }, { "timestamp": 1529397769, diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 60a575297..e2464232c 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -5,6 +5,12 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v0.7.2 - _July 9, 2018_ + + * Added errorUtils.spawnSwitchErr + * Add logUtils.warn (#589) + * Fixes uncaught Error in abi_decoder (#763) + ## v0.7.1 - _June 19, 2018_ * Dependencies updated diff --git a/packages/utils/package.json b/packages/utils/package.json index f4f39956c..a454b35ee 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@0xproject/utils", - "version": "0.7.3", + "version": "0.7.2", "engines": { "node": ">=6.12" }, @@ -24,8 +24,8 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/utils/README.md", "devDependencies": { - "@0xproject/monorepo-scripts": "^0.2.1", - "@0xproject/tslint-config": "^0.4.20", + "@0xproject/monorepo-scripts": "^0.2.2", + "@0xproject/tslint-config": "^0.4.21", "@types/lodash": "4.14.104", "copyfiles": "^1.2.0", "make-promises-safe": "^1.1.0", @@ -35,15 +35,17 @@ "typescript": "2.7.1" }, "dependencies": { - "ethereum-types": "^0.0.1", + "@0xproject/types": "^1.0.0", "@0xproject/typescript-typings": "^0.4.2", "@types/node": "^8.0.53", - "ethereumjs-util": "^5.1.1", "bignumber.js": "~4.1.0", + "detect-node": "2.0.3", + "ethereum-types": "^0.0.2", + "ethereumjs-util": "^5.1.1", "ethers": "3.0.22", + "isomorphic-fetch": "^2.2.1", "js-sha3": "^0.7.0", - "lodash": "^4.17.4", - "web3": "^0.20.0" + "lodash": "^4.17.4" }, "publishConfig": { "access": "public" diff --git a/packages/utils/src/abi_decoder.ts b/packages/utils/src/abi_decoder.ts index d0c1ddc7d..b75387e3e 100644 --- a/packages/utils/src/abi_decoder.ts +++ b/packages/utils/src/abi_decoder.ts @@ -16,7 +16,6 @@ import { addressUtils } from './address_utils'; import { BigNumber } from './configured_bignumber'; export class AbiDecoder { - private _savedABIs: AbiDefinition[] = []; private _methodIds: { [signatureHash: string]: EventAbi } = {}; constructor(abiArrays: AbiDefinition[][]) { _.forEach(abiArrays, this.addABI.bind(this)); @@ -87,6 +86,5 @@ export class AbiDecoder { this._methodIds[topic] = abi; } }); - this._savedABIs = this._savedABIs.concat(abiArray); } } diff --git a/packages/utils/src/fetchAsync.ts b/packages/utils/src/fetchAsync.ts new file mode 100644 index 000000000..c02e5baba --- /dev/null +++ b/packages/utils/src/fetchAsync.ts @@ -0,0 +1,37 @@ +import isNode = require('detect-node'); +import 'isomorphic-fetch'; + +export const fetchAsync = async ( + endpoint: string, + options: RequestInit = {}, + timeoutMs: number = 20000, +): Promise<Response> => { + if (options.signal || (options as any).timeout) { + throw new Error( + 'Cannot call fetchAsync with options.signal or options.timeout. To set a timeout, please use the supplied "timeoutMs" parameter.', + ); + } + let optionsWithAbortParam; + if (!isNode) { + const controller = new AbortController(); + const signal = controller.signal; + setTimeout(() => { + controller.abort(); + }, timeoutMs); + optionsWithAbortParam = { + signal, + ...options, + }; + } else { + // HACK: the `timeout` param only exists in `node-fetch`, and not on the `isomorphic-fetch` + // `RequestInit` type. Since `isomorphic-fetch` conditionally wraps `node-fetch` when the + // execution environment is `Node.js`, we need to cast it to `any` in that scenario. + optionsWithAbortParam = { + timeout: timeoutMs, + ...options, + } as any; + } + + const response = await fetch(endpoint, optionsWithAbortParam); + return response; +}; diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index fd102cecb..b8e0b1775 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -8,3 +8,4 @@ export { logUtils } from './log_utils'; export { abiUtils } from './abi_utils'; export { NULL_BYTES } from './constants'; export { errorUtils } from './error_utils'; +export { fetchAsync } from './fetchAsync'; |