@axway/axway-cli-pm
Version:
Package manager for Axway products
74 lines (60 loc) • 6.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ListrTextRenderer = void 0;
exports.runListr = runListr;
var _listr = require("listr2");
var _cliKit = require("cli-kit");
/**
* Custom Listr renderer for non-TTY environments.
*/
class ListrTextRenderer {
constructor(tasks, options) {
this._tasks = tasks;
this._console = (options === null || options === void 0 ? void 0 : options.console) || console;
}
static get nonTTY() {
return true;
}
render() {
this._console.error(_cliKit.ansi.cursor.hide);
for (const task of this._tasks) {
task.subscribe(event => {
if (event.type === 'STATE') {
const message = task.isPending() ? 'started' : task.state.toLowerCase();
this._console.log(`${task.title} [${message}]`);
} else if (event.type === 'TITLE') {
this._console.log(task.title);
}
}, err => this._console.error(err));
}
}
end() {
this._console.error(_cliKit.ansi.cursor.show);
}
}
/**
* Creates a Listr instance with the appropriate settings and executes the tasks.
*
* @param {Object} params - Various parameters.
* @param {Object} params.console - The console instance.
* @param {Boolean} params.json - When `true`, indicates JSON mode and thus silence Listr rendering.
* @param {Array.<Object>} params.tasks - A list of tasks to execute.
* @returns {Promise}
*/
exports.ListrTextRenderer = ListrTextRenderer;
async function runListr({
console,
json,
tasks
}) {
await new _listr.Listr(tasks, {
concurrent: 10,
console,
dateFormat: false,
exitOnError: false,
renderer: json ? 'silent' : process.stdout.isTTY === true ? 'default' : ListrTextRenderer
}).run();
}
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJuYW1lcyI6WyJMaXN0clRleHRSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwidGFza3MiLCJvcHRpb25zIiwiX3Rhc2tzIiwiX2NvbnNvbGUiLCJjb25zb2xlIiwibm9uVFRZIiwicmVuZGVyIiwiZXJyb3IiLCJhbnNpIiwiY3Vyc29yIiwiaGlkZSIsInRhc2siLCJzdWJzY3JpYmUiLCJldmVudCIsInR5cGUiLCJtZXNzYWdlIiwiaXNQZW5kaW5nIiwic3RhdGUiLCJ0b0xvd2VyQ2FzZSIsImxvZyIsInRpdGxlIiwiZXJyIiwiZW5kIiwic2hvdyIsInJ1bkxpc3RyIiwianNvbiIsIkxpc3RyIiwiY29uY3VycmVudCIsImRhdGVGb3JtYXQiLCJleGl0T25FcnJvciIsInJlbmRlcmVyIiwicHJvY2VzcyIsInN0ZG91dCIsImlzVFRZIiwicnVuIl0sInNvdXJjZXMiOlsidXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdHIgfSBmcm9tICdsaXN0cjInO1xuaW1wb3J0IHsgYW5zaSB9IGZyb20gJ2NsaS1raXQnO1xuXG4vKipcbiAqIEN1c3RvbSBMaXN0ciByZW5kZXJlciBmb3Igbm9uLVRUWSBlbnZpcm9ubWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0clRleHRSZW5kZXJlciB7XG5cdGNvbnN0cnVjdG9yKHRhc2tzLCBvcHRpb25zKSB7XG5cdFx0dGhpcy5fdGFza3MgPSB0YXNrcztcblx0XHR0aGlzLl9jb25zb2xlID0gb3B0aW9ucz8uY29uc29sZSB8fCBjb25zb2xlO1xuXHR9XG5cblx0c3RhdGljIGdldCBub25UVFkoKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRyZW5kZXIoKSB7XG5cdFx0dGhpcy5fY29uc29sZS5lcnJvcihhbnNpLmN1cnNvci5oaWRlKTtcblxuXHRcdGZvciAoY29uc3QgdGFzayBvZiB0aGlzLl90YXNrcykge1xuXHRcdFx0dGFzay5zdWJzY3JpYmUoXG5cdFx0XHRcdGV2ZW50ID0+IHtcblx0XHRcdFx0XHRpZiAoZXZlbnQudHlwZSA9PT0gJ1NUQVRFJykge1xuXHRcdFx0XHRcdFx0Y29uc3QgbWVzc2FnZSA9IHRhc2suaXNQZW5kaW5nKCkgPyAnc3RhcnRlZCcgOiB0YXNrLnN0YXRlLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRcdFx0XHR0aGlzLl9jb25zb2xlLmxvZyhgJHt0YXNrLnRpdGxlfSBbJHttZXNzYWdlfV1gKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09ICdUSVRMRScpIHtcblx0XHRcdFx0XHRcdHRoaXMuX2NvbnNvbGUubG9nKHRhc2sudGl0bGUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0ZXJyID0+IHRoaXMuX2NvbnNvbGUuZXJyb3IoZXJyKVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRlbmQoKSB7XG5cdFx0dGhpcy5fY29uc29sZS5lcnJvcihhbnNpLmN1cnNvci5zaG93KTtcblx0fVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBMaXN0ciBpbnN0YW5jZSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBzZXR0aW5ncyBhbmQgZXhlY3V0ZXMgdGhlIHRhc2tzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBWYXJpb3VzIHBhcmFtZXRlcnMuXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zLmNvbnNvbGUgLSBUaGUgY29uc29sZSBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcGFyYW1zLmpzb24gLSBXaGVuIGB0cnVlYCwgaW5kaWNhdGVzIEpTT04gbW9kZSBhbmQgdGh1cyBzaWxlbmNlIExpc3RyIHJlbmRlcmluZy5cbiAqIEBwYXJhbSB7QXJyYXkuPE9iamVjdD59IHBhcmFtcy50YXNrcyAtIEEgbGlzdCBvZiB0YXNrcyB0byBleGVjdXRlLlxuICogQHJldHVybnMge1Byb21pc2V9XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5MaXN0cih7IGNvbnNvbGUsIGpzb24sIHRhc2tzIH0pIHtcblx0YXdhaXQgKG5ldyBMaXN0cih0YXNrcywge1xuXHRcdGNvbmN1cnJlbnQ6IDEwLFxuXHRcdGNvbnNvbGUsXG5cdFx0ZGF0ZUZvcm1hdDogZmFsc2UsXG5cdFx0ZXhpdE9uRXJyb3I6IGZhbHNlLFxuXHRcdHJlbmRlcmVyOiBqc29uID8gJ3NpbGVudCcgOiBwcm9jZXNzLnN0ZG91dC5pc1RUWSA9PT0gdHJ1ZSA/ICdkZWZhdWx0JyA6IExpc3RyVGV4dFJlbmRlcmVyXG5cdH0pKS5ydW4oKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxNQUFNQSxpQkFBTixDQUF3QjtFQUM5QkMsV0FBVyxDQUFDQyxLQUFELEVBQVFDLE9BQVIsRUFBaUI7SUFDM0IsS0FBS0MsTUFBTCxHQUFjRixLQUFkO0lBQ0EsS0FBS0csUUFBTCxHQUFnQixDQUFBRixPQUFPLFNBQVAsSUFBQUEsT0FBTyxXQUFQLFlBQUFBLE9BQU8sQ0FBRUcsT0FBVCxLQUFvQkEsT0FBcEM7RUFDQTs7RUFFZ0IsV0FBTkMsTUFBTSxHQUFHO0lBQ25CLE9BQU8sSUFBUDtFQUNBOztFQUVEQyxNQUFNLEdBQUc7SUFDUixLQUFLSCxRQUFMLENBQWNJLEtBQWQsQ0FBb0JDLGFBQUtDLE1BQUwsQ0FBWUMsSUFBaEM7O0lBRUEsS0FBSyxNQUFNQyxJQUFYLElBQW1CLEtBQUtULE1BQXhCLEVBQWdDO01BQy9CUyxJQUFJLENBQUNDLFNBQUwsQ0FDQ0MsS0FBSyxJQUFJO1FBQ1IsSUFBSUEsS0FBSyxDQUFDQyxJQUFOLEtBQWUsT0FBbkIsRUFBNEI7VUFDM0IsTUFBTUMsT0FBTyxHQUFHSixJQUFJLENBQUNLLFNBQUwsS0FBbUIsU0FBbkIsR0FBK0JMLElBQUksQ0FBQ00sS0FBTCxDQUFXQyxXQUFYLEVBQS9DOztVQUNBLEtBQUtmLFFBQUwsQ0FBY2dCLEdBQWQsQ0FBbUIsR0FBRVIsSUFBSSxDQUFDUyxLQUFNLEtBQUlMLE9BQVEsR0FBNUM7UUFDQSxDQUhELE1BR08sSUFBSUYsS0FBSyxDQUFDQyxJQUFOLEtBQWUsT0FBbkIsRUFBNEI7VUFDbEMsS0FBS1gsUUFBTCxDQUFjZ0IsR0FBZCxDQUFrQlIsSUFBSSxDQUFDUyxLQUF2QjtRQUNBO01BQ0QsQ0FSRixFQVNDQyxHQUFHLElBQUksS0FBS2xCLFFBQUwsQ0FBY0ksS0FBZCxDQUFvQmMsR0FBcEIsQ0FUUjtJQVdBO0VBQ0Q7O0VBRURDLEdBQUcsR0FBRztJQUNMLEtBQUtuQixRQUFMLENBQWNJLEtBQWQsQ0FBb0JDLGFBQUtDLE1BQUwsQ0FBWWMsSUFBaEM7RUFDQTs7QUE5QjZCO0FBaUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sZUFBZUMsUUFBZixDQUF3QjtFQUFFcEIsT0FBRjtFQUFXcUIsSUFBWDtFQUFpQnpCO0FBQWpCLENBQXhCLEVBQWtEO0VBQ3hELE1BQU8sSUFBSTBCLFlBQUosQ0FBVTFCLEtBQVYsRUFBaUI7SUFDdkIyQixVQUFVLEVBQUUsRUFEVztJQUV2QnZCLE9BRnVCO0lBR3ZCd0IsVUFBVSxFQUFFLEtBSFc7SUFJdkJDLFdBQVcsRUFBRSxLQUpVO0lBS3ZCQyxRQUFRLEVBQUVMLElBQUksR0FBRyxRQUFILEdBQWNNLE9BQU8sQ0FBQ0MsTUFBUixDQUFlQyxLQUFmLEtBQXlCLElBQXpCLEdBQWdDLFNBQWhDLEdBQTRDbkM7RUFMakQsQ0FBakIsQ0FBRCxDQU1Gb0MsR0FORSxFQUFOO0FBT0EifQ==