Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
node_modules/ | 12-May-2024 | - | 3,821 | 2,691 | ||
.npmignore | D | 12-May-2024 | 13 | 2 | 1 | |
.travis.yml | D | 12-May-2024 | 58 | 6 | 4 | |
LICENSE | D | 12-May-2024 | 1.1 KiB | 21 | 17 | |
README.md | D | 12-May-2024 | 1.4 KiB | 81 | 59 | |
example.js | D | 12-May-2024 | 313 | 16 | 11 | |
index.js | D | 12-May-2024 | 1.1 KiB | 60 | 45 | |
package.json | D | 12-May-2024 | 1.5 KiB | 67 | 66 | |
test.js | D | 12-May-2024 | 3 KiB | 155 | 123 |
README.md
1# sorted-union-stream 2 3Get the union of two sorted streams 4 5``` 6npm install sorted-union-stream 7``` 8 9[](http://travis-ci.org/mafintosh/sorted-union-stream) 10 11## Usage 12 13``` js 14var union = require('sorted-union-stream') 15var from = require('from2-array') 16 17// es.readArray converts an array into a stream 18var sorted1 = from.obj([1,10,24,42,43,50,55]) 19var sorted2 = from.obj([10,42,53,55,60]) 20 21// combine the two streams into a single sorted stream 22var u = union(sorted1, sorted2) 23 24u.on('data', function(data) { 25 console.log(data) 26}) 27u.on('end', function() { 28 console.log('no more data') 29}) 30``` 31 32Running the above example will print 33 34``` 351 3610 3724 3842 3943 4050 4153 4255 4360 44no more data 45``` 46 47## Streaming objects 48 49If you are streaming objects sorting is based on `.key`. 50 51If this property is not present you should add a `toKey` function as the third parameter. 52`toKey` should return an key representation of the data that can be used to compare objects. 53 54_The keys MUST be sorted_ 55 56``` js 57var sorted1 = from.obj([{foo:'a'}, {foo:'b'}, {foo:'c'}]) 58var sorted2 = from.obj([{foo:'b'}, {foo:'d'}]) 59 60var u = union(sorted1, sorted2, function(data) { 61 return data.foo // the foo property is sorted 62}) 63 64union.on('data', function(data) { 65 console.log(data) 66}); 67``` 68 69Running the above will print 70 71``` 72{foo:'a'} 73{foo:'b'} 74{foo:'c'} 75{foo:'d'} 76``` 77 78## License 79 80MIT 81