relational-join-stream

Relational Style JOIN query with streams.

relational-join-stream

Relational Style JOIN query with streams.

A slightly different take to hash-join but the same basic idea.

Unstable: Expect patches and features, possible api changes.

var join = require('relational-join-stream')
 
join(
  [streamA, streamB], // streams to join 
  function getKey(datai) {
    //return the key to join on! 
    //i is the index of the stream. 
 
    return data.id
  },
  function map (datai) { //OPTIONAL 
    //return what you want to join for this row. 
    return data
  },
  function (arraykey) {
    //`array` is a matched values from each stream. 
    //`key` is the key they where matched on. 
    //whatever you return from 
    return [key, array.length]
  })

join will merge the streams, matching on getKey, (optionally) map input, and then merge matches, then stream any successful matches.

MIT