aboutsummaryrefslogtreecommitdiffstats
path: root/packages/connect/src/http_client.ts
diff options
context:
space:
mode:
authorBrandon Millman <brandon.millman@gmail.com>2018-01-12 07:58:33 +0800
committerBrandon Millman <brandon.millman@gmail.com>2018-01-13 00:01:41 +0800
commitc2c75124315f71c8a87ac83cbab84ba02115169d (patch)
tree19c187b05e52798f3c42ae423bbf12dbd9a34c13 /packages/connect/src/http_client.ts
parent97e01d7a427e18d740f692ccc8a65225b9d36268 (diff)
downloaddexon-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.ts11
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;
}
}