UNPKG

@atomist/automation-client

Version:
43 lines 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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({}, httpClient_1.DefaultHttpClientOptions, options); const request = () => { return axios_1.default.request(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); } } exports.AxiosHttpClient = AxiosHttpClient; /** * HttpClientFactory that creates HttpClient instances backed by Axios. */ class AxiosHttpClientFactory { create(url) { return new AxiosHttpClient(); } } exports.AxiosHttpClientFactory = AxiosHttpClientFactory; /** * Default HttpClientFactory which gets registered in the automation-client if not a * different HttpClientFactory implementation is configured. * @see Configuration.http.client.factory * @type {HttpClientFactory} */ exports.DefaultHttpClientFactory = new AxiosHttpClientFactory(); //# sourceMappingURL=axiosHttpClient.js.map