40 lines
977 B
JavaScript
40 lines
977 B
JavaScript
/**
|
|
* 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
|
|
};
|