UNPKG

contentful-management

Version:
43 lines (40 loc) 1.41 kB
import axios from 'axios'; import { createHttpClient } from 'contentful-sdk-core'; import copy from 'fast-copy'; import { makeRequest } from './make-request.js'; /** * @internal */ const defaultHostParameters = { defaultHostname: 'api.contentful.com', defaultHostnameUpload: 'upload.contentful.com', }; class RestAdapter { constructor(params) { if (!params.accessToken) { throw new TypeError('Expected parameter accessToken'); } const copiedParams = copy(params); // httpAgent and httpsAgent cannot be copied because they can contain private fields copiedParams.httpAgent = params.httpAgent; copiedParams.httpsAgent = params.httpsAgent; this.params = { ...defaultHostParameters, ...copiedParams, }; this.axiosInstance = createHttpClient(axios, { ...this.params, headers: { 'Content-Type': 'application/vnd.contentful.management.v1+json', // possibly define a default user agent? ...(params.userAgent ? { 'X-Contentful-User-Agent': params.userAgent } : {}), ...this.params.headers, }, }); } async makeRequest(opts) { return makeRequest({ ...opts, axiosInstance: this.axiosInstance }); } } export { RestAdapter }; //# sourceMappingURL=rest-adapter.js.map