UNPKG

@atomist/automation-client

Version:

Atomist API for software low-level client

40 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // tslint:disable-next-line:import-blacklist const axios_1 = require("axios"); const http_1 = require("../../internal/util/http"); const retry_1 = require("../../util/retry"); const httpClient_1 = require("./httpClient"); /** * Axios based HttpClient implementation. */ class AxiosHttpClient { exchange(url, options = {}) { const optionsToUse = Object.assign(Object.assign({}, httpClient_1.DefaultHttpClientOptions), options); const request = () => { return axios_1.default.request(this.configureOptions(http_1.configureProxy(Object.assign({ url, headers: optionsToUse.headers, method: optionsToUse.method.toString().toUpperCase(), data: optionsToUse.body }, optionsToUse.options)))) .then(result => { return { status: result.status, headers: result.headers, body: result.data, }; }); }; return retry_1.doWithRetry(request, `Requesting '${url}'`, optionsToUse.retry); } configureOptions(options) { return options; } } exports.AxiosHttpClient = AxiosHttpClient; /** * HttpClientFactory that creates HttpClient instances backed by Axios. */ class AxiosHttpClientFactory { create(url) { return new AxiosHttpClient(); } } exports.AxiosHttpClientFactory = AxiosHttpClientFactory; //# sourceMappingURL=axiosHttpClient.js.map