Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hughsk/from2
Convenience wrapper for ReadableStream, with an API lifted from "from" and "through2"
https://github.com/hughsk/from2
Last synced: 4 days ago
JSON representation
Convenience wrapper for ReadableStream, with an API lifted from "from" and "through2"
- Host: GitHub
- URL: https://github.com/hughsk/from2
- Owner: hughsk
- License: mit
- Created: 2014-02-10T10:03:22.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2019-06-11T15:51:29.000Z (over 5 years ago)
- Last Synced: 2024-11-22T17:10:00.425Z (20 days ago)
- Language: JavaScript
- Size: 22.5 KB
- Stars: 132
- Watchers: 5
- Forks: 24
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-nodejs-cn - from2 - 方便使用的对 ReadableStream 的封装,灵感来自于 `through2` (包 / 文件流)
- awesome-nodejs - from2 - Convenience wrapper for ReadableStream, inspired by through2. (Repository / Streams)
- awesome-nodejs-cn - from2 - **star:132** ReadableStream的方便包装器,灵感来自“through2” (包 / 流)
- awesome-nodejs - from2 - Convenience wrapper for ReadableStream, inspired by `through2`. (Packages / Streams)
- awesome-nodejs-streams - hughsk/from2 - Convenience wrapper for ReadableStream, inspired by through2 (Modules)
- awesome-nodejs - from2 - Convenience wrapper for ReadableStream, with an API lifted from "from" and "through2" - ★ 98 (Streams)
- awesome-node - from2 - Convenience wrapper for ReadableStream, inspired by `through2`. (Packages / Streams)
- awesome-nodejs-cn - from2 - ReadableStream方便的流包装 , 灵感来自于 `through2`. (目录 / 流处理)
README
# from2 [![Flattr this!](https://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=hughskennedy&url=http://github.com/hughsk/from2&title=from2&description=hughsk/from2%20on%20GitHub&language=en_GB&tags=flattr,github,javascript&category=software)[![experimental](http://hughsk.github.io/stability-badges/dist/experimental.svg)](http://github.com/hughsk/stability-badges) #
`from2` is a high-level module for creating readable streams that properly handle backpressure.
Convience wrapper for
[readable-stream](http://github.com/isaacs/readable-stream)'s `ReadableStream`
base class, with an API lifted from
[from](http://github.com/dominictarr/from) and
[through2](http://github.com/rvagg/through2).## Usage ##
[![from2](https://nodei.co/npm/from2.png?mini=true)](https://nodei.co/npm/from2)
### `stream = from2([opts], read)` ###
Where `opts` are the options to pass on to the `ReadableStream` constructor,
and `read(size, next)` is called when data is requested from the stream.* `size` is the recommended amount of data (in bytes) to retrieve.
* `next(err)` should be called when you're ready to emit more data.For example, here's a readable stream that emits the contents of a given
string:``` javascript
var from = require('from2')function fromString(string) {
return from(function(size, next) {
// if there's no more content
// left in the string, close the stream.
if (string.length <= 0) return next(null, null)// Pull in a new chunk of text,
// removing it from the string.
var chunk = string.slice(0, size)
string = string.slice(size)// Emit "chunk" from the stream.
next(null, chunk)
})
}// pipe "hello world" out
// to stdout.
fromString('hello world').pipe(process.stdout)
```### `stream = from2.obj([opts], read)` ###
Shorthand for `from2({ objectMode: true }, read)`.
### `createStream = from2.ctor([opts], read)` ###
If you're creating similar streams in quick succession you can improve
performance by generating a stream **constructor** that you can reuse instead
of creating one-off streams on each call.Takes the same options as `from2`, instead returning a constructor which you
can use to create new streams.### See Also
- [from2-array](https://github.com/binocarlos/from2-array) - Create a from2 stream based on an array of source values.
- [from2-string](https://github.com/yoshuawuyts/from2-string) - Create a stream from a string. Sugary wrapper around from2.## License ##
MIT. See [LICENSE.md](http://github.com/hughsk/from2/blob/master/LICENSE.md) for details.