logger.js 1.7 KB

1234567891011121314151617181920212223242526272829303132
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.createPrefixedWriteStream = exports.createDefaultLoggerHandlers = exports.createFormatter = exports.Logger = void 0;
  4. const tslib_1 = require("tslib");
  5. const cli_framework_1 = require("@ionic/cli-framework");
  6. const cli_framework_output_1 = require("@ionic/cli-framework-output");
  7. const chalk_1 = tslib_1.__importDefault(require("chalk"));
  8. const color_1 = require("../color");
  9. class Logger extends cli_framework_output_1.Logger {
  10. ok(msg) {
  11. this.log({ ...this.createRecord(`${(0, color_1.weak)('[')}${chalk_1.default.bold.green('OK')}${(0, color_1.weak)(']')} ${msg}`), format: false });
  12. }
  13. rawmsg(msg) {
  14. this.log({ ...this.createRecord(msg), format: false });
  15. }
  16. }
  17. exports.Logger = Logger;
  18. function createFormatter(options = {}) {
  19. const prefix = process.argv.includes('--log-timestamps') ? () => `${(0, color_1.weak)('[' + new Date().toISOString() + ']')}` : '';
  20. return (0, cli_framework_output_1.createTaggedFormatter)({ colors: cli_framework_1.DEFAULT_COLORS, prefix, titleize: true, wrap: true, ...options });
  21. }
  22. exports.createFormatter = createFormatter;
  23. function createDefaultLoggerHandlers(formatter = createFormatter()) {
  24. return new Set([...cli_framework_output_1.DEFAULT_LOGGER_HANDLERS].map(handler => handler.clone({ formatter })));
  25. }
  26. exports.createDefaultLoggerHandlers = createDefaultLoggerHandlers;
  27. function createPrefixedWriteStream(log, prefix, level = cli_framework_output_1.LOGGER_LEVELS.INFO) {
  28. const l = log.clone();
  29. l.handlers = createDefaultLoggerHandlers((0, cli_framework_output_1.createPrefixedFormatter)(prefix));
  30. return l.createWriteStream(level);
  31. }
  32. exports.createPrefixedWriteStream = createPrefixedWriteStream;