Skip to content

Commit 3ab6fa4

Browse files
committed
try/catch the deserlization and include the original request in the response for debugging.
1 parent 4af4384 commit 3ab6fa4

File tree

4 files changed

+30
-9
lines changed

4 files changed

+30
-9
lines changed

src/Transport.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ export declare class BittrexResponse {
1515
result: object | object[] | null;
1616
pathname?: string;
1717
data?: object;
18+
error?: any;
1819
}
1920
export declare class Transport {
2021
transportOptions: TransportOptions;
2122
private jsonConvert;
2223
constructor(transportOptions: TransportOptions);
2324
request<T>(responseType: ClassType<T>, pathname: string, data?: {}): Promise<T | T[]>;
25+
private makeRejection(pathname, data, error, bittrexResponse);
2426
private handleResponse<T>(responseType, response, pathname, data);
2527
private prepareRequest(pathname, data?);
2628
private removeUndefined(obj);

src/Transport.js

Lines changed: 13 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Transport.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Transport.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export class BittrexResponse {
2222
result: object | object[] | null;
2323
pathname?: string;
2424
data?: object;
25+
error?: any;
2526
}
2627

2728
export class Transport {
@@ -47,15 +48,24 @@ export class Transport {
4748
});
4849
}
4950

51+
private makeRejection(pathname: string, data: object, error: any, bittrexResponse: BittrexResponse): BittrexResponse {
52+
bittrexResponse.pathname = pathname;
53+
bittrexResponse.data = data;
54+
bittrexResponse.error = error;
55+
return Object.assign(new BittrexResponse(), bittrexResponse);
56+
}
57+
5058
private handleResponse<T>(responseType: ClassType<T>, response: got.Response<Object>, pathname: string, data: object): Promise<T | T[]> {
5159
return new Promise<T | T[]>((resolve, reject) => {
5260
let bittrexResponse = response.body as BittrexResponse;
5361
if (bittrexResponse.success) {
54-
return resolve(this.jsonConvert.deserialize(bittrexResponse.result, responseType));
62+
try {
63+
return resolve(this.jsonConvert.deserialize(bittrexResponse.result, responseType));
64+
} catch (error) {
65+
return reject(this.makeRejection(pathname, data, error, bittrexResponse));
66+
}
5567
} else {
56-
bittrexResponse.pathname = pathname;
57-
bittrexResponse.data = data;
58-
return reject(Object.assign(new BittrexResponse(), bittrexResponse));
68+
return reject(this.makeRejection(pathname, data, null, bittrexResponse));
5969
}
6070
});
6171
}

0 commit comments

Comments
 (0)