diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2018-01-12 07:58:33 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2018-01-13 00:01:41 +0800 |
commit | c2c75124315f71c8a87ac83cbab84ba02115169d (patch) | |
tree | 19c187b05e52798f3c42ae423bbf12dbd9a34c13 /packages/connect/src/http_client.ts | |
parent | 97e01d7a427e18d740f692ccc8a65225b9d36268 (diff) | |
download | dexon-sol-tools-c2c75124315f71c8a87ac83cbab84ba02115169d.tar dexon-sol-tools-c2c75124315f71c8a87ac83cbab84ba02115169d.tar.gz dexon-sol-tools-c2c75124315f71c8a87ac83cbab84ba02115169d.tar.bz2 dexon-sol-tools-c2c75124315f71c8a87ac83cbab84ba02115169d.tar.lz dexon-sol-tools-c2c75124315f71c8a87ac83cbab84ba02115169d.tar.xz dexon-sol-tools-c2c75124315f71c8a87ac83cbab84ba02115169d.tar.zst dexon-sol-tools-c2c75124315f71c8a87ac83cbab84ba02115169d.zip |
Improve HttpClient errors
Diffstat (limited to 'packages/connect/src/http_client.ts')
-rw-r--r-- | packages/connect/src/http_client.ts | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/packages/connect/src/http_client.ts b/packages/connect/src/http_client.ts index 5604a9607..c30b499a2 100644 --- a/packages/connect/src/http_client.ts +++ b/packages/connect/src/http_client.ts @@ -20,6 +20,7 @@ import { } from './types'; import { relayerResponseJsonParsers } from './utils/relayer_response_json_parsers'; +const TRAILING_SLASHES_REGEX = /\/+$/; /** * This class includes all the functionality related to interacting with a set of HTTP endpoints * that implement the standard relayer API v0 @@ -33,7 +34,7 @@ export class HttpClient implements Client { */ constructor(url: string) { assert.isHttpUrl('url', url); - this._apiEndpointUrl = url; + this._apiEndpointUrl = url.replace(TRAILING_SLASHES_REGEX, ''); // remove trailing slashes } /** * Retrieve token pair info from the API @@ -134,16 +135,18 @@ export class HttpClient implements Client { const headers = new Headers({ 'content-type': 'application/json', }); - const response = await fetch(url, { method: requestType, body: JSON.stringify(payload), headers, }); + const json = await response.json(); if (!response.ok) { - throw Error(response.statusText); + const errorString = `${response.status} - ${response.statusText}\n${requestType} ${url}\n${JSON.stringify( + json, + )}`; + throw Error(errorString); } - const json = await response.json(); return json; } } |