{"_id":"thru","_rev":"4170307","name":"thru","description":"transform stream sugar","dist-tags":{"latest":"0.0.2"},"maintainers":[{"name":"jessetane","email":"jesse.tane@gmail.com"}],"time":{"modified":"2026-03-01T21:13:32.000Z","created":"2013-11-12T05:31:30.446Z","0.0.2":"2013-12-01T07:44:27.222Z","0.0.1":"2013-11-12T05:31:30.446Z"},"users":{},"author":{"name":"Jesse Tane","email":"jesse.tane@gmail.com"},"repository":{"type":"git","url":"https://github.com/jessetane/thru.git"},"versions":{"0.0.2":{"name":"thru","version":"0.0.2","description":"transform stream sugar","author":{"name":"Jesse Tane","email":"jesse.tane@gmail.com"},"dependencies":{"inherits":"2.0.1"},"repository":{"type":"git","url":"https://github.com/jessetane/thru.git"},"readmeFilename":"readme.md","bugs":{"url":"https://github.com/jessetane/thru/issues"},"homepage":"https://github.com/jessetane/thru","_id":"thru@0.0.2","dist":{"shasum":"efc82bc76553d20b6d808f267f71d3f8d5c6bf37","size":1115,"noattachment":false,"key":"/thru/-/thru-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/thru/download/thru-0.0.2.tgz"},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"jessetane","email":"jesse.tane@gmail.com"},"maintainers":[{"name":"jessetane","email":"jesse.tane@gmail.com"}],"directories":{},"publish_time":1385883867222,"_hasShrinkwrap":false,"_cnpm_publish_time":1385883867222,"_cnpmcore_publish_time":"2021-12-16T15:36:44.212Z"},"0.0.1":{"name":"thru","version":"0.0.1","description":"minimalist transform stream implementation","author":{"name":"Jesse Tane","email":"jesse.tane@gmail.com"},"repository":{"type":"git","url":"https://github.com/jessetane/thru.git"},"readmeFilename":"readme.md","bugs":{"url":"https://github.com/jessetane/thru/issues"},"_id":"thru@0.0.1","dist":{"shasum":"65e6b638684227a412b777f552eedce1a07f728a","size":959,"noattachment":false,"key":"/thru/-/thru-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/thru/download/thru-0.0.1.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"jessetane","email":"jesse.tane@gmail.com"},"maintainers":[{"name":"jessetane","email":"jesse.tane@gmail.com"}],"directories":{},"publish_time":1384234290446,"_hasShrinkwrap":false,"_cnpm_publish_time":1384234290446,"_cnpmcore_publish_time":"2021-12-16T15:36:44.449Z"}},"readme":"# thru\nminimalist transform stream implementation\n\n## why\nsugar for [`stream.Transform`](http://nodejs.org/api/stream.html#stream_class_stream_transform)\n\n## how\n```javascript\nvar thru = require('thru');\n\nvar input = thru();\n\nvar inflate = thru(function(obj, cb) {\n  if (obj === 'a') {\n    this.push('a');\n    this.push('b');\n    cb();\n  } else {\n    cb(null, obj);\n  }\n});\n\nvar modify = thru(function(obj, cb) {\n  if (obj === 'd') obj = 'c';\n  cb(null, obj);\n});\n\nvar deflate = thru(function(obj, cb) {\n  if (obj === 'e') cb();\n  else cb(null, obj);\n});\n\nvar newlines = thru(function(obj, cb) {\n  cb(null, obj + '\\n');\n});\n\ninput\n  .pipe(inflate)\n  .pipe(modify)\n  .pipe(deflate)\n  .pipe(newlines)\n  .pipe(process.stdout);\n\nnewlines.on('end', function() {\n  console.log('done!');\n});\n\ninput.write('a'); // a\n                  // b\ninput.write('d'); // c\ninput.write('e');\ninput.end();      // done!\n```\n\n## inspiration\n[through](https://github.com/dominictarr/through)  \n[through2](https://github.com/rvagg/through2)\n\n## license\nWTFPL","_attachments":{},"readmeFilename":"readme.md","homepage":"https://github.com/jessetane/thru","bugs":{"url":"https://github.com/jessetane/thru/issues"}}