Blame view

node_modules/through/readme.markdown 1.63 KB
f7563de62   Palak Handa   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  #through
  
  [![build status](https://secure.travis-ci.org/dominictarr/through.png)](http://travis-ci.org/dominictarr/through)
  [![testling badge](https://ci.testling.com/dominictarr/through.png)](https://ci.testling.com/dominictarr/through)
  
  Easy way to create a `Stream` that is both `readable` and `writable`. 
  
  * Pass in optional `write` and `end` methods.
  * `through` takes care of pause/resume logic if you use `this.queue(data)` instead of `this.emit('data', data)`.
  * Use `this.pause()` and `this.resume()` to manage flow.
  * Check `this.paused` to see current flow state. (`write` always returns `!this.paused`).
  
  This function is the basis for most of the synchronous streams in 
  [event-stream](http://github.com/dominictarr/event-stream).
  
  ``` js
  var through = require('through')
  
  through(function write(data) {
      this.queue(data) //data *must* not be null
    },
    function end () { //optional
      this.queue(null)
    })
  ```
  
  Or, can also be used _without_ buffering on pause, use `this.emit('data', data)`,
  and this.emit('end')
  
  ``` js
  var through = require('through')
  
  through(function write(data) {
      this.emit('data', data)
      //this.pause() 
    },
    function end () { //optional
      this.emit('end')
    })
  ```
  
  ## Extended Options
  
  You will probably not need these 99% of the time.
  
  ### autoDestroy=false
  
  By default, `through` emits close when the writable
  and readable side of the stream has ended.
  If that is not desired, set `autoDestroy=false`.
  
  ``` js
  var through = require('through')
  
  //like this
  var ts = through(write, end, {autoDestroy: false})
  //or like this
  var ts = through(write, end)
  ts.autoDestroy = false
  ```
  
  ## License
  
  MIT / Apache2