/
/
home
/
u523034047
/
domains
/
wasms.shop
/
public_html
/
varified
/
node_modules
/
pino
/
lib
Server: in-mum-web1112.main-hosting.eu (62.72.28.111)
You: 216.73.216.60
PHP 8.3.16
Dir:
/home/u523034047/domains/wasms.shop/public_html/varified/node_modules/pino/lib
Edit:
/home/u523034047/domains/wasms.shop/public_html/varified/node_modules/pino/lib/multistream.js
'use strict' const metadata = Symbol.for('pino.metadata') const { levels } = require('./levels') const defaultLevels = Object.create(levels) defaultLevels.silent = Infinity const DEFAULT_INFO_LEVEL = levels.info function multistream (streamsArray, opts) { let counter = 0 streamsArray = streamsArray || [] opts = opts || { dedupe: false } let levels = defaultLevels if (opts.levels && typeof opts.levels === 'object') { levels = opts.levels } const res = { write, add, flushSync, end, minLevel: 0, streams: [], clone, [metadata]: true } if (Array.isArray(streamsArray)) { streamsArray.forEach(add, res) } else { add.call(res, streamsArray) } // clean this object up // or it will stay allocated forever // as it is closed on the following closures streamsArray = null return res // we can exit early because the streams are ordered by level function write (data) { let dest const level = this.lastLevel const { streams } = this let stream for (let i = 0; i < streams.length; i++) { dest = streams[i] if (dest.level <= level) { stream = dest.stream if (stream[metadata]) { const { lastTime, lastMsg, lastObj, lastLogger } = this stream.lastLevel = level stream.lastTime = lastTime stream.lastMsg = lastMsg stream.lastObj = lastObj stream.lastLogger = lastLogger } if (!opts.dedupe || dest.level === level) { stream.write(data) } } else { break } } } function flushSync () { for (const { stream } of this.streams) { if (typeof stream.flushSync === 'function') { stream.flushSync() } } } function add (dest) { if (!dest) { return res } // Check that dest implements either StreamEntry or DestinationStream const isStream = typeof dest.write === 'function' || dest.stream const stream_ = dest.write ? dest : dest.stream // This is necessary to provide a meaningful error message, otherwise it throws somewhere inside write() if (!isStream) { throw Error('stream object needs to implement either StreamEntry or DestinationStream interface') } const { streams } = this let level if (typeof dest.levelVal === 'number') { level = dest.levelVal } else if (typeof dest.level === 'string') { level = levels[dest.level] } else if (typeof dest.level === 'number') { level = dest.level } else { level = DEFAULT_INFO_LEVEL } const dest_ = { stream: stream_, level, levelVal: undefined, id: counter++ } streams.unshift(dest_) streams.sort(compareByLevel) this.minLevel = streams[0].level return res } function end () { for (const { stream } of this.streams) { if (typeof stream.flushSync === 'function') { stream.flushSync() } stream.end() } } function clone (level) { const streams = new Array(this.streams.length) for (let i = 0; i < streams.length; i++) { streams[i] = { level: level, stream: this.streams[i].stream } } return { write, add, minLevel: level, streams, clone, flushSync, [metadata]: true } } } function compareByLevel (a, b) { return a.level - b.level } module.exports = multistream
Ukuran: 3.4 KB