{"_id":"pino-abstract-transport","_rev":"202328","name":"pino-abstract-transport","description":"Write Pino transports easily","dist-tags":{"latest":"1.0.0"},"maintainers":[{"name":"matteo.collina","email":""}],"time":{"modified":"2023-03-21T06:27:55.000Z","created":"2021-04-10T21:08:38.942Z","1.0.0":"2022-06-20T15:04:26.960Z","0.4.0":"2021-10-02T21:54:47.369Z","0.5.0":"2021-11-03T07:37:51.448Z","0.3.0":"2021-09-16T07:58:51.588Z","0.2.0":"2021-05-19T10:47:00.809Z","0.1.0":"2021-04-10T21:08:38.942Z"},"users":{},"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"repository":{"type":"git","url":"git+https://github.com/pinojs/pino-abstract-transport.git"},"versions":{"1.0.0":{"name":"pino-abstract-transport","version":"1.0.0","description":"Write Pino transports easily","main":"index.js","scripts":{"prepare":"husky install","test":"standard | snazzy && tap test/*.test.js  && tsd","test-ci":"standard | snazzy && tap test/*.test.js --coverage-report=lcovonly && tsd"},"repository":{"type":"git","url":"git+https://github.com/pinojs/pino-abstract-transport.git"},"keywords":["pino","transport"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","bugs":{"url":"https://github.com/pinojs/pino-abstract-transport/issues"},"homepage":"https://github.com/pinojs/pino-abstract-transport#readme","dependencies":{"readable-stream":"^4.0.0","split2":"^4.0.0"},"devDependencies":{"@types/node":"^18.0.0","husky":"^8.0.0","snazzy":"^9.0.0","standard":"^17.0.0","tap":"^16.0.0","tsd":"^0.21.0"},"tsd":{"directory":"./test/types"},"types":"./index.d.ts","gitHead":"404395ac6756b10718d7ea7a52130ef282a1252d","_id":"pino-abstract-transport@1.0.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"shasum":"cc0d6955fffcadb91b7b49ef220a6cc111d48bb3","size":6130,"noattachment":false,"key":"/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz","tarball":"http://name.csiicloud.com:7001/pino-abstract-transport/download/pino-abstract-transport-1.0.0.tgz"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"matteo.collina","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pino-abstract-transport_1.0.0_1655737466801_0.04760635125881696"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-06-20T16:43:42.111Z","publish_time":1655737466960,"_cnpm_publish_time":1655737466960},"0.4.0":{"name":"pino-abstract-transport","version":"0.4.0","description":"Write Pino transports easily","main":"index.js","scripts":{"prepare":"husky install","test":"standard | snazzy && tap test/*.test.js","test-ci":"standard | snazzy && tap test/*.test.js --coverage-report=lcovonly"},"repository":{"type":"git","url":"git+https://github.com/pinojs/pino-abstract-transport.git"},"keywords":["pino","transport"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","bugs":{"url":"https://github.com/pinojs/pino-abstract-transport/issues"},"homepage":"https://github.com/pinojs/pino-abstract-transport#readme","dependencies":{"duplexify":"^4.1.2","split2":"^3.2.2"},"devDependencies":{"husky":"^7.0.0","snazzy":"^9.0.0","standard":"^16.0.3","tap":"^15.0.2"},"gitHead":"3d12a49149d486cc13168603461c3c19383b240d","_id":"pino-abstract-transport@0.4.0","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"shasum":"be5913fa55542f82fccb77f6a9e04735fa583cac","size":4834,"noattachment":false,"key":"/pino-abstract-transport/-/pino-abstract-transport-0.4.0.tgz","tarball":"http://name.csiicloud.com:7001/pino-abstract-transport/download/pino-abstract-transport-0.4.0.tgz"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"matteo.collina","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pino-abstract-transport_0.4.0_1633211687232_0.11739862085546782"},"_hasShrinkwrap":false,"publish_time":1633211687369,"_cnpm_publish_time":1633211687369,"_cnpmcore_publish_time":"2021-12-16T15:07:02.116Z"},"0.5.0":{"name":"pino-abstract-transport","version":"0.5.0","description":"Write Pino transports easily","main":"index.js","scripts":{"prepare":"husky install","test":"standard | snazzy && tap test/*.test.js  && tsd","test-ci":"standard | snazzy && tap test/*.test.js --coverage-report=lcovonly && tsd"},"repository":{"type":"git","url":"git+https://github.com/pinojs/pino-abstract-transport.git"},"keywords":["pino","transport"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","bugs":{"url":"https://github.com/pinojs/pino-abstract-transport/issues"},"homepage":"https://github.com/pinojs/pino-abstract-transport#readme","dependencies":{"duplexify":"^4.1.2","split2":"^4.0.0"},"devDependencies":{"@types/node":"^16.11.6","husky":"^7.0.0","snazzy":"^9.0.0","standard":"^16.0.3","tap":"^15.0.2","tsd":"^0.18.0"},"tsd":{"directory":"./test/types"},"types":"./index.d.ts","gitHead":"3a1670011db663aced797a11b1b629f3e22d8fe3","_id":"pino-abstract-transport@0.5.0","_nodeVersion":"16.11.0","_npmVersion":"8.0.0","dist":{"shasum":"4b54348d8f73713bfd14e3dc44228739aa13d9c0","size":5832,"noattachment":false,"key":"/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz","tarball":"http://name.csiicloud.com:7001/pino-abstract-transport/download/pino-abstract-transport-0.5.0.tgz"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"matteo.collina","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pino-abstract-transport_0.5.0_1635925071327_0.08159882696082188"},"_hasShrinkwrap":false,"publish_time":1635925071448,"_cnpm_publish_time":1635925071448,"_cnpmcore_publish_time":"2021-12-16T15:07:01.739Z"},"0.3.0":{"name":"pino-abstract-transport","version":"0.3.0","description":"Write Pino transports easily","main":"index.js","scripts":{"prepare":"husky install","test":"standard | snazzy && tap test/*.test.js","test-ci":"standard | snazzy && tap test/*.test.js --coverage-report=lcovonly"},"repository":{"type":"git","url":"git+https://github.com/pinojs/pino-abstract-transport.git"},"keywords":["pino","transport"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","bugs":{"url":"https://github.com/pinojs/pino-abstract-transport/issues"},"homepage":"https://github.com/pinojs/pino-abstract-transport#readme","dependencies":{"split2":"^3.2.2"},"devDependencies":{"husky":"^7.0.0","snazzy":"^9.0.0","standard":"^16.0.3","tap":"^15.0.2"},"gitHead":"04d5954f315e021e7db8eeecb5a0fd1fc8401db0","_id":"pino-abstract-transport@0.3.0","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"dist":{"shasum":"9925d826a1b6e9a667ca43d14981d82240edd794","size":4375,"noattachment":false,"key":"/pino-abstract-transport/-/pino-abstract-transport-0.3.0.tgz","tarball":"http://name.csiicloud.com:7001/pino-abstract-transport/download/pino-abstract-transport-0.3.0.tgz"},"directories":{},"maintainers":[{"name":"matteo.collina","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pino-abstract-transport_0.3.0_1631779131448_0.2360372007919973"},"_hasShrinkwrap":false,"publish_time":1631779131588,"_cnpm_publish_time":1631779131588,"_cnpmcore_publish_time":"2021-12-16T15:07:02.398Z"},"0.2.0":{"name":"pino-abstract-transport","version":"0.2.0","description":"Write Pino transports easily","main":"index.js","scripts":{"prepare":"husky install","test":"standard | snazzy && tap test/*.test.js","test-ci":"standard | snazzy && tap test/*.test.js --coverage-report=lcovonly"},"repository":{"type":"git","url":"git+https://github.com/pinojs/pino-abstract-transport.git"},"keywords":["pino","transport"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","bugs":{"url":"https://github.com/pinojs/pino-abstract-transport/issues"},"homepage":"https://github.com/pinojs/pino-abstract-transport#readme","dependencies":{"split2":"^3.2.2"},"devDependencies":{"husky":"^6.0.0","snazzy":"^9.0.0","standard":"^16.0.3","tap":"^15.0.2"},"gitHead":"9b74d181db8c02cc217bb92c3a315f26ac858205","_id":"pino-abstract-transport@0.2.0","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"dist":{"shasum":"e27d58d7bb16735c587c54e1d4efecc2cce27436","size":4051,"noattachment":false,"key":"/pino-abstract-transport/-/pino-abstract-transport-0.2.0.tgz","tarball":"http://name.csiicloud.com:7001/pino-abstract-transport/download/pino-abstract-transport-0.2.0.tgz"},"directories":{},"maintainers":[{"name":"matteo.collina","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pino-abstract-transport_0.2.0_1621421220628_0.5721101365686796"},"_hasShrinkwrap":false,"publish_time":1621421220809,"_cnpm_publish_time":1621421220809,"_cnpmcore_publish_time":"2021-12-16T15:07:02.672Z"},"0.1.0":{"name":"pino-abstract-transport","version":"0.1.0","description":"Write Pino transports easily","main":"index.js","scripts":{"prepare":"husky install","test":"standard | snazzy && tap test/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/pinojs/pino-abstract-transport.git"},"keywords":["pino","transport"],"author":{"name":"Matteo Collina","email":"hello@matteocollina.com"},"license":"MIT","bugs":{"url":"https://github.com/pinojs/pino-abstract-transport/issues"},"homepage":"https://github.com/pinojs/pino-abstract-transport#readme","dependencies":{"split2":"^3.2.2"},"devDependencies":{"husky":"^6.0.0","snazzy":"^9.0.0","standard":"^16.0.3","tap":"^15.0.2"},"gitHead":"69d086f58cb6ef89438bfb9eb7bdd97291e6476d","_id":"pino-abstract-transport@0.1.0","_nodeVersion":"14.16.1","_npmVersion":"7.9.0","dist":{"shasum":"14e94fac516e311a2baa05fd997bc6717129fa62","size":3437,"noattachment":false,"key":"/pino-abstract-transport/-/pino-abstract-transport-0.1.0.tgz","tarball":"http://name.csiicloud.com:7001/pino-abstract-transport/download/pino-abstract-transport-0.1.0.tgz"},"_npmUser":{"name":"matteo.collina","email":"hello@matteocollina.com"},"directories":{},"maintainers":[{"name":"matteo.collina","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pino-abstract-transport_0.1.0_1618088918800_0.3485723435136858"},"_hasShrinkwrap":false,"publish_time":1618088918942,"_cnpm_publish_time":1618088918942,"_cnpmcore_publish_time":"2021-12-16T15:07:02.879Z"}},"readme":"# pino-abstract-transport\n[![npm version](https://img.shields.io/npm/v/pino-abstract-transport)](https://www.npmjs.com/package/pino-abstract-transport)\n[![Build Status](https://img.shields.io/github/workflow/status/pinojs/pino-abstract-transport/CI)](https://github.com/pinojs/pino-abstract-transport/actions)\n[![Coverage Status](https://coveralls.io/repos/github/pinojs/pino-abstract-transport/badge.svg?branch=master)](https://coveralls.io/github/pinojs/pino-abstract-transport?branch=master)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://standardjs.com/)\n\nWrite Pino transports easily.\n\n## Install\n\n```\nnpm i pino-abstract-transport\n```\n\n## Usage\n\n```js\nimport build from 'pino-abstract-transport'\n\nexport default async function (opts) {\n  return build(async function (source) {\n    for await (let obj of source) {\n      console.log(obj)\n    }\n  })\n}\n```\n\nor in CommonJS and streams:\n\n```js\n'use strict'\n\nconst build = require('pino-abstract-transport')\n\nmodule.exports = function (opts) {\n  return build(function (source) {\n    source.on('data', function (obj) {\n      console.log(obj)\n    })\n  })\n}\n```\n\n## Typescript usage\nInstall the type definitions for node. Make sure the major version of the type definitions matches the node version you are using.\n#### Node 16\n```\nnpm i -D @types/node@16\n```\n\n## API\n\n### build(fn, opts) => Stream\n\nCreate a [`split2`](http://npm.im/split2) instance and returns it.\nThis same instance is also passed to the given function, which is called\nsynchronously.\n\nIf `opts.transform` is `true`, `pino-abstract-transform` will \nwrap the split2 instance and the returned stream using [`duplexify`](https://www.npmjs.com/package/duplexify),\nso they can be concatenated into multiple transports.\n\n#### Events emitted\n\nIn addition to all events emitted by a [`Readable`](https://nodejs.org/api/stream.html#stream_class_stream_readable)\nstream, it emits the following events:\n\n* `unknown` where an unparsable line is found, both the line and optional error is emitted.\n\n#### Options\n\n* `parse` an option to change to data format passed to build function. When this option is set to `lines`,\n  the data is passed as a string, otherwise the data is passed as an object. Default: `undefined`.\n\n* `close(err, cb)` a function that is called to shutdown the transport. It's called both on error and non-error shutdowns.\n  It can also return a promise. In this case discard the the `cb` argument.\n\n* `parseLine(line)` a function that is used to parse line received from `pino`.\n\n## Example\n\n### custom parseLine\n\nYou can allow custom `parseLine` from users while providing a simple and safe default parseLine.\n\n```js\n'use strict'\n\nconst build = require('pino-abstract-transport')\n\nfunction defaultParseLine (line) {\n  const obj = JSON.parse(line)\n  // property foo will be added on each line\n  obj.foo = 'bar'\n  return obj\n}\n\nmodule.exports = function (opts) {\n  const parseLine = typeof opts.parseLine === 'function' ? opts.parseLine : defaultParseLine\n  return build(function (source) {\n    source.on('data', function (obj) {\n      console.log(obj)\n    })\n  }, {\n    parseLine: parseLine\n  })\n}\n```\n\n### Stream concatenation / pipeline\n\nYou can pipeline multiple transports:\n\n```js\nconst build = require('pino-abstract-transport')\nconst { Transform, pipeline } = require('stream')\n\nfunction buildTransform () {\n  return build(function (source) {\n    return new Transform({\n      objectMode: true,\n      autoDestroy: true,\n      transform (line, enc, cb) {\n        line.service = 'bob'\n        cb(null, JSON.stringify(line))\n      }\n    })\n  }, { enablePipelining: true })\n}\n\nfunction buildDestination () {\n  return build(function (source) {\n    source.on('data', function (obj) {\n      console.log(obj)\n    })\n  })\n}\n\npipeline(process.stdin, buildTransform(), buildDestination(), function (err) {\n  console.log('pipeline completed!', err)\n})\n```\n\n## License\n\nMIT\n","_attachments":{},"homepage":"https://github.com/pinojs/pino-abstract-transport#readme","bugs":{"url":"https://github.com/pinojs/pino-abstract-transport/issues"},"license":"MIT"}