{"_id":"stream-from-promise","_rev":"3115052","name":"stream-from-promise","description":"Create streams from promises","dist-tags":{"latest":"1.0.0"},"maintainers":[{"name":"schnittstabil","email":"michael@schnittstabil.de"}],"time":{"modified":"2023-11-27T05:50:22.000Z","created":"2014-07-11T12:16:05.068Z","1.0.0":"2016-02-24T19:47:07.351Z","0.1.0":"2014-07-11T12:16:05.068Z"},"users":{},"author":{"name":"Michael Mayer","email":"michael@schnittstabil.de","url":"https://github.com/schnittstabil"},"repository":{"type":"git","url":"git+https://github.com/schnittstabil/stream-from-promise.git"},"versions":{"1.0.0":{"name":"stream-from-promise","version":"1.0.0","description":"Create streams from promises","repository":{"type":"git","url":"git+https://github.com/schnittstabil/stream-from-promise.git"},"keywords":["readable","object","stream","gulpfriendly","adapter","to stream","es6","promise"],"author":{"name":"Michael Mayer","email":"michael@schnittstabil.de","url":"https://github.com/schnittstabil"},"license":"MIT","bugs":{"url":"https://github.com/schnittstabil/stream-from-promise/issues"},"homepage":"https://github.com/schnittstabil/stream-from-promise","engines":{"node":">=0.10.0"},"main":"index.js","files":["index.js"],"scripts":{"test":"xo && nyc ava"},"devDependencies":{"ava":"^0.12.0","coveralls":"^2.11.6","gulp":"^3.9.1","merge-stream":"^1.0.0","nyc":"^5.6.0","pinkie-promise":"^2.0.0","stream-recorder":"^0.3.3","vinyl":"^1.1.1","xo":"^0.12.1"},"gitHead":"3af7ec9fe6b1de6addd184c2707a9d38d3c2d0f3","_id":"stream-from-promise@1.0.0","_shasum":"763687f7dd777e4c894f6408333fc6b3fc8a61bb","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.5.0","_npmUser":{"name":"schnittstabil","email":"michael@schnittstabil.de"},"maintainers":[{"name":"schnittstabil","email":"michael@schnittstabil.de"}],"dist":{"shasum":"763687f7dd777e4c894f6408333fc6b3fc8a61bb","size":2626,"noattachment":false,"key":"/stream-from-promise/-/stream-from-promise-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-from-promise/download/stream-from-promise-1.0.0.tgz"},"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/stream-from-promise-1.0.0.tgz_1456343224875_0.25218575168401003"},"directories":{},"publish_time":1456343227351,"_hasShrinkwrap":false,"_cnpm_publish_time":1456343227351,"_cnpmcore_publish_time":"2021-12-16T20:20:45.381Z"},"0.1.0":{"name":"stream-from-promise","version":"0.1.0","description":"Create streams from promises","repository":{"type":"git","url":"https://github.com/schnittstabil/stream-from-promise.git"},"keywords":["readable","object","stream","gulpfriendly","adapter","to stream","es6","promise"],"author":{"name":"Michael Mayer","email":"michael@schnittstabil.de","url":"https://github.com/schnittstabil"},"license":"MIT","bugs":{"url":"https://github.com/schnittstabil/stream-from-promise/issues"},"homepage":"https://github.com/schnittstabil/stream-from-promise","engines":{"node":"^0.11 || ^0.10"},"main":"index.js","files":["index.js"],"scripts":{"test":"./node_modules/gulp/bin/gulp.js && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"},"devDependencies":{"coveralls":"^2.11.1","gulp":"^3.8.6","gulp-istanbul":"^0.2.0","gulp-jscs":"^0.6.0","gulp-jshint":"^1.7.1","gulp-mocha":"^0.5.0","merge-stream":"^0.1.5","promise":"^5.0.0","stream-recorder":"^0.3.0","vinyl":"^0.2.3"},"gitHead":"5685427b8166e52f1a48d5906776e0319eeeb499","_id":"stream-from-promise@0.1.0","_shasum":"1e3d12785c094751399e12c5bb99462347d4f22f","_from":".","_npmVersion":"1.4.16","_npmUser":{"name":"schnittstabil","email":"michael@schnittstabil.de"},"maintainers":[{"name":"schnittstabil","email":"michael@schnittstabil.de"}],"dist":{"shasum":"1e3d12785c094751399e12c5bb99462347d4f22f","size":2075,"noattachment":false,"key":"/stream-from-promise/-/stream-from-promise-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/stream-from-promise/download/stream-from-promise-0.1.0.tgz"},"directories":{},"publish_time":1405080965068,"_hasShrinkwrap":false,"_cnpm_publish_time":1405080965068,"_cnpmcore_publish_time":"2021-12-16T20:20:46.023Z"}},"readme":"# stream-from-promise [![Dependencies Status Image](https://gemnasium.com/schnittstabil/stream-from-promise.svg)](https://gemnasium.com/schnittstabil/stream-from-promise) [![Build Status Image](https://travis-ci.org/schnittstabil/stream-from-promise.svg)](https://travis-ci.org/schnittstabil/stream-from-promise) [![Coverage Status](https://coveralls.io/repos/schnittstabil/stream-from-promise/badge.png)](https://coveralls.io/r/schnittstabil/stream-from-promise)\n\nCreate streams from [ECMAScript 2015 Promises](http://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects).\n\n```bash\nnpm install stream-from-promise --save\n```\n\n\n## Usage\n\n\n### `String | Buffer` promises\n\n```JavaScript\nimport StreamFromPromise from 'stream-from-promise';\n\nconst stringPromise = new Promise((resolve, reject) => {\n  setTimeout(() => {\n    resolve('strrrring!');\n  }, 500);\n});\n\nStreamFromPromise(stringPromise)\n  .pipe(process.stdout); // output: strrrring!\n\n\nconst bufferPromise = new Promise((resolve, reject) => {\n  setTimeout(() => {\n    resolve(new Buffer('buff!'));\n  }, 500);\n});\n\nStreamFromPromise(bufferPromise)\n  .pipe(process.stdout); // output: buff!\n```\n\n\n### Arbitrary Promises\n\n```JavaScript\nimport StreamFromPromise from 'stream-from-promise';\n\nconst funcPromise = new Promise((resolve, reject) => {\n  setTimeout(() => {\n    resolve(() => {\n      console.log('func!?!');\n    });\n  }, 500);\n});\n\nStreamFromPromise.obj(funcPromise)\n  .on('data', fn => {\n    fn(); // output: func!?!\n  });\n```\n\n\n### Rejecting\n\n```JavaScript\nimport StreamFromPromise from 'stream-from-promise';\n\nconst rejectPromise = new Promise((resolve, reject) => {\n  setTimeout(() => {\n    reject(new Error('rejected'));\n  }, 500);\n});\n\nStreamFromPromise(rejectPromise)\n  .on('error', err => {\n    console.log(err); // output: [Error: rejected]\n  })\n  .on('data', data => {\n    // do something awsome\n  });\n```\n\n\n### [Gulp](http://gulpjs.com/) File promises\n\nGulp files are [vinyl](https://github.com/wearefractal/vinyl) files:\n\n```bash\nnpm install vinyl\n```\n\nTest some awsome Gulp plugin:\n\n```JavaScript\nimport StreamFromPromise from 'stream-from-promise';\nimport File from 'vinyl';\n\nconst hello = new File({\n      cwd: '/',\n      base: '/hello/',\n      path: '/hello/hello.js',\n      contents: new Buffer('console.log(\"Hello\");')\n    });\n\nconst helloFilePromise = new Promise((resolve, reject) => {\n  setTimeout(() => {\n    resolve(hello);\n  }, 500);\n});\n\nStreamFromPromise.obj(helloFilePromise)\n  .pipe(someAwsomeGulpPlugin())\n  .on('data', file => {\n    console.log(file.contents.toString()); // dunno what someAwsomeGulpPlugin does :)\n  });\n```\n\nSee also [stream-recorder](https://github.com/schnittstabil/stream-recorder) for testing gulp plugins.\n\n\n## API\n\n\n### Class: StreamFromPromise\n\n_StreamFromPromises_ are [Readable](http://nodejs.org/api/stream.html#stream_class_stream_readable_1) streams.\n\n\n#### new StreamFromPromise(promise, [options])\n\n* _promise_ `Promise` ECMAScript 2015 Promises returning Javascript values like numbers, strings, objects, functions, ...\n* _options_ `Object` passed through [new Readable([options])](http://nodejs.org/api/stream.html#stream_new_stream_readable_options)\n\nNote: The `new` operator can be omitted.\n\n\n#### StreamFromPromise#obj(promise, [options])\n\nA convenience wrapper for `new StreamFromPromise(promise, {objectMode: true, ...})`.\n\n\n## License\n\nMIT © [Michael Mayer](http://schnittstabil.de)\n","_attachments":{},"homepage":"https://github.com/schnittstabil/stream-from-promise","bugs":{"url":"https://github.com/schnittstabil/stream-from-promise/issues"},"license":"MIT"}