logger.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. "use strict";
  2. var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
  3. if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
  4. if (ar || !(i in from)) {
  5. if (!ar) ar = Array.prototype.slice.call(from, 0, i);
  6. ar[i] = from[i];
  7. }
  8. }
  9. return to.concat(ar || Array.prototype.slice.call(from));
  10. };
  11. Object.defineProperty(exports, "__esModule", { value: true });
  12. exports.logger = exports.Logger = void 0;
  13. var c = require('ansi-colors');
  14. var pkg = require('../../package.json');
  15. var fancyLog = require('fancy-log');
  16. var LEVEL;
  17. (function (LEVEL) {
  18. LEVEL[LEVEL["INFO"] = 0] = "INFO";
  19. LEVEL[LEVEL["WARN"] = 1] = "WARN";
  20. LEVEL[LEVEL["DEBUG"] = 2] = "DEBUG";
  21. LEVEL[LEVEL["FATAL"] = 3] = "FATAL";
  22. LEVEL[LEVEL["ERROR"] = 4] = "ERROR";
  23. })(LEVEL || (LEVEL = {}));
  24. var Logger = /** @class */ (function () {
  25. function Logger() {
  26. this.name = pkg.name;
  27. this.version = pkg.version;
  28. this.logger = fancyLog;
  29. this.silent = false;
  30. }
  31. Logger.prototype.setVerbose = function (level) {
  32. this.silent = level;
  33. };
  34. Logger.prototype.title = function () {
  35. var args = [];
  36. for (var _i = 0; _i < arguments.length; _i++) {
  37. args[_i] = arguments[_i];
  38. }
  39. if (this.silent == false) {
  40. this.logger(c.cyan.apply(c, args));
  41. }
  42. };
  43. Logger.prototype.info = function () {
  44. var args = [];
  45. for (var _i = 0; _i < arguments.length; _i++) {
  46. args[_i] = arguments[_i];
  47. }
  48. if (this.silent == false) {
  49. this.logger(this.format.apply(this, __spreadArray([LEVEL.INFO], args, false)));
  50. }
  51. };
  52. Logger.prototype.warn = function () {
  53. var args = [];
  54. for (var _i = 0; _i < arguments.length; _i++) {
  55. args[_i] = arguments[_i];
  56. }
  57. if (this.silent == false) {
  58. this.logger(this.format.apply(this, __spreadArray([LEVEL.WARN], args, false)));
  59. }
  60. };
  61. Logger.prototype.error = function () {
  62. var args = [];
  63. for (var _i = 0; _i < arguments.length; _i++) {
  64. args[_i] = arguments[_i];
  65. }
  66. if (this.silent == false) {
  67. this.logger(this.format.apply(this, __spreadArray([LEVEL.FATAL], args, false)));
  68. }
  69. };
  70. Logger.prototype.fatal = function () {
  71. var args = [];
  72. for (var _i = 0; _i < arguments.length; _i++) {
  73. args[_i] = arguments[_i];
  74. }
  75. if (this.silent == false) {
  76. this.error.apply(this, args);
  77. }
  78. };
  79. Logger.prototype.debug = function () {
  80. var args = [];
  81. for (var _i = 0; _i < arguments.length; _i++) {
  82. args[_i] = arguments[_i];
  83. }
  84. if (this.silent == false) {
  85. this.logger(this.format.apply(this, __spreadArray([LEVEL.DEBUG], args, false)));
  86. }
  87. };
  88. Logger.prototype.trace = function (error, file) {
  89. this.fatal('Ouch', file);
  90. this.fatal('', error);
  91. this.warn('ignoring', file);
  92. this.warn('see error', '');
  93. console.trace(error);
  94. };
  95. Logger.prototype.format = function (level) {
  96. var args = [];
  97. for (var _i = 1; _i < arguments.length; _i++) {
  98. args[_i - 1] = arguments[_i];
  99. }
  100. var pad = function (s, l, c) {
  101. if (c === void 0) { c = ''; }
  102. return s + Array(Math.max(0, l - s.length + 1)).join(c);
  103. };
  104. var msg = args.join(' ');
  105. if (args.length > 1) {
  106. msg = "".concat(pad(args.shift(), 13, ' '), ": ").concat(args.join(' '));
  107. }
  108. switch (level) {
  109. case LEVEL.INFO:
  110. msg = c.green(msg);
  111. break;
  112. case LEVEL.WARN:
  113. msg = c.yellow(msg);
  114. break;
  115. case LEVEL.DEBUG:
  116. msg = c.gray(msg);
  117. break;
  118. case LEVEL.ERROR:
  119. case LEVEL.FATAL:
  120. msg = c.red(msg);
  121. break;
  122. }
  123. return [
  124. msg
  125. ].join('');
  126. };
  127. return Logger;
  128. }());
  129. exports.Logger = Logger;
  130. exports.logger = new Logger();