UNPKG

grind-cli

Version:
67 lines (51 loc) 6.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Output = void 0; var _OutputFormatter = require("./OutputFormatter.js"); var _InvocationError = require("../Errors/InvocationError.js"); class Output { constructor(app, formatter = new _OutputFormatter.OutputFormatter()) { this.app = null; this.formatter = null; this.app = app; this.formatter = formatter; } writeln(...messages) { return this._write(messages, true); } write(...messages) { return this._write(messages, false); } _write(messages, newLine) { messages[0] = this.formatter.format(messages[0]); if (newLine) { console.log(...messages); } else { process.stdout.write(...messages); } } writeError(err) { let message = null; if (err instanceof _InvocationError.InvocationError) { message = `${err.message}`; } else { message = (err.stack || err).toString(); } if (!this.formatter.decorated) { return this.writeln(message); } const lines = message.split(/\n/); const maxLength = Math.min((process.stdout.columns || 80) - 4, Array.from(lines).sort((a, b) => a.length > b.length ? -1 : 1)[0].length); this.writeln(''); this.writeln(`<error> ${''.padStart(maxLength, ' ')} </error>`); for (const line of lines) { this.writeln(`<error> ${line.padEnd(maxLength, ' ')} </error>`); } this.writeln(`<error> ${''.padStart(maxLength, ' ')} </error>`); this.writeln(''); } } exports.Output = Output; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9PdXRwdXQvT3V0cHV0LmpzIl0sIm5hbWVzIjpbIk91dHB1dCIsImNvbnN0cnVjdG9yIiwiYXBwIiwiZm9ybWF0dGVyIiwiT3V0cHV0Rm9ybWF0dGVyIiwid3JpdGVsbiIsIm1lc3NhZ2VzIiwiX3dyaXRlIiwid3JpdGUiLCJuZXdMaW5lIiwiZm9ybWF0IiwiY29uc29sZSIsImxvZyIsInByb2Nlc3MiLCJzdGRvdXQiLCJ3cml0ZUVycm9yIiwiZXJyIiwibWVzc2FnZSIsIkludm9jYXRpb25FcnJvciIsInN0YWNrIiwidG9TdHJpbmciLCJkZWNvcmF0ZWQiLCJsaW5lcyIsInNwbGl0IiwibWF4TGVuZ3RoIiwiTWF0aCIsIm1pbiIsImNvbHVtbnMiLCJBcnJheSIsImZyb20iLCJzb3J0IiwiYSIsImIiLCJsZW5ndGgiLCJwYWRTdGFydCIsImxpbmUiLCJwYWRFbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBSU8sTUFBTUEsTUFBTixDQUFhO0FBSW5CQyxFQUFBQSxXQUFXLENBQUNDLEdBQUQsRUFBTUMsU0FBUyxHQUFHLElBQUlDLGdDQUFKLEVBQWxCLEVBQXlDO0FBQUEsU0FIcERGLEdBR29ELEdBSDlDLElBRzhDO0FBQUEsU0FGcERDLFNBRW9ELEdBRnhDLElBRXdDO0FBQ25ELFNBQUtELEdBQUwsR0FBV0EsR0FBWDtBQUNBLFNBQUtDLFNBQUwsR0FBaUJBLFNBQWpCO0FBQ0E7O0FBRURFLEVBQUFBLE9BQU8sQ0FBQyxHQUFHQyxRQUFKLEVBQWM7QUFDcEIsV0FBTyxLQUFLQyxNQUFMLENBQVlELFFBQVosRUFBc0IsSUFBdEIsQ0FBUDtBQUNBOztBQUVERSxFQUFBQSxLQUFLLENBQUMsR0FBR0YsUUFBSixFQUFjO0FBQ2xCLFdBQU8sS0FBS0MsTUFBTCxDQUFZRCxRQUFaLEVBQXNCLEtBQXRCLENBQVA7QUFDQTs7QUFFREMsRUFBQUEsTUFBTSxDQUFDRCxRQUFELEVBQVdHLE9BQVgsRUFBb0I7QUFDekJILElBQUFBLFFBQVEsQ0FBQyxDQUFELENBQVIsR0FBYyxLQUFLSCxTQUFMLENBQWVPLE1BQWYsQ0FBc0JKLFFBQVEsQ0FBQyxDQUFELENBQTlCLENBQWQ7O0FBRUEsUUFBSUcsT0FBSixFQUFhO0FBQ1pFLE1BQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLEdBQUdOLFFBQWY7QUFDQSxLQUZELE1BRU87QUFDTk8sTUFBQUEsT0FBTyxDQUFDQyxNQUFSLENBQWVOLEtBQWYsQ0FBcUIsR0FBR0YsUUFBeEI7QUFDQTtBQUNEOztBQUVEUyxFQUFBQSxVQUFVLENBQUNDLEdBQUQsRUFBTTtBQUNmLFFBQUlDLE9BQU8sR0FBRyxJQUFkOztBQUVBLFFBQUlELEdBQUcsWUFBWUUsZ0NBQW5CLEVBQW9DO0FBQ25DRCxNQUFBQSxPQUFPLEdBQUksR0FBRUQsR0FBRyxDQUFDQyxPQUFRLEVBQXpCO0FBQ0EsS0FGRCxNQUVPO0FBQ05BLE1BQUFBLE9BQU8sR0FBRyxDQUFDRCxHQUFHLENBQUNHLEtBQUosSUFBYUgsR0FBZCxFQUFtQkksUUFBbkIsRUFBVjtBQUNBOztBQUVELFFBQUksQ0FBQyxLQUFLakIsU0FBTCxDQUFla0IsU0FBcEIsRUFBK0I7QUFDOUIsYUFBTyxLQUFLaEIsT0FBTCxDQUFhWSxPQUFiLENBQVA7QUFDQTs7QUFFRCxVQUFNSyxLQUFLLEdBQUdMLE9BQU8sQ0FBQ00sS0FBUixDQUFjLElBQWQsQ0FBZDtBQUNBLFVBQU1DLFNBQVMsR0FBR0MsSUFBSSxDQUFDQyxHQUFMLENBQ2pCLENBQUNiLE9BQU8sQ0FBQ0MsTUFBUixDQUFlYSxPQUFmLElBQTBCLEVBQTNCLElBQWlDLENBRGhCLEVBRWpCQyxLQUFLLENBQUNDLElBQU4sQ0FBV1AsS0FBWCxFQUFrQlEsSUFBbEIsQ0FBdUIsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVdELENBQUMsQ0FBQ0UsTUFBRixHQUFXRCxDQUFDLENBQUNDLE1BQWIsR0FBc0IsQ0FBQyxDQUF2QixHQUEyQixDQUE3RCxFQUFpRSxDQUFqRSxFQUFvRUEsTUFGbkQsQ0FBbEI7QUFLQSxTQUFLNUIsT0FBTCxDQUFhLEVBQWI7QUFDQSxTQUFLQSxPQUFMLENBQWMsWUFBVyxHQUFHNkIsUUFBSCxDQUFZVixTQUFaLEVBQXVCLEdBQXZCLENBQTRCLFlBQXJEOztBQUVBLFNBQUssTUFBTVcsSUFBWCxJQUFtQmIsS0FBbkIsRUFBMEI7QUFDekIsV0FBS2pCLE9BQUwsQ0FBYyxZQUFXOEIsSUFBSSxDQUFDQyxNQUFMLENBQVlaLFNBQVosRUFBdUIsR0FBdkIsQ0FBNEIsWUFBckQ7QUFDQTs7QUFFRCxTQUFLbkIsT0FBTCxDQUFjLFlBQVcsR0FBRzZCLFFBQUgsQ0FBWVYsU0FBWixFQUF1QixHQUF2QixDQUE0QixZQUFyRDtBQUNBLFNBQUtuQixPQUFMLENBQWEsRUFBYjtBQUNBOztBQXZEa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4vT3V0cHV0Rm9ybWF0dGVyJ1xuXG5pbXBvcnQgJy4uL0Vycm9ycy9JbnZvY2F0aW9uRXJyb3InXG5cbmV4cG9ydCBjbGFzcyBPdXRwdXQge1xuXHRhcHAgPSBudWxsXG5cdGZvcm1hdHRlciA9IG51bGxcblxuXHRjb25zdHJ1Y3RvcihhcHAsIGZvcm1hdHRlciA9IG5ldyBPdXRwdXRGb3JtYXR0ZXIoKSkge1xuXHRcdHRoaXMuYXBwID0gYXBwXG5cdFx0dGhpcy5mb3JtYXR0ZXIgPSBmb3JtYXR0ZXJcblx0fVxuXG5cdHdyaXRlbG4oLi4ubWVzc2FnZXMpIHtcblx0XHRyZXR1cm4gdGhpcy5fd3JpdGUobWVzc2FnZXMsIHRydWUpXG5cdH1cblxuXHR3cml0ZSguLi5tZXNzYWdlcykge1xuXHRcdHJldHVybiB0aGlzLl93cml0ZShtZXNzYWdlcywgZmFsc2UpXG5cdH1cblxuXHRfd3JpdGUobWVzc2FnZXMsIG5ld0xpbmUpIHtcblx0XHRtZXNzYWdlc1swXSA9IHRoaXMuZm9ybWF0dGVyLmZvcm1hdChtZXNzYWdlc1swXSlcblxuXHRcdGlmIChuZXdMaW5lKSB7XG5cdFx0XHRjb25zb2xlLmxvZyguLi5tZXNzYWdlcylcblx0XHR9IGVsc2Uge1xuXHRcdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoLi4ubWVzc2FnZXMpXG5cdFx0fVxuXHR9XG5cblx0d3JpdGVFcnJvcihlcnIpIHtcblx0XHRsZXQgbWVzc2FnZSA9IG51bGxcblxuXHRcdGlmIChlcnIgaW5zdGFuY2VvZiBJbnZvY2F0aW9uRXJyb3IpIHtcblx0XHRcdG1lc3NhZ2UgPSBgJHtlcnIubWVzc2FnZX1gXG5cdFx0fSBlbHNlIHtcblx0XHRcdG1lc3NhZ2UgPSAoZXJyLnN0YWNrIHx8IGVycikudG9TdHJpbmcoKVxuXHRcdH1cblxuXHRcdGlmICghdGhpcy5mb3JtYXR0ZXIuZGVjb3JhdGVkKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy53cml0ZWxuKG1lc3NhZ2UpXG5cdFx0fVxuXG5cdFx0Y29uc3QgbGluZXMgPSBtZXNzYWdlLnNwbGl0KC9cXG4vKVxuXHRcdGNvbnN0IG1heExlbmd0aCA9IE1hdGgubWluKFxuXHRcdFx0KHByb2Nlc3Muc3Rkb3V0LmNvbHVtbnMgfHwgODApIC0gNCxcblx0XHRcdEFycmF5LmZyb20obGluZXMpLnNvcnQoKGEsIGIpID0+IChhLmxlbmd0aCA+IGIubGVuZ3RoID8gLTEgOiAxKSlbMF0ubGVuZ3RoLFxuXHRcdClcblxuXHRcdHRoaXMud3JpdGVsbignJylcblx0XHR0aGlzLndyaXRlbG4oYDxlcnJvcj4gICR7JycucGFkU3RhcnQobWF4TGVuZ3RoLCAnICcpfSAgPC9lcnJvcj5gKVxuXG5cdFx0Zm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG5cdFx0XHR0aGlzLndyaXRlbG4oYDxlcnJvcj4gICR7bGluZS5wYWRFbmQobWF4TGVuZ3RoLCAnICcpfSAgPC9lcnJvcj5gKVxuXHRcdH1cblxuXHRcdHRoaXMud3JpdGVsbihgPGVycm9yPiAgJHsnJy5wYWRTdGFydChtYXhMZW5ndGgsICcgJyl9ICA8L2Vycm9yPmApXG5cdFx0dGhpcy53cml0ZWxuKCcnKVxuXHR9XG59XG4iXX0=