{"_id":"@churchill/transport","_rev":"2-2cc53524379dcb968460a186b80edb64","name":"@churchill/transport","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0-rc.4":{"name":"@churchill/transport","version":"1.0.0-rc.4","description":"Churchill transport base class","main":"transport.js","keywords":["churchill","transport","logger"],"author":{"name":"Ales Menzel","email":"alesmenzel@gmail.com","url":"https://github.com/alesmenzel"},"license":"MIT","dependencies":{"@churchill/utils":"^1.0.0-rc.4"},"devDependencies":{"@churchill/core":"^1.0.0-rc.4"},"_id":"@churchill/transport@1.0.0-rc.4","_nodeVersion":"12.12.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-GlllJDD8UZQIFkg3Qy5O41dU+w3fpm9mTr4QSJMRO+UjmZEDCxUSg78hAp2i8bBc+6aj29Ums+5bSjenIsGPgg==","shasum":"f55a3f8fcd2150f4ae6123af1ac5baf619dacb88","tarball":"https://registry.npmjs.org/@churchill/transport/-/transport-1.0.0-rc.4.tgz","fileCount":3,"unpackedSize":3316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyDgFCRA9TVsSAnZWagAAD2QP/iPNbOa2tym6kEkOkdaR\nMpNdR82ScoOR/lPGAlHbFiUwARoPg0P7WXSw98kkhhspKpUJOqENyh2bZxDY\nDDVxuPtRjyHBGe5fBl9iQEu8k9cPN9XMhLECLOMpcLWgo4YjgGXAPn9LfvD8\nIkIVtGEywTW9V05+tii6pa9uE0q8Kln2h1NYVeeCdUfIs03eYS8zaMz5H99L\nr5hI0hp+Eld97S25k6xwpc2PC0NeRkl+3VNKbAveJe03r1S0sIc5/5bOBsHP\nYfwdHDA0SZwxNTlmRhBVBAMwRKpOSb8UeDkQ2yazbx3RwXSXCyQqSPC28V2G\nrFl8R74s1z+Y2dzuS9FnoEpkWXy2KPrgLlxf7dO9IZeHypwyDkDJVLfiJrfw\nUnhn//BaqrPzsDa7hjG3AlxiLSDfNvb7inWSAE8eN7BT+uozZ9/4SrAevEfX\nEBo9f7sd3ODxvwXqCvgK3VVNSbql0aiE4dPeqQNf9K5pQXrjIwD3uVpEmZfB\nZyu8IRt9Qnk9zpuevDPLfVVRNJWhJc/cnowo5jXyzdnq0FxERYQU5CHXN94H\nQoKzvRoaB5/oe/ZoaKjiz6acBJnCVG72b8XDwn3ajfHuJl85mrPpz1mnuXsv\nPiTnZ1l8Hh4kCeJLyFlvWlCgBPRGg15xw4FTu1V6ImH1z17L/K/ahV7RgZTV\ndm7C\r\n=j/qv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrSrW5QXutaw95DjhGdGpZ4rOIhH65Poizqk3wKJGTJAIhAPJ7g+7B0TO7rKQB1ULVD3lzVZF9Zwr8WC2HMN/VBoON"}]},"maintainers":[{"name":"alesmenzel","email":"alesmenzel@gmail.com"}],"_npmUser":{"name":"alesmenzel","email":"alesmenzel@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/transport_1.0.0-rc.4_1573402628609_0.09495524854697512"},"_hasShrinkwrap":false},"1.0.0":{"name":"@churchill/transport","version":"1.0.0","description":"Churchill transport base class","main":"transport.js","keywords":["churchill","transport","logger"],"author":{"name":"Ales Menzel","email":"alesmenzel@gmail.com","url":"https://github.com/alesmenzel"},"license":"MIT","dependencies":{"@churchill/utils":"^1.0.0"},"devDependencies":{"@churchill/core":"^1.0.0"},"gitHead":"4e3c66394c396906d006d5a424d076bf279799a0","_id":"@churchill/transport@1.0.0","_nodeVersion":"12.12.0","_npmVersion":"lerna/3.18.4/node@v12.12.0+x64 (darwin)","dist":{"integrity":"sha512-tS+01BD0iMeXblhYqePte/Un05/O0fGkT7F3sG5CzZKHfCRnyO3UETtgZER3sYMf/xayHm1/kN+j5DuURQoF+A==","shasum":"694dbfa079a8cf916e3c32accea962eff8530f37","tarball":"https://registry.npmjs.org/@churchill/transport/-/transport-1.0.0.tgz","fileCount":4,"unpackedSize":4453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyIEFCRA9TVsSAnZWagAATZ8QAJjC6OMqU4QTB/9J4OVS\n356aV+oj7YpmY7dlJFVDAPPz1lzbHN9tavRNawiy+Rq9HiOrZh2q0D00EgET\nOMOU4IT03vCDkebRbqpReWDhEadr9i+rJCqY3rp6kV56Edr7ah+7xcUmu74/\n0UdJNTU5jNqiGkLY6om4DiJn4aO+mvF+k/eMvvNcoSWjibglrp3TedkrZ/A/\nh2/Dv5VAH8CU7/zz9571M3/HsMZZC2MIlu63t7b6tI1/0vEZo9BrB5C1vFWC\nI8HJEN40dIoAT9QRJfJEyVYnRk+gvct4VgvgeP2S/DFjIkHepSkfOJENegl3\npepcerXY/MmQPw+eOnLmQDS0OuwxXzbB5cLsHXb6RUH1xp+7LpajNLabGJD/\n5x/UcTjv0wuK4V6RRys20HTrlOYLSft9OmrZ88gtyYamBtUQMmpqdLeTRGmi\n2vDbAizGbn5fUDDZ4a5MgBnGLlLwJ69wn1kvLgMIvXV1GrzhuMGPihhAFk3d\ngu0SaN5e5mBBM1t/WrWxHYvCMox0g8FxBj+InQb9iSVQBH/KrPOvSEuZ5ve/\n7LDRiEGv3Z6qH+YMBp/158aOOxSHprk6JMnxNFj9r2FxcCxsQU8EBl7Pur1f\npNphRF8Qx6hl82Y3eXMyFXjyzfhH9hqogctgRku54XCrzkSeEr0mLfLxoZoB\nGaiC\r\n=u5u7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHWTnEOydPvK/KIC7pOnotx0RdC8naPFYUosWxxkeXHVAiBeXqZs1iffNQHYuZwQcg0hbsp1Rrd2wmnIkyvKBZPwpg=="}]},"maintainers":[{"name":"alesmenzel","email":"alesmenzel@gmail.com"}],"_npmUser":{"name":"alesmenzel","email":"alesmenzel@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/transport_1.0.0_1573421317176_0.4454766470732401"},"_hasShrinkwrap":false}},"time":{"created":"2019-11-10T16:17:08.373Z","1.0.0-rc.4":"2019-11-10T16:17:08.726Z","modified":"2022-04-04T22:57:08.190Z","1.0.0":"2019-11-10T21:28:37.278Z"},"maintainers":[{"name":"alesmenzel","email":"alesmenzel@gmail.com"}],"description":"Churchill transport base class","keywords":["churchill","transport","logger"],"author":{"name":"Ales Menzel","email":"alesmenzel@gmail.com","url":"https://github.com/alesmenzel"},"license":"MIT","readme":"# Transport\n\nAll transports for churchill should extend this base class.\n\n```bash\nnpm install @churchill/transport\n```\n\n## Implementing own transport\n\nA transport is a class with a log method. Log method arguments are `info`, `output` and `logger`, where info is the object with logged message, output is formatted message by the global format function and logger is the instance that logged the message. See [implementation](./src/transports) of transports for examples.\n\n```js\nconst { Transport } = require(\"@churchill/transport\");\n\n// Here is a simple transport that logs to stdout and has option to provide a prefix\n// Note: it does not correcly handle stream backpressure\nclass CustomTransport extends Transport {\n  constructor(opts) {\n    super(opts);\n    const { prefix = \"\" } = opts;\n    this.prefix = prefix;\n  }\n\n  /**\n   * Log a Message\n   * @param {Object} info Message\n   * @param {*} [output] Output of the global formatting function\n   * @param {Logger} logger Logger\n   */\n  async log(info, output, logger) {\n    const out = this.format(info, output, logger);\n    const prefixed = custom ? `${this.prefix}${out}` : out;\n    // Transport is also an EventEmitter, so you can emit events\n    if (custom) {\n      this.emit(\"some-event\", info);\n    }\n    process.stdout.write(prefixed); // naively log to console\n  }\n}\n\n// It is recommented to provide a factory to create your logger\nCustomTransport.create = opts => {\n  return new CustomTransport(opts);\n};\n\nmodule.exports = CustomTransport;\n```\n\n## Publishing your transport\n\nBy convention you should name your transport as `churchill-<transport>`.\n","readmeFilename":"README.md"}