diff options
author | Fabio Berger <me@fabioberger.com> | 2018-07-13 05:13:47 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-07-13 05:13:47 +0800 |
commit | 49f1a6933cc22d1e703d631d5b861b8601ca2231 (patch) | |
tree | 3af6e0f9e84f09124d93b176c2cbfdd2a8edcaff /packages/utils | |
parent | a45a29432e722b71fcfc63a8545fa43ffc29b92d (diff) | |
download | dexon-sol-tools-49f1a6933cc22d1e703d631d5b861b8601ca2231.tar dexon-sol-tools-49f1a6933cc22d1e703d631d5b861b8601ca2231.tar.gz dexon-sol-tools-49f1a6933cc22d1e703d631d5b861b8601ca2231.tar.bz2 dexon-sol-tools-49f1a6933cc22d1e703d631d5b861b8601ca2231.tar.lz dexon-sol-tools-49f1a6933cc22d1e703d631d5b861b8601ca2231.tar.xz dexon-sol-tools-49f1a6933cc22d1e703d631d5b861b8601ca2231.tar.zst dexon-sol-tools-49f1a6933cc22d1e703d631d5b861b8601ca2231.zip |
Add fetchAsync util and RPCSubprovider
Diffstat (limited to 'packages/utils')
-rw-r--r-- | packages/utils/package.json | 4 | ||||
-rw-r--r-- | packages/utils/src/fetchAsync.ts | 29 | ||||
-rw-r--r-- | packages/utils/src/index.ts | 2 |
3 files changed, 33 insertions, 2 deletions
diff --git a/packages/utils/package.json b/packages/utils/package.json index 9168a3538..cb0989836 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -35,14 +35,14 @@ "typescript": "2.7.1" }, "dependencies": { - "ethereum-types": "^0.0.2", + "@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", "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" }, diff --git a/packages/utils/src/fetchAsync.ts b/packages/utils/src/fetchAsync.ts new file mode 100644 index 000000000..7cb2c1759 --- /dev/null +++ b/packages/utils/src/fetchAsync.ts @@ -0,0 +1,29 @@ +import { FetchRequest } from '@0xproject/types'; +import 'isomorphic-fetch'; + +export const fetchAsync = async ( + endpoint: string, + options: FetchRequest, + timeoutMs: number = 20000, +): Promise<Response> => { + let finalOptions; + if ((process as any).browser === true) { + const controller = new AbortController(); + const signal = controller.signal; + setTimeout(() => { + controller.abort(); + }, timeoutMs); + finalOptions = { + signal, + ...options, + }; + } else { + finalOptions = { + timeout: timeoutMs, + ...options, + }; + } + + const response = await fetch(endpoint, finalOptions); + return response; +}; diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index fd102cecb..48fd6152e 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -8,3 +8,5 @@ export { logUtils } from './log_utils'; export { abiUtils } from './abi_utils'; export { NULL_BYTES } from './constants'; export { errorUtils } from './error_utils'; +export { fetchAsync } from './fetchAsync'; +export { FetchRequest } from '@0xproject/types'; |