@exchanges/binance
Version:
Exchange provider for Binance API
40 lines • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.responseErrorInterceptor = void 0;
const __1 = require("..");
function responseErrorInterceptor(binanceClient) {
return (instance) => {
const id = instance.interceptors.response.use((response) => {
if (!response)
throw __1.BinanceError.UnknownError();
response.data = response.data || {};
if (response.status !== 200 || ('success' in response.data && !response.data['success']))
throw __1.BinanceError.getBinanceErrorFromData(response.data, response.config.url, Object.entries(response.headers));
return response;
}, (error) => {
if (error instanceof __1.BinanceError)
throw error;
if (error) {
if (error instanceof __1.BinanceError)
throw error;
if (error.response) {
const response = error.response;
throw __1.BinanceError.getBinanceErrorFromData(response.data, response.config.url, Object.entries(response.headers));
}
else if (error.config) {
const config = error.config;
throw __1.BinanceError.getBinanceErrorFromData(null, config.url);
}
else {
throw __1.BinanceError.UnknownError();
}
}
throw __1.BinanceError.UnknownError();
});
return () => {
instance.interceptors.response.eject(id);
};
};
}
exports.responseErrorInterceptor = responseErrorInterceptor;
//# sourceMappingURL=responseErrorInterceptor.js.map