| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.TaskWrapper = void 0;
- const through_1 = __importDefault(require("through"));
- const listr_interface_1 = require("../interfaces/listr.interface");
- const state_constants_1 = require("../interfaces/state.constants");
- const index_1 = require("../index");
- const prompt_1 = require("../utils/prompt");
- class TaskWrapper {
- constructor(task, errors, options) {
- this.task = task;
- this.errors = errors;
- this.options = options;
- }
- set title(data) {
- this.task.title$ = data;
- }
- get title() {
- return this.task.title;
- }
- set output(data) {
- this.task.output$ = data;
- }
- get output() {
- return this.task.output;
- }
- set state(data) {
- this.task.state$ = data;
- }
- set message(data) {
- this.task.message$ = data;
- }
- newListr(task, options) {
- let tasks;
- if (typeof task === 'function') {
- tasks = task(this);
- }
- else {
- tasks = task;
- }
- return new index_1.Listr(tasks, options);
- }
- report(error) {
- var _a, _b;
- if (error instanceof listr_interface_1.ListrError) {
- for (const err of error.errors) {
- this.errors.push(err);
- this.message = { error: err.message || ((_a = this.task) === null || _a === void 0 ? void 0 : _a.title) || 'Task with no title.' };
- }
- }
- else {
- this.errors.push(error);
- this.message = { error: error.message || ((_b = this.task) === null || _b === void 0 ? void 0 : _b.title) || 'Task with no title.' };
- }
- }
- skip(message) {
- var _a;
- this.state = state_constants_1.stateConstants.SKIPPED;
- if (message) {
- this.message = { skip: message || ((_a = this.task) === null || _a === void 0 ? void 0 : _a.title) || 'Task with no title.' };
- }
- }
- async prompt(options) {
- var _a;
- this.task.prompt = true;
- return prompt_1.createPrompt.bind(this)(options, { ...(_a = this.options) === null || _a === void 0 ? void 0 : _a.injectWrapper });
- }
- stdout() {
- return through_1.default((chunk) => {
- const pattern = new RegExp('(?:\\u001b|\\u009b)\\[[\\=><~/#&.:=?%@~_-]*[0-9]*[\\a-ln-tqyz=><~/#&.:=?%@~_-]+', 'gmi');
- chunk = chunk.toString();
- chunk = chunk.replace(pattern, '');
- chunk = chunk.replace(new RegExp(/\u0007/, 'gmi'), '');
- if (chunk !== '') {
- this.output = chunk;
- }
- });
- }
- run(ctx) {
- return this.task.run(ctx, this);
- }
- }
- exports.TaskWrapper = TaskWrapper;
- //# sourceMappingURL=task-wrapper.js.map
|