index.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. "use strict";
  2. var _regenerator = require("babel-runtime/regenerator");
  3. var _regenerator2 = _interopRequireDefault(_regenerator);
  4. var _promise = require("babel-runtime/core-js/promise");
  5. var _promise2 = _interopRequireDefault(_promise);
  6. var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator");
  7. var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
  8. var _getIterator2 = require("babel-runtime/core-js/get-iterator");
  9. var _getIterator3 = _interopRequireDefault(_getIterator2);
  10. var run = function () {
  11. var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
  12. var promises, key, fn, results, _iterator2, _isArray2, _i2, _ref3, _ref4, success, message, multiline;
  13. return _regenerator2.default.wrap(function _callee$(_context) {
  14. while (1) {
  15. switch (_context.prev = _context.next) {
  16. case 0:
  17. promises = [];
  18. _context.t0 = _regenerator2.default.keys(rules);
  19. case 2:
  20. if ((_context.t1 = _context.t0()).done) {
  21. _context.next = 10;
  22. break;
  23. }
  24. key = _context.t1.value;
  25. if (!(key[0] === "_")) {
  26. _context.next = 6;
  27. break;
  28. }
  29. return _context.abrupt("continue", 2);
  30. case 6:
  31. fn = rules[key];
  32. promises.push(fn(packages));
  33. _context.next = 2;
  34. break;
  35. case 10:
  36. _context.next = 12;
  37. return _promise2.default.all(promises);
  38. case 12:
  39. results = _context.sent;
  40. _iterator2 = results, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);
  41. case 14:
  42. if (!_isArray2) {
  43. _context.next = 20;
  44. break;
  45. }
  46. if (!(_i2 >= _iterator2.length)) {
  47. _context.next = 17;
  48. break;
  49. }
  50. return _context.abrupt("break", 34);
  51. case 17:
  52. _ref3 = _iterator2[_i2++];
  53. _context.next = 24;
  54. break;
  55. case 20:
  56. _i2 = _iterator2.next();
  57. if (!_i2.done) {
  58. _context.next = 23;
  59. break;
  60. }
  61. return _context.abrupt("break", 34);
  62. case 23:
  63. _ref3 = _i2.value;
  64. case 24:
  65. _ref4 = _ref3;
  66. success = _ref4[0];
  67. message = _ref4[1];
  68. if (!success) didError = true;
  69. multiline = message.indexOf("\n") >= 0;
  70. if (multiline) sep();
  71. log((success ? _logSymbols2.default.success : _logSymbols2.default.error) + " " + message);
  72. if (multiline) sep();
  73. case 32:
  74. _context.next = 14;
  75. break;
  76. case 34:
  77. sep();
  78. if (didError) {
  79. log(_chalk2.default.red("Found potential issues on your machine :("));
  80. } else {
  81. log(_chalk2.default.green("Everything looks all right!"));
  82. }
  83. sep();
  84. case 37:
  85. case "end":
  86. return _context.stop();
  87. }
  88. }
  89. }, _callee, this);
  90. }));
  91. return function run() {
  92. return _ref2.apply(this, arguments);
  93. };
  94. }();
  95. var _chalk = require("chalk");
  96. var _chalk2 = _interopRequireDefault(_chalk);
  97. var _path = require("path");
  98. var _path2 = _interopRequireDefault(_path);
  99. var _fs = require("fs");
  100. var _fs2 = _interopRequireDefault(_fs);
  101. var _rules = require("./rules");
  102. var rules = _interopRequireWildcard(_rules);
  103. var _logSymbols = require("log-symbols");
  104. var _logSymbols2 = _interopRequireDefault(_logSymbols);
  105. 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; } }
  106. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  107. var didError = false;
  108. var lastWasSep = false;
  109. function sep() {
  110. if (lastWasSep) return;
  111. lastWasSep = true;
  112. console.log();
  113. }
  114. function log(msg) {
  115. lastWasSep = false;
  116. console.log(msg);
  117. }
  118. log("\n" + _chalk2.default.underline.yellow("Babel Doctor"));
  119. log("Running sanity checks on your system. This may take a few minutes...\n");
  120. var packages = [];
  121. var nodeModulesDirectories = [_path2.default.join(process.cwd(), "node_modules")];
  122. while (nodeModulesDirectories.length) {
  123. var loc = nodeModulesDirectories.shift();
  124. if (!_fs2.default.existsSync(loc)) continue;
  125. var packagesNames = _fs2.default.readdirSync(loc);
  126. for (var _iterator = packagesNames, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
  127. var _ref;
  128. if (_isArray) {
  129. if (_i >= _iterator.length) break;
  130. _ref = _iterator[_i++];
  131. } else {
  132. _i = _iterator.next();
  133. if (_i.done) break;
  134. _ref = _i.value;
  135. }
  136. var packageName = _ref;
  137. if (packageName[0] === ".") continue;
  138. var packageLoc = _path2.default.join(loc, packageName);
  139. var packageJsonLoc = _path2.default.join(packageLoc, "package.json");
  140. if (!_fs2.default.existsSync(packageJsonLoc)) continue;
  141. packages.push({
  142. name: packageName,
  143. loc: packageLoc,
  144. version: require(packageJsonLoc).version
  145. });
  146. nodeModulesDirectories.push(_path2.default.join(packageLoc, "node_modules"));
  147. }
  148. }
  149. run().then(function () {
  150. process.exit(0);
  151. }, function (err) {
  152. console.error(err.stack);
  153. process.exit(1);
  154. });