| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | 
							- 'use strict';
 
- const util = require('util');
 
- const { LEVEL } = require('triple-beam');
 
- const TransportStream = require('./modern');
 
- /**
 
-  * Constructor function for the LegacyTransportStream. This is an internal
 
-  * wrapper `winston >= 3` uses to wrap older transports implementing
 
-  * log(level, message, meta).
 
-  * @param {Object} options - Options for this TransportStream instance.
 
-  * @param {Transpot} options.transport - winston@2 or older Transport to wrap.
 
-  */
 
- const LegacyTransportStream = module.exports = function LegacyTransportStream(options = {}) {
 
-   TransportStream.call(this, options);
 
-   if (!options.transport || typeof options.transport.log !== 'function') {
 
-     throw new Error('Invalid transport, must be an object with a log method.');
 
-   }
 
-   this.transport = options.transport;
 
-   this.level = this.level || options.transport.level;
 
-   this.handleExceptions = this.handleExceptions || options.transport.handleExceptions;
 
-   // Display our deprecation notice.
 
-   this._deprecated();
 
-   // Properly bubble up errors from the transport to the
 
-   // LegacyTransportStream instance, but only once no matter how many times
 
-   // this transport is shared.
 
-   function transportError(err) {
 
-     this.emit('error', err, this.transport);
 
-   }
 
-   if (!this.transport.__winstonError) {
 
-     this.transport.__winstonError = transportError.bind(this);
 
-     this.transport.on('error', this.transport.__winstonError);
 
-   }
 
- };
 
- /*
 
-  * Inherit from TransportStream using Node.js built-ins
 
-  */
 
- util.inherits(LegacyTransportStream, TransportStream);
 
- /**
 
-  * Writes the info object to our transport instance.
 
-  * @param {mixed} info - TODO: add param description.
 
-  * @param {mixed} enc - TODO: add param description.
 
-  * @param {function} callback - TODO: add param description.
 
-  * @returns {undefined}
 
-  * @private
 
-  */
 
- LegacyTransportStream.prototype._write = function _write(info, enc, callback) {
 
-   if (this.silent || (info.exception === true && !this.handleExceptions)) {
 
-     return callback(null);
 
-   }
 
-   // Remark: This has to be handled in the base transport now because we
 
-   // cannot conditionally write to our pipe targets as stream.
 
-   if (!this.level || this.levels[this.level] >= this.levels[info[LEVEL]]) {
 
-     this.transport.log(info[LEVEL], info.message, info, this._nop);
 
-   }
 
-   callback(null);
 
- };
 
- /**
 
-  * Writes the batch of info objects (i.e. "object chunks") to our transport
 
-  * instance after performing any necessary filtering.
 
-  * @param {mixed} chunks - TODO: add params description.
 
-  * @param {function} callback - TODO: add params description.
 
-  * @returns {mixed} - TODO: add returns description.
 
-  * @private
 
-  */
 
- LegacyTransportStream.prototype._writev = function _writev(chunks, callback) {
 
-   for (let i = 0; i < chunks.length; i++) {
 
-     if (this._accept(chunks[i])) {
 
-       this.transport.log(
 
-         chunks[i].chunk[LEVEL],
 
-         chunks[i].chunk.message,
 
-         chunks[i].chunk,
 
-         this._nop
 
-       );
 
-       chunks[i].callback();
 
-     }
 
-   }
 
-   return callback(null);
 
- };
 
- /**
 
-  * Displays a deprecation notice. Defined as a function so it can be
 
-  * overriden in tests.
 
-  * @returns {undefined}
 
-  */
 
- LegacyTransportStream.prototype._deprecated = function _deprecated() {
 
-   // eslint-disable-next-line no-console
 
-   console.error([
 
-     `${this.transport.name} is a legacy winston transport. Consider upgrading: `,
 
-     '- Upgrade docs: https://github.com/winstonjs/winston/blob/master/UPGRADE-3.0.md'
 
-   ].join('\n'));
 
- };
 
- /**
 
-  * Clean up error handling state on the legacy transport associated
 
-  * with this instance.
 
-  * @returns {undefined}
 
-  */
 
- LegacyTransportStream.prototype.close = function close() {
 
-   if (this.transport.close) {
 
-     this.transport.close();
 
-   }
 
-   if (this.transport.__winstonError) {
 
-     this.transport.removeListener('error', this.transport.__winstonError);
 
-     this.transport.__winstonError = null;
 
-   }
 
- };
 
 
  |