UNPKG

pino-princess

Version:

Prettiest Pino Prettifier in all the land

41 lines (40 loc) 1.39 kB
import { Transform } from 'node:stream'; import pump from 'pump'; import abstractTransport from 'pino-abstract-transport'; import prettify from './lib/prettify.js'; import buildSafeSonicBoom from './lib/build-safe-sonic-boom.js'; function build(options) { const pretty = prettify(options); function transform(source) { const stream = new Transform({ objectMode: true, autoDestroy: true, transform(chunk, enc, cb) { const line = pretty(chunk); cb(null, line); }, }); let destination; if ((typeof options?.destination === 'object' && typeof options?.destination.write === 'function') || options.destination instanceof Transform) { destination = options.destination; } else { destination = buildSafeSonicBoom({ dest: options.destination ?? 1, append: options.append, mkdir: options.mkdir, sync: options.sync, }); } source.on('unknown', function (line) { destination.write(line + '\n'); }); pump(source, stream, destination); } return abstractTransport(transform, { parse: 'lines' }); } export { build }; export default build; export { default as prettify } from './lib/prettify.js';