1 | Stream = require("stream").Stream
|
2 | Reader = require "./reader"
|
3 |
|
4 | module.exports = class Writer extends Stream
|
5 |
|
6 | constructor: () ->
|
7 | super()
|
8 | @setMaxListeners(0)
|
9 |
|
10 | |
11 |
|
12 | error: (err) ->
|
13 | err = new Error(err) if typeof err == 'string'
|
14 | @emit "error", err
|
15 |
|
16 | |
17 |
|
18 |
|
19 | write: (chunk, encoding = "utf8") ->
|
20 | @emit "data", chunk, encoding
|
21 |
|
22 | |
23 |
|
24 |
|
25 | end: (chunk, encoding) ->
|
26 | @write chunk, encoding if chunk
|
27 | throw new Error "Cannot call end twice" if @ended
|
28 | @ended = true
|
29 | @emit "end"
|
30 | @
|
31 |
|
32 | |
33 |
|
34 |
|
35 | reader: () ->
|
36 | return new Reader @
|
37 |
|
38 | Writer::writable = true
|