All files / api-build/lib invoke.js

80% Statements 16/20
60% Branches 6/10
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 41 421x 1x 1x   1x 4x           4x           4x 4x             1x   8x 2x     6x       4x 4x 4x        
const request = require('request-promise');
const os = require('os');
const { BUILD_URL, getSDKVersion } = 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}`, {
    json: data,
    resolveWithFullResponse: true,
    headers,
    auth: { user: key },
  }).then((response) => {
    Eif (response.headers) checkDeprecated(response);
    return response;
  }).catch((err) => {
    if (err.response.headers) checkDeprecated(err.response);
    return Promise.reject(err);
  });
};
 
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);
  }
}