phenomic
Version:
Modern website generator based on the React and Webpack ecosystem.
76 lines (56 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handleInvalid = handleInvalid;
exports.handleDone = handleDone;
var _chalk = require("chalk");
var _chalk2 = _interopRequireDefault(_chalk);
var _ora = require("ora");
var _ora2 = _interopRequireDefault(_ora);
var _logSymbols = require("log-symbols");
var _logSymbols2 = _interopRequireDefault(_logSymbols);
var _log = require("../../_utils/log");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var spinner = (0, _ora2.default)();
// remove noize from messages
var betterMsg = function betterMsg(msg) {
return msg.replace(process.cwd(), ".")
// Webpack "Module not found" noize
.replace(/Error: Cannot resolve 'file' or 'directory'/, "")
// loader path for css
.replace(/.\/~\/(css|postcss|sass|less|stylus)-loader(.*)!/g, "");
};
function handleInvalid() {
spinner.text = "Updating";
spinner.start();
}
var isSyntaxError = function isSyntaxError(msg) {
return msg.includes("SyntaxError");
};
function handleDone(webpackStats) {
spinner.stop();
var stats = webpackStats.toJson({}, true);
if (!webpackStats.hasErrors() && !webpackStats.hasWarnings()) {
spinner.stream.write(_logSymbols2.default.success + _chalk2.default.green(" Updated ") + ("(in " + (0, _log.formatTime)(stats.time / 1000) + ")"));
return;
}
if (stats.errors.length) {
spinner.text = _chalk2.default.red("Update failed") + "\n";
spinner.fail();
spinner = (0, _ora2.default)();
var errors = stats.errors.some(isSyntaxError)
// Show syntax error first
? stats.errors.filter(isSyntaxError) : stats.errors;
errors.forEach(function (msg) {
return (0, _log.plainLog)("Error in " + betterMsg(msg) + "\n", "error");
});
return;
}
spinner.text = _chalk2.default.yellow("Updated with warnings") + "\n";
spinner.fail();
spinner = (0, _ora2.default)();
stats.warnings.forEach(function (msg) {
return (0, _log.plainLog)("Warning in " + betterMsg(msg) + " \n", "warning");
});
}