contentful-management
Version:
Client for Contentful's Content Management API
43 lines (40 loc) • 1.41 kB
JavaScript
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