verbose.renderer.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.VerboseRenderer = void 0;
  4. const logger_1 = require("../utils/logger");
  5. class VerboseRenderer {
  6. constructor(tasks, options) {
  7. var _a, _b;
  8. this.tasks = tasks;
  9. this.options = options;
  10. if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.logger)) {
  11. this.logger = new logger_1.Logger({ useIcons: (_b = this.options) === null || _b === void 0 ? void 0 : _b.useIcons });
  12. }
  13. else {
  14. this.logger = new this.options.logger();
  15. }
  16. this.options = { ...VerboseRenderer.rendererOptions, ...this.options };
  17. }
  18. render() {
  19. this.verboseRenderer(this.tasks);
  20. }
  21. end() { }
  22. verboseRenderer(tasks) {
  23. return tasks === null || tasks === void 0 ? void 0 : tasks.forEach((task) => {
  24. task.subscribe((event) => {
  25. var _a, _b, _c, _d;
  26. if (task.isEnabled()) {
  27. if (event.type === 'SUBTASK' && task.hasSubtasks()) {
  28. this.verboseRenderer(task.subtasks);
  29. }
  30. else if (event.type === 'STATE') {
  31. if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.logEmptyTitle) !== false || task.hasTitle()) {
  32. const taskTitle = task.hasTitle() ? task.title : 'Task without title.';
  33. if (task.isPending()) {
  34. this.logger.start(taskTitle);
  35. }
  36. else if (task.isCompleted()) {
  37. this.logger.success(taskTitle);
  38. }
  39. }
  40. }
  41. else if (event.type === 'DATA') {
  42. this.logger.data(String(event.data));
  43. }
  44. else if (event.type === 'TITLE') {
  45. if (((_b = this.options) === null || _b === void 0 ? void 0 : _b.logTitleChange) !== false) {
  46. this.logger.title(String(event.data));
  47. }
  48. }
  49. else if (event.type === 'MESSAGE') {
  50. if ((_c = event.data) === null || _c === void 0 ? void 0 : _c.error) {
  51. this.logger.fail(String(event.data.error));
  52. }
  53. else if ((_d = event.data) === null || _d === void 0 ? void 0 : _d.skip) {
  54. this.logger.skip(String(event.data.skip));
  55. }
  56. }
  57. }
  58. }, (err) => {
  59. this.logger.fail(err);
  60. });
  61. });
  62. }
  63. }
  64. exports.VerboseRenderer = VerboseRenderer;
  65. VerboseRenderer.nonTTY = true;
  66. VerboseRenderer.rendererOptions = {
  67. useIcons: false,
  68. logEmptyTitle: true,
  69. logTitleChange: true
  70. };
  71. //# sourceMappingURL=verbose.renderer.js.map