streaming-create-event-stream.js 977 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /**
  2. * What is necessary to create an event stream in node?
  3. * - http response stream
  4. * - parser
  5. * - event stream model
  6. */
  7. var EventMessageChunkerStream = require('../event-stream/event-message-chunker-stream').EventMessageChunkerStream;
  8. var EventUnmarshallerStream = require('../event-stream/event-message-unmarshaller-stream').EventUnmarshallerStream;
  9. function createEventStream(stream, parser, model) {
  10. var eventStream = new EventUnmarshallerStream({
  11. parser: parser,
  12. eventStreamModel: model
  13. });
  14. var eventMessageChunker = new EventMessageChunkerStream();
  15. stream.pipe(
  16. eventMessageChunker
  17. ).pipe(eventStream);
  18. stream.on('error', function(err) {
  19. eventMessageChunker.emit('error', err);
  20. });
  21. eventMessageChunker.on('error', function(err) {
  22. eventStream.emit('error', err);
  23. });
  24. return eventStream;
  25. }
  26. /**
  27. * @api private
  28. */
  29. module.exports = {
  30. createEventStream: createEventStream
  31. };