d2-ui
Version:
219 lines (154 loc) • 5.73 kB
JavaScript
var _regenerator = require("babel-runtime/regenerator");
var _regenerator2 = _interopRequireDefault(_regenerator);
var _promise = require("babel-runtime/core-js/promise");
var _promise2 = _interopRequireDefault(_promise);
var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator");
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _getIterator2 = require("babel-runtime/core-js/get-iterator");
var _getIterator3 = _interopRequireDefault(_getIterator2);
var run = function () {
var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
var promises, key, fn, results, _iterator2, _isArray2, _i2, _ref3, _ref4, success, message, multiline;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
promises = [];
_context.t0 = _regenerator2.default.keys(rules);
case 2:
if ((_context.t1 = _context.t0()).done) {
_context.next = 10;
break;
}
key = _context.t1.value;
if (!(key[0] === "_")) {
_context.next = 6;
break;
}
return _context.abrupt("continue", 2);
case 6:
fn = rules[key];
promises.push(fn(packages));
_context.next = 2;
break;
case 10:
_context.next = 12;
return _promise2.default.all(promises);
case 12:
results = _context.sent;
_iterator2 = results, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);
case 14:
if (!_isArray2) {
_context.next = 20;
break;
}
if (!(_i2 >= _iterator2.length)) {
_context.next = 17;
break;
}
return _context.abrupt("break", 34);
case 17:
_ref3 = _iterator2[_i2++];
_context.next = 24;
break;
case 20:
_i2 = _iterator2.next();
if (!_i2.done) {
_context.next = 23;
break;
}
return _context.abrupt("break", 34);
case 23:
_ref3 = _i2.value;
case 24:
_ref4 = _ref3;
success = _ref4[0];
message = _ref4[1];
if (!success) didError = true;
multiline = message.indexOf("\n") >= 0;
if (multiline) sep();
log((success ? _logSymbols2.default.success : _logSymbols2.default.error) + " " + message);
if (multiline) sep();
case 32:
_context.next = 14;
break;
case 34:
sep();
if (didError) {
log(_chalk2.default.red("Found potential issues on your machine :("));
} else {
log(_chalk2.default.green("Everything looks all right!"));
}
sep();
case 37:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
return function run() {
return _ref2.apply(this, arguments);
};
}();
var _chalk = require("chalk");
var _chalk2 = _interopRequireDefault(_chalk);
var _path = require("path");
var _path2 = _interopRequireDefault(_path);
var _fs = require("fs");
var _fs2 = _interopRequireDefault(_fs);
var _rules = require("./rules");
var rules = _interopRequireWildcard(_rules);
var _logSymbols = require("log-symbols");
var _logSymbols2 = _interopRequireDefault(_logSymbols);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var didError = false;
var lastWasSep = false;
function sep() {
if (lastWasSep) return;
lastWasSep = true;
console.log();
}
function log(msg) {
lastWasSep = false;
console.log(msg);
}
log("\n" + _chalk2.default.underline.yellow("Babel Doctor"));
log("Running sanity checks on your system. This may take a few minutes...\n");
var packages = [];
var nodeModulesDirectories = [_path2.default.join(process.cwd(), "node_modules")];
while (nodeModulesDirectories.length) {
var loc = nodeModulesDirectories.shift();
if (!_fs2.default.existsSync(loc)) continue;
var packagesNames = _fs2.default.readdirSync(loc);
for (var _iterator = packagesNames, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var packageName = _ref;
if (packageName[0] === ".") continue;
var packageLoc = _path2.default.join(loc, packageName);
var packageJsonLoc = _path2.default.join(packageLoc, "package.json");
if (!_fs2.default.existsSync(packageJsonLoc)) continue;
packages.push({
name: packageName,
loc: packageLoc,
version: require(packageJsonLoc).version
});
nodeModulesDirectories.push(_path2.default.join(packageLoc, "node_modules"));
}
}
run().then(function () {
process.exit(0);
}, function (err) {
console.error(err.stack);
process.exit(1);
});
;