31 lines
2.7 KiB
JavaScript
31 lines
2.7 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.StringWriteStream = void 0;
|
|
const node_stream_1 = require("node:stream");
|
|
/*
|
|
* Custom writable stream that collects text into a string buffer.
|
|
* Used on classes that take in and directly write to a stream, but
|
|
* we intend to capture the output rather than print.
|
|
*/
|
|
class StringWriteStream extends node_stream_1.Writable {
|
|
buffer = [];
|
|
/**
|
|
* Terminal width in columns.
|
|
* Used by formatTable() to apply width constraints and prevent table overflow.
|
|
*/
|
|
get columns() {
|
|
return process.stdout.columns;
|
|
}
|
|
constructor() {
|
|
super();
|
|
}
|
|
_write(chunk, _encoding, callback) {
|
|
this.buffer.push(chunk.toString());
|
|
callback();
|
|
}
|
|
toString() {
|
|
return this.buffer.join('');
|
|
}
|
|
}
|
|
exports.StringWriteStream = StringWriteStream;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0cmVhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHNCQUFRO0lBQ3JDLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFFOUI7OztPQUdHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVUsRUFBRSxTQUFpQixFQUFFLFFBQXdDO1FBQzVFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLFFBQVEsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQXZCRCw4Q0F1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gJ25vZGU6c3RyZWFtJztcblxuLypcbiAqIEN1c3RvbSB3cml0YWJsZSBzdHJlYW0gdGhhdCBjb2xsZWN0cyB0ZXh0IGludG8gYSBzdHJpbmcgYnVmZmVyLlxuICogVXNlZCBvbiBjbGFzc2VzIHRoYXQgdGFrZSBpbiBhbmQgZGlyZWN0bHkgd3JpdGUgdG8gYSBzdHJlYW0sIGJ1dFxuICogd2UgaW50ZW5kIHRvIGNhcHR1cmUgdGhlIG91dHB1dCByYXRoZXIgdGhhbiBwcmludC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0cmluZ1dyaXRlU3RyZWFtIGV4dGVuZHMgV3JpdGFibGUge1xuICBwcml2YXRlIGJ1ZmZlcjogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGVybWluYWwgd2lkdGggaW4gY29sdW1ucy5cbiAgICogVXNlZCBieSBmb3JtYXRUYWJsZSgpIHRvIGFwcGx5IHdpZHRoIGNvbnN0cmFpbnRzIGFuZCBwcmV2ZW50IHRhYmxlIG92ZXJmbG93LlxuICAgKi9cbiAgcHVibGljIGdldCBjb2x1bW5zKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHByb2Nlc3Muc3Rkb3V0LmNvbHVtbnM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgX3dyaXRlKGNodW5rOiBhbnksIF9lbmNvZGluZzogc3RyaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5idWZmZXIucHVzaChjaHVuay50b1N0cmluZygpKTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXIuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==
|