"Fossies" - the Fresh Open Source Software Archive

Member "node-v12.18.4-win-x64/node_modules/npm/node_modules/sorted-union-stream/README.md" (14 Feb 2020, 1500 Bytes) of package /windows/www/node-v12.18.4-win-x64.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format (assuming markdown format). Alternatively you can here view or download the uninterpreted source code file. A member file download can also be achieved by clicking within a package contents listing on the according byte size field.

sorted-union-stream

Get the union of two sorted streams

npm install sorted-union-stream

build status

Usage

var union = require('sorted-union-stream')
var from = require('from2-array')

// es.readArray converts an array into a stream
var sorted1 = from.obj([1,10,24,42,43,50,55])
var sorted2 = from.obj([10,42,53,55,60])

// combine the two streams into a single sorted stream
var u = union(sorted1, sorted2)

u.on('data', function(data) {
  console.log(data)
})
u.on('end', function() {
  console.log('no more data')
})

Running the above example will print

1
10
24
42
43
50
53
55
60
no more data

Streaming objects

If you are streaming objects sorting is based on .key.

If this property is not present you should add a toKey function as the third parameter. toKey should return an key representation of the data that can be used to compare objects.

The keys MUST be sorted

var sorted1 = from.obj([{foo:'a'}, {foo:'b'}, {foo:'c'}])
var sorted2 = from.obj([{foo:'b'}, {foo:'d'}])

var u = union(sorted1, sorted2, function(data) {
  return data.foo // the foo property is sorted
})

union.on('data', function(data) {
  console.log(data)
});

Running the above will print

{foo:'a'}
{foo:'b'}
{foo:'c'}
{foo:'d'}

License

MIT