aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
48 lines • 5.36 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS1saXN0ZW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnNvbGUtbGlzdGVuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBQ2pDLG1DQUFzQztBQWF0QyxNQUFNLGVBQWU7SUFJbkIsWUFBWSxNQUEwQixFQUFFLE9BQWlCO1FBQ3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3RELEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUM3QjtRQUVELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLE1BQU0sR0FBRyxHQUFzQyxJQUFJLHFCQUFZLEVBQUUsQ0FBQztRQUVsRSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUNoQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDbEIsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDdEI7UUFFRCxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNwQixHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUNqQixNQUFNLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQztZQUM3QixNQUFNLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQztRQUMvQixDQUFDLENBQUM7UUFDRixPQUFRLEdBQWlCLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUE0QjtRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSTtZQUNGLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDcEI7Z0JBQVM7WUFDUixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDbkI7UUFDRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDeEIsQ0FBQztDQUVGO0FBRVksUUFBQSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzdDLFFBQUEsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9vcmRlciAqL1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcblxuZXhwb3J0IHR5cGUgT3V0cHV0ID0gUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICBpc1RUWT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5zcGVjdG9yIHtcbiAgb3V0cHV0OiBPdXRwdXQ7XG4gIHJlc3RvcmU6ICgpID0+IHZvaWQ7XG59XG5cbmNsYXNzIENvbnNvbGVMaXN0ZW5lciB7XG4gIHByaXZhdGUgX3N0cmVhbTogTm9kZUpTLldyaXRlU3RyZWFtO1xuICBwcml2YXRlIF9vcHRpb25zPzogT3B0aW9uc1xuXG4gIGNvbnN0cnVjdG9yKHN0cmVhbTogTm9kZUpTLldyaXRlU3RyZWFtLCBvcHRpb25zPzogT3B0aW9ucykge1xuICAgIHRoaXMuX3N0cmVhbSA9IHN0cmVhbTtcbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIGluc3BlY3QoKTogSW5zcGVjdG9yIHtcbiAgICBsZXQgaXNUVFk7XG4gICAgaWYgKHRoaXMuX29wdGlvbnMgJiYgdGhpcy5fb3B0aW9ucy5pc1RUWSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpc1RUWSA9IHRoaXMuX29wdGlvbnMuaXNUVFk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cHV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHN0cmVhbSA9IHRoaXMuX3N0cmVhbTtcbiAgICBjb25zdCByZXM6IEV2ZW50RW1pdHRlciAmIFBhcnRpYWw8SW5zcGVjdG9yPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0IG9yaWdpbmFsV3JpdGUgPSBzdHJlYW0ud3JpdGU7XG4gICAgc3RyZWFtLndyaXRlID0gKHN0cmluZzogc3RyaW5nKSA9PiB7XG4gICAgICBvdXRwdXQucHVzaChzdHJpbmcpO1xuICAgICAgcmV0dXJuIHJlcy5lbWl0KCdkYXRhJywgc3RyaW5nKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb3JpZ2luYWxJc1RUWSA9IHN0cmVhbS5pc1RUWTtcbiAgICBpZiAoaXNUVFkgPT09IHRydWUpIHtcbiAgICAgIHN0cmVhbS5pc1RUWSA9IGlzVFRZO1xuICAgIH1cblxuICAgIHJlcy5vdXRwdXQgPSBvdXRwdXQ7XG4gICAgcmVzLnJlc3RvcmUgPSAoKSA9PiB7XG4gICAgICBzdHJlYW0ud3JpdGUgPSBvcmlnaW5hbFdyaXRlO1xuICAgICAgc3RyZWFtLmlzVFRZID0gb3JpZ2luYWxJc1RUWTtcbiAgICB9O1xuICAgIHJldHVybiAocmVzIGFzIEluc3BlY3Rvcik7XG4gIH1cblxuICBpbnNwZWN0U3luYyhmbjogKG91dHB1dDogT3V0cHV0KSA9PiB2b2lkKTogT3V0cHV0IHtcbiAgICBjb25zdCBpbnNwZWN0ID0gdGhpcy5pbnNwZWN0KCk7XG4gICAgdHJ5IHtcbiAgICAgIGZuKGluc3BlY3Qub3V0cHV0KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaW5zcGVjdC5yZXN0b3JlKCk7XG4gICAgfVxuICAgIHJldHVybiBpbnNwZWN0Lm91dHB1dDtcbiAgfVxuXG59XG5cbmV4cG9ydCBjb25zdCBzdGRvdXQgPSBuZXcgQ29uc29sZUxpc3RlbmVyKHByb2Nlc3Muc3Rkb3V0KTtcbmV4cG9ydCBjb25zdCBzdGRlcnIgPSBuZXcgQ29uc29sZUxpc3RlbmVyKHByb2Nlc3Muc3RkZXJyKTtcbiJdfQ==