@@ -22,6 +22,7 @@ export class BittrexResponse {
2222 result : object | object [ ] | null ;
2323 pathname ?: string ;
2424 data ?: object ;
25+ error ?: any ;
2526}
2627
2728export 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