streaming-create-event-stream.js
977 Bytes
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
/**
* What is necessary to create an event stream in node?
* - http response stream
* - parser
* - event stream model
*/
var EventMessageChunkerStream = require('../event-stream/event-message-chunker-stream').EventMessageChunkerStream;
var EventUnmarshallerStream = require('../event-stream/event-message-unmarshaller-stream').EventUnmarshallerStream;
function createEventStream(stream, parser, model) {
var eventStream = new EventUnmarshallerStream({
parser: parser,
eventStreamModel: model
});
var eventMessageChunker = new EventMessageChunkerStream();
stream.pipe(
eventMessageChunker
).pipe(eventStream);
stream.on('error', function(err) {
eventMessageChunker.emit('error', err);
});
eventMessageChunker.on('error', function(err) {
eventStream.emit('error', err);
});
return eventStream;
}
/**
* @api private
*/
module.exports = {
createEventStream: createEventStream
};