| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | 'use strict';const { Colorizer } = require('./colorize');const { Padder } = require('./pad-levels');const { configs, MESSAGE } = require('triple-beam');/** * Cli format class that handles initial state for a a separate * Colorizer and Padder instance. */class CliFormat {  constructor(opts = {}) {    if (!opts.levels) {      opts.levels = configs.npm.levels;    }    this.colorizer = new Colorizer(opts);    this.padder = new Padder(opts);    this.options = opts;  }  /*   * function transform (info, opts)   * Attempts to both:   * 1. Pad the { level }   * 2. Colorize the { level, message }   * of the given `logform` info object depending on the `opts`.   */  transform(info, opts) {    this.colorizer.transform(      this.padder.transform(info, opts),      opts    );    info[MESSAGE] = `${info.level}:${info.message}`;    return info;  }}/* * function cli (opts) * Returns a new instance of the CLI format that turns a log * `info` object into the same format previously available * in `winston.cli()` in `winston < 3.0.0`. */module.exports = opts => new CliFormat(opts);//// Attach the CliFormat for registration purposes//module.exports.Format = CliFormat;
 |