Code coverage report for src/common/util.js

Statements: 97.67% (42 / 43)      Branches: 90.91% (20 / 22)      Functions: 100% (7 / 7)      Lines: 97.62% (41 / 42)      Ignored: 1 branch     

All files » src/common/ » util.js
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94    1         2   1   1   1   1   1 1 1 1 1 1           1 12 12           1 6   6 6 6                 1 6           1 13 1 12 1   11             1 14 1 13 1   12 12             1 14 1 13 1   12      
'use strict';
 
Object.defineProperty(exports, '__esModule', {
  value: true
});
// istanbul ignore next
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
var _fs = require('fs');
 
var _fs2 = _interopRequireDefault(_fs);
 
var _path = require('path');
 
var _path2 = _interopRequireDefault(_path);
 
exports.executeShellCommand = executeShellCommand;
exports.getParsedJsonFromFile = getParsedJsonFromFile;
exports.getParsedPackageJsonFromPath = getParsedPackageJsonFromPath;
exports.isArray = isArray;
exports.isFunction = isFunction;
exports.isString = isString;
 
/**
 * Executes the command passed to it at the path requested
 * using the instance of shelljs passed in
 */
function executeShellCommand(sh, path, installCommand) {
  sh.cd(path);
  sh.exec(installCommand);
}
 
/**
 * Gets the parsed contents of a json file
 */
function getParsedJsonFromFile(filePath, fileName) {
  var encoding = arguments.length <= 2 || arguments[2] === undefined ? 'utf8' : arguments[2];
 
  try {
    var packageJsonContents = _fs2['default'].readFileSync(_path2['default'].join(filePath, fileName), encoding);
    return JSON.parse(packageJsonContents);
  } catch (e) {
    console.error(e);
  }
}
 
/**
 * A helper method for getting the contents of package.json at a given path
 */
function getParsedPackageJsonFromPath(path) {
  return getParsedJsonFromFile(path, 'package.json');
}
 
/**
 * Test if the passed argument is an array
 */
function isArray(arr) {
  if (typeof arr === "undefined") {
    return false;
  } else if (arr === null) {
    return false;
  } else {
    return arr.constructor === Array;
  }
}
 
/**
 * Test if the passed argument is a function
 */
function isFunction(functionToCheck) {
  if (typeof functionToCheck === "undefined") {
    return false;
  } else if (functionToCheck === null) {
    return false;
  } else {
    var getType = {};
    return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
  }
}
 
/**
 * Test if the passed argument is a string
 */
function isString(str) {
  if (typeof str === "undefined") {
    return false;
  } else if (str === null) {
    return false;
  } else {
    return Object.prototype.toString.call(str) == '[object String]';
  }
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3RyYXZpcy9idWlsZC9jb21taXRpemVuL2N6LWNsaS9zcmMvY29tbW9uL3V0aWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O2tCQUFlLElBQUk7Ozs7b0JBQ0YsTUFBTTs7OztRQUdyQixtQkFBbUIsR0FBbkIsbUJBQW1CO1FBQ25CLHFCQUFxQixHQUFyQixxQkFBcUI7UUFDckIsNEJBQTRCLEdBQTVCLDRCQUE0QjtRQUM1QixPQUFPLEdBQVAsT0FBTztRQUNQLFVBQVUsR0FBVixVQUFVO1FBQ1YsUUFBUSxHQUFSLFFBQVE7Ozs7OztBQU9WLFNBQVMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUU7QUFDckQsSUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNaLElBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Q0FDekI7Ozs7O0FBS0QsU0FBUyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFxQjtNQUFuQixRQUFRLHlEQUFHLE1BQU07O0FBQ2xFLE1BQUk7QUFDRixRQUFJLG1CQUFtQixHQUFHLGdCQUFHLFlBQVksQ0FBQyxrQkFBSyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ25GLFdBQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0dBQ3hDLENBQUMsT0FBTyxDQUFDLEVBQUU7QUFDVixXQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0dBQ2xCO0NBQ0Y7Ozs7O0FBS0QsU0FBUyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUU7QUFDMUMsU0FBTyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7Q0FDcEQ7Ozs7O0FBS0QsU0FBUyxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQ2xCLE1BQUcsT0FBTyxHQUFHLEtBQUssV0FBVyxFQUMvQjtBQUNFLFdBQU8sS0FBSyxDQUFDO0dBQ2QsTUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7QUFDdkIsV0FBTyxLQUFLLENBQUM7R0FDZCxNQUFNO0FBQ0wsV0FBTyxHQUFHLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQztHQUNsQztDQUNGOzs7OztBQUtELFNBQVMsVUFBVSxDQUFDLGVBQWUsRUFBRTtBQUNuQyxNQUFHLE9BQU8sZUFBZSxLQUFLLFdBQVcsRUFDekM7QUFDRSxXQUFPLEtBQUssQ0FBQztHQUNkLE1BQU0sSUFBSSxlQUFlLEtBQUssSUFBSSxFQUFFO0FBQ25DLFdBQU8sS0FBSyxDQUFDO0dBQ2QsTUFBTTtBQUNMLFFBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUNqQixXQUFPLGVBQWUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxtQkFBbUIsQ0FBQztHQUMxRjtDQUNGOzs7OztBQUtELFNBQVMsUUFBUSxDQUFDLEdBQUcsRUFBRTtBQUNyQixNQUFHLE9BQU8sR0FBRyxLQUFLLFdBQVcsRUFDN0I7QUFDRSxXQUFPLEtBQUssQ0FBQztHQUNkLE1BQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO0FBQ3ZCLFdBQU8sS0FBSyxDQUFDO0dBQ2QsTUFBTTtBQUNMLFdBQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixDQUFDO0dBQ2pFO0NBQ0YiLCJmaWxlIjoiL2hvbWUvdHJhdmlzL2J1aWxkL2NvbW1pdGl6ZW4vY3otY2xpL3NyYy9jb21tb24vdXRpbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuZXhwb3J0IHtcbiAgZXhlY3V0ZVNoZWxsQ29tbWFuZCxcbiAgZ2V0UGFyc2VkSnNvbkZyb21GaWxlLFxuICBnZXRQYXJzZWRQYWNrYWdlSnNvbkZyb21QYXRoLFxuICBpc0FycmF5LFxuICBpc0Z1bmN0aW9uLFxuICBpc1N0cmluZ1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIHRoZSBjb21tYW5kIHBhc3NlZCB0byBpdCBhdCB0aGUgcGF0aCByZXF1ZXN0ZWRcbiAqIHVzaW5nIHRoZSBpbnN0YW5jZSBvZiBzaGVsbGpzIHBhc3NlZCBpblxuICovXG5mdW5jdGlvbiBleGVjdXRlU2hlbGxDb21tYW5kKHNoLCBwYXRoLCBpbnN0YWxsQ29tbWFuZCkge1xuICBzaC5jZChwYXRoKTtcbiAgc2guZXhlYyhpbnN0YWxsQ29tbWFuZCk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgcGFyc2VkIGNvbnRlbnRzIG9mIGEganNvbiBmaWxlXG4gKi9cbmZ1bmN0aW9uIGdldFBhcnNlZEpzb25Gcm9tRmlsZShmaWxlUGF0aCwgZmlsZU5hbWUsIGVuY29kaW5nID0gJ3V0ZjgnKSB7XG4gIHRyeSB7XG4gICAgdmFyIHBhY2thZ2VKc29uQ29udGVudHMgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKGZpbGVQYXRoLCBmaWxlTmFtZSksIGVuY29kaW5nKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShwYWNrYWdlSnNvbkNvbnRlbnRzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGhlbHBlciBtZXRob2QgZm9yIGdldHRpbmcgdGhlIGNvbnRlbnRzIG9mIHBhY2thZ2UuanNvbiBhdCBhIGdpdmVuIHBhdGhcbiAqL1xuZnVuY3Rpb24gZ2V0UGFyc2VkUGFja2FnZUpzb25Gcm9tUGF0aChwYXRoKSB7XG4gIHJldHVybiBnZXRQYXJzZWRKc29uRnJvbUZpbGUocGF0aCwgJ3BhY2thZ2UuanNvbicpO1xufVxuXG4vKipcbiAqIFRlc3QgaWYgdGhlIHBhc3NlZCBhcmd1bWVudCBpcyBhbiBhcnJheVxuICovXG5mdW5jdGlvbiBpc0FycmF5KGFycikge1xuICAgIGlmKHR5cGVvZiBhcnIgPT09IFwidW5kZWZpbmVkXCIpXG4gIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSBpZiAoYXJyID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhcnIuY29uc3RydWN0b3IgPT09IEFycmF5O1xuICB9XG59XG5cbi8qKlxuICogVGVzdCBpZiB0aGUgcGFzc2VkIGFyZ3VtZW50IGlzIGEgZnVuY3Rpb25cbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcbiAgaWYodHlwZW9mIGZ1bmN0aW9uVG9DaGVjayA9PT0gXCJ1bmRlZmluZWRcIilcbiAge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIGlmIChmdW5jdGlvblRvQ2hlY2sgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGdldFR5cGUgPSB7fTtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xuICB9XG59XG5cbi8qKlxuICogVGVzdCBpZiB0aGUgcGFzc2VkIGFyZ3VtZW50IGlzIGEgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGlzU3RyaW5nKHN0cikge1xuICBpZih0eXBlb2Ygc3RyID09PSBcInVuZGVmaW5lZFwiKVxuICB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2UgaWYgKHN0ciA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHN0cikgPT0gJ1tvYmplY3QgU3RyaW5nXSc7XG4gIH1cbn1cbiJdfQ==