zcatalyst-cli
Version:
Command Line Tool for CATALYST
44 lines (43 loc) • 1.85 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.cleanStream = exports.writeStream = exports.getLinesLength = exports.breakText = void 0;
const readline_1 = require("readline");
const strip_ansi_1 = __importDefault(require("strip-ansi"));
function breakText(text, prefixLength) {
return (0, strip_ansi_1.default)(text)
.split('\n')
.map((line, index) => (index === 0 ? breakLine(line, prefixLength) : breakLine(line, 0)))
.join('\n');
}
exports.breakText = breakText;
function breakLine(line, prefixLength) {
const columns = process.stderr.columns || 95;
return line.length >= columns - prefixLength
? `${line.substring(0, columns - prefixLength - 1)}\n${breakLine(line.substring(columns - prefixLength - 1, line.length), 0)}`
: line;
}
function getLinesLength(text, prefixLength) {
return (0, strip_ansi_1.default)(text)
.split('\n')
.map((line, index) => (index === 0 ? line.length + prefixLength : line.length));
}
exports.getLinesLength = getLinesLength;
function writeStream(stream, output, rawLines) {
stream.write(output);
(0, readline_1.moveCursor)(stream, 0, -rawLines.length);
}
exports.writeStream = writeStream;
function cleanStream(stream, rawLines) {
rawLines.forEach((lineLength, index) => {
(0, readline_1.moveCursor)(stream, lineLength, index);
(0, readline_1.clearLine)(stream, 1);
(0, readline_1.moveCursor)(stream, -lineLength, -index);
});
(0, readline_1.moveCursor)(stream, 0, rawLines.length);
(0, readline_1.clearScreenDown)(stream);
(0, readline_1.moveCursor)(stream, 0, -rawLines.length);
}
exports.cleanStream = cleanStream;