UNPKG

pino-princess

Version:

Prettiest Pino Prettifier in all the land

41 lines (40 loc) 1.41 kB
import { Transform, Writable } 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 Writable) { 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";