All files / dist/lib invoke.js

80% Statements 16/20
50% Branches 6/12
80% Functions 4/5
83.33% Lines 15/18
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 35 36 37 38 39 40 411x 1x 1x   1x 5x           5x           5x 5x             1x   9x 2x     7x       5x 5x 5x      
const request = require('request-promise');
const os = require('os');
const { BUILD_URL, getSDKVersion, parseResponse, parseData } = require('../utils/utils');
 
module.exports = (key, service, action, data, isCLI) => {
  const headers = {
    'X-Build-Meta-Language': `node@${process.version.replace(/^v/, '')}`,
    'X-Build-Meta-SDK': getSDKVersion(isCLI),
    'X-Build-Meta-OS': `${os.type().toLowerCase()}@${os.release()}`
  };
 
  return request.post(`${BUILD_URL}/run/${prefixName(service)}/${action}`, {
    formData: parseData(data),
    resolveWithFullResponse: true,
    headers,
    auth: { user: key }
  }).then(response => {
    Eif (response.headers) checkDeprecated(response);
    return parseResponse(response);
  }).catch(err => {
    if (err.response && err.response.headers) checkDeprecated(err.response);
    return Promise.reject(err.error);
  });
};
 
module.exports.prefixName = prefixName;
function prefixName(name) {
  if (name.indexOf('/') > -1 && !name.startsWith('@')) {
    return `@${name}`;
  }
 
  return name;
}
 
function checkDeprecated(response) {
  const service = response.headers['x-build-service'];
  const version = response.headers['x-build-version'];
  Iif (response.headers['x-build-deprecated']) {
    console.log(`${service} v${version} is deprecated! Run \`api update ${service}\` to use the latest version`.red);
  }
}