aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
48 lines • 5.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stderr = exports.stdout = void 0;
/* eslint-disable import/order */
const events_1 = require("events");
class ConsoleListener {
constructor(stream, options) {
this._stream = stream;
this._options = options;
}
inspect() {
let isTTY;
if (this._options && this._options.isTTY !== undefined) {
isTTY = this._options.isTTY;
}
const output = [];
const stream = this._stream;
const res = new events_1.EventEmitter();
const originalWrite = stream.write;
stream.write = (string) => {
output.push(string);
return res.emit('data', string);
};
const originalIsTTY = stream.isTTY;
if (isTTY === true) {
stream.isTTY = isTTY;
}
res.output = output;
res.restore = () => {
stream.write = originalWrite;
stream.isTTY = originalIsTTY;
};
return res;
}
inspectSync(fn) {
const inspect = this.inspect();
try {
fn(inspect.output);
}
finally {
inspect.restore();
}
return inspect.output;
}
}
exports.stdout = new ConsoleListener(process.stdout);
exports.stderr = new ConsoleListener(process.stderr);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS1saXN0ZW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnNvbGUtbGlzdGVuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBQ2pDLG1DQUFzQztBQWF0QyxNQUFNLGVBQWU7SUFJbkIsWUFBWSxNQUEwQixFQUFFLE9BQWlCO1FBQ3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkQsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzlCLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixNQUFNLEdBQUcsR0FBc0MsSUFBSSxxQkFBWSxFQUFFLENBQUM7UUFFbEUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNuQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDbkMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkIsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztRQUVELEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1FBQy9CLENBQUMsQ0FBQztRQUNGLE9BQVEsR0FBaUIsQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQTRCO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUM7WUFDSCxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7Z0JBQVMsQ0FBQztZQUNULE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQUVZLFFBQUEsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM3QyxRQUFBLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvb3JkZXIgKi9cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5cbmV4cG9ydCB0eXBlIE91dHB1dCA9IFJlYWRvbmx5QXJyYXk8c3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgaXNUVFk/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluc3BlY3RvciB7XG4gIG91dHB1dDogT3V0cHV0O1xuICByZXN0b3JlOiAoKSA9PiB2b2lkO1xufVxuXG5jbGFzcyBDb25zb2xlTGlzdGVuZXIge1xuICBwcml2YXRlIF9zdHJlYW06IE5vZGVKUy5Xcml0ZVN0cmVhbTtcbiAgcHJpdmF0ZSBfb3B0aW9ucz86IE9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3Ioc3RyZWFtOiBOb2RlSlMuV3JpdGVTdHJlYW0sIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gICAgdGhpcy5fc3RyZWFtID0gc3RyZWFtO1xuICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgaW5zcGVjdCgpOiBJbnNwZWN0b3Ige1xuICAgIGxldCBpc1RUWTtcbiAgICBpZiAodGhpcy5fb3B0aW9ucyAmJiB0aGlzLl9vcHRpb25zLmlzVFRZICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlzVFRZID0gdGhpcy5fb3B0aW9ucy5pc1RUWTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRwdXQ6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgc3RyZWFtID0gdGhpcy5fc3RyZWFtO1xuICAgIGNvbnN0IHJlczogRXZlbnRFbWl0dGVyICYgUGFydGlhbDxJbnNwZWN0b3I+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxXcml0ZSA9IHN0cmVhbS53cml0ZTtcbiAgICBzdHJlYW0ud3JpdGUgPSAoc3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgICAgIG91dHB1dC5wdXNoKHN0cmluZyk7XG4gICAgICByZXR1cm4gcmVzLmVtaXQoJ2RhdGEnLCBzdHJpbmcpO1xuICAgIH07XG5cbiAgICBjb25zdCBvcmlnaW5hbElzVFRZID0gc3RyZWFtLmlzVFRZO1xuICAgIGlmIChpc1RUWSA9PT0gdHJ1ZSkge1xuICAgICAgc3RyZWFtLmlzVFRZID0gaXNUVFk7XG4gICAgfVxuXG4gICAgcmVzLm91dHB1dCA9IG91dHB1dDtcbiAgICByZXMucmVzdG9yZSA9ICgpID0+IHtcbiAgICAgIHN0cmVhbS53cml0ZSA9IG9yaWdpbmFsV3JpdGU7XG4gICAgICBzdHJlYW0uaXNUVFkgPSBvcmlnaW5hbElzVFRZO1xuICAgIH07XG4gICAgcmV0dXJuIChyZXMgYXMgSW5zcGVjdG9yKTtcbiAgfVxuXG4gIGluc3BlY3RTeW5jKGZuOiAob3V0cHV0OiBPdXRwdXQpID0+IHZvaWQpOiBPdXRwdXQge1xuICAgIGNvbnN0IGluc3BlY3QgPSB0aGlzLmluc3BlY3QoKTtcbiAgICB0cnkge1xuICAgICAgZm4oaW5zcGVjdC5vdXRwdXQpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpbnNwZWN0LnJlc3RvcmUoKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3BlY3Qub3V0cHV0O1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBzdGRvdXQgPSBuZXcgQ29uc29sZUxpc3RlbmVyKHByb2Nlc3Muc3Rkb3V0KTtcbmV4cG9ydCBjb25zdCBzdGRlcnIgPSBuZXcgQ29uc29sZUxpc3RlbmVyKHByb2Nlc3Muc3RkZXJyKTtcbiJdfQ==