event-to-stream

represent an event as a linked list of results

Usage no npm install needed!

<script type="module">
  import eventToStream from 'https://cdn.skypack.dev/event-to-stream';
</script>

README

event-to-stream

Represent an event as a linked list of results

Installation

With your favorite package manager:

  • packin: packin add event-to-stream
  • component: component install dlisp/event-to-stream
  • npm: npm install event-to-stream

then in your app:

var toStream = require('event-to-stream')

API

toStream(emitter, event)

Creates an infinite stream of the values sent through emitter under the event event

var Emitter = require('events').EventEmitter
var Result = require('result')

var emitter = new Emitter
var stream = toStream(emitter, 'number')

emitter.emit('number', 1)
emitter.emit('number', 2)
emitter.emit('number', 3)

stream.head // => Result.wrap(1)
stream.tail.head // => Result.wrap(2)
stream.tail.tail.head // => Result.wrap(3)
stream.tail.tail.tail.head // => new Result

emitter.emit('number', 4)
stream.tail.tail.tail.head // => Result.wrap(4)