logger.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.Logger = void 0;
  4. /* eslint-disable no-console */
  5. const figures_1 = require("./figures");
  6. const logger_constants_1 = require("./logger.constants");
  7. const colorette_1 = require("./colorette");
  8. /**
  9. * A internal logger for using in the verbose renderer mostly.
  10. */
  11. class Logger {
  12. constructor(options) {
  13. this.options = options;
  14. }
  15. fail(message) {
  16. message = this.parseMessage(logger_constants_1.LogLevels.FAILED, message);
  17. console.error(message);
  18. }
  19. skip(message) {
  20. message = this.parseMessage(logger_constants_1.LogLevels.SKIPPED, message);
  21. console.info(message);
  22. }
  23. success(message) {
  24. message = this.parseMessage(logger_constants_1.LogLevels.SUCCESS, message);
  25. console.log(message);
  26. }
  27. data(message) {
  28. message = this.parseMessage(logger_constants_1.LogLevels.DATA, message);
  29. console.info(message);
  30. }
  31. start(message) {
  32. message = this.parseMessage(logger_constants_1.LogLevels.STARTED, message);
  33. console.log(message);
  34. }
  35. title(message) {
  36. message = this.parseMessage(logger_constants_1.LogLevels.TITLE, message);
  37. console.info(message);
  38. }
  39. retry(message) {
  40. message = this.parseMessage(logger_constants_1.LogLevels.RETRY, message);
  41. console.warn(message);
  42. }
  43. rollback(message) {
  44. message = this.parseMessage(logger_constants_1.LogLevels.ROLLBACK, message);
  45. console.warn(message);
  46. }
  47. parseMessage(level, message) {
  48. // parse multi line messages
  49. let multiLineMessage;
  50. try {
  51. multiLineMessage = message.split('\n');
  52. }
  53. catch /* istanbul ignore next */ {
  54. multiLineMessage = [message];
  55. }
  56. multiLineMessage = multiLineMessage.map((msg) => {
  57. // format messages
  58. return this.logColoring({
  59. level,
  60. message: msg
  61. });
  62. });
  63. // join back multi line messages
  64. message = multiLineMessage.join('\n');
  65. return message;
  66. }
  67. logColoring({ level, message }) {
  68. var _a, _b, _c, _d, _e, _f, _g, _h;
  69. let icon;
  70. // do the coloring
  71. let coloring = (input) => {
  72. return input;
  73. };
  74. switch (level) {
  75. case logger_constants_1.LogLevels.FAILED:
  76. /* istanbul ignore if */
  77. if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.useIcons) {
  78. coloring = colorette_1.default.red;
  79. icon = figures_1.figures.cross;
  80. }
  81. else {
  82. icon = this.wrapInBrackets(level);
  83. }
  84. break;
  85. case logger_constants_1.LogLevels.SKIPPED:
  86. /* istanbul ignore if */
  87. if ((_b = this.options) === null || _b === void 0 ? void 0 : _b.useIcons) {
  88. coloring = colorette_1.default.yellow;
  89. icon = figures_1.figures.arrowDown;
  90. }
  91. else {
  92. icon = this.wrapInBrackets(level);
  93. }
  94. break;
  95. case logger_constants_1.LogLevels.SUCCESS:
  96. /* istanbul ignore if */
  97. if ((_c = this.options) === null || _c === void 0 ? void 0 : _c.useIcons) {
  98. coloring = colorette_1.default.green;
  99. icon = figures_1.figures.tick;
  100. }
  101. else {
  102. icon = this.wrapInBrackets(level);
  103. }
  104. break;
  105. case logger_constants_1.LogLevels.DATA:
  106. /* istanbul ignore if */
  107. if ((_d = this.options) === null || _d === void 0 ? void 0 : _d.useIcons) {
  108. icon = figures_1.figures.arrowRight;
  109. }
  110. else {
  111. icon = this.wrapInBrackets(level);
  112. }
  113. break;
  114. case logger_constants_1.LogLevels.STARTED:
  115. /* istanbul ignore if */
  116. if ((_e = this.options) === null || _e === void 0 ? void 0 : _e.useIcons) {
  117. icon = figures_1.figures.pointer;
  118. }
  119. else {
  120. icon = this.wrapInBrackets(level);
  121. }
  122. break;
  123. case logger_constants_1.LogLevels.TITLE:
  124. /* istanbul ignore if */
  125. if ((_f = this.options) === null || _f === void 0 ? void 0 : _f.useIcons) {
  126. icon = figures_1.figures.checkboxOn;
  127. }
  128. else {
  129. icon = this.wrapInBrackets(level);
  130. }
  131. break;
  132. case logger_constants_1.LogLevels.RETRY:
  133. /* istanbul ignore if */
  134. if ((_g = this.options) === null || _g === void 0 ? void 0 : _g.useIcons) {
  135. coloring = colorette_1.default.yellow;
  136. icon = figures_1.figures.pointer;
  137. }
  138. else {
  139. icon = this.wrapInBrackets(level);
  140. }
  141. break;
  142. case logger_constants_1.LogLevels.ROLLBACK:
  143. /* istanbul ignore if */
  144. if ((_h = this.options) === null || _h === void 0 ? void 0 : _h.useIcons) {
  145. coloring = colorette_1.default.red;
  146. icon = figures_1.figures.arrowLeft;
  147. }
  148. else {
  149. icon = this.wrapInBrackets(level);
  150. }
  151. break;
  152. }
  153. return coloring(`${icon} ${message}`);
  154. }
  155. wrapInBrackets(level) {
  156. return `[${level}]`;
  157. }
  158. }
  159. exports.Logger = Logger;