All files / src create-http-client.js

100% Statements 5/5
100% Branches 3/3
100% Functions 1/1
100% Lines 5/5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34                              1x   1x               1x       1x   1x    
import fs from 'fs';
import https from 'https';
import path from 'path';
import axios from 'axios';
import qs from 'qs';
 
import cert from './cacert.pem';
 
import { version } from '../package.json';
 
/**
 * Create pre-configured httpClient instance
 * @private
 */
export default function createHttpClient(options = {}) {
  options.baseURL = 'https://api.mollie.com:443/v2/';
 
  options.headers = Object.assign({}, options.headers, {
    Authorization: `Bearer ${options.apiKey}`,
    'Accept-Encoding': 'gzip',
    'Content-Type': 'application/json',
    'User-Agent': `node.js/${process.version}`,
    'X-Mollie-User-Agent': `mollie/${version}`,
  });
 
  options.httpsAgent = new https.Agent({
    cert: fs.readFileSync(path.resolve(__dirname, cert)),
  });
 
  options.paramsSerializer = options.paramsSerializer || qs.stringify;
 
  return axios.create(options);
}