@clickup/pg-mig
Version:
PostgreSQL schema migration tool with microsharding and clustering support
67 lines • 2.15 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var _a, _b;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProgressPrinterStream = exports.ProgressPrinterTTY = void 0;
const throttle_1 = __importDefault(require("lodash/throttle"));
const log_update_1 = __importDefault(require("log-update"));
const render_1 = require("./render");
if (!process.stdout.columns && parseInt((_a = process.env["COLUMNS"]) !== null && _a !== void 0 ? _a : "")) {
process.stdout.columns = parseInt(process.env["COLUMNS"]);
}
if (!process.stdout.rows && parseInt((_b = process.env["ROWS"]) !== null && _b !== void 0 ? _b : "")) {
process.stdout.rows = parseInt(process.env["ROWS"]);
}
class ProgressPrinterTTY {
constructor() {
this.logUpdate = log_update_1.default.create(process.stdout, {
showCursor: true,
});
}
throttle(render) {
return (0, throttle_1.default)(render, 100, { trailing: false });
}
print(rows) {
if (rows.length > 0) {
this.logUpdate(rows.slice(0, Math.max((process.stdout.rows || 25) - 3, 3)).join("\n"));
}
else {
this.logUpdate.clear();
}
}
clear() {
this.logUpdate.clear();
}
skipEmptyLines() {
return false;
}
}
exports.ProgressPrinterTTY = ProgressPrinterTTY;
class ProgressPrinterStream {
constructor() {
this.printedNormalized = new Set();
}
throttle(render) {
return render;
}
print(rows) {
for (const line of rows) {
const normalized = line.replace(/^(\w+:.*) elapsed.*/s, "$1");
if (this.printedNormalized.has(normalized)) {
continue;
}
(0, render_1.printText)(line);
this.printedNormalized.add(normalized);
}
}
clear() {
this.printedNormalized.clear();
}
skipEmptyLines() {
return true;
}
}
exports.ProgressPrinterStream = ProgressPrinterStream;
//# sourceMappingURL=ProgressPrinter.js.map