git ssb

0+

mixmix / flume-intro



Tree: 1b92defc7a364a894997eabdeefb6b94f0c1230b

Files: 1b92defc7a364a894997eabdeefb6b94f0c1230b / 4_flume_view.js

988 bytesRaw
1var Flume = require('flumedb')
2var FlumeLog = require('flumelog-offset')
3var codec = require('flumecodec')
4var pull = require('pull-stream')
5
6var FlumeView = require('flumeview-reduce')
7
8var log = FlumeLog('demo_log', { codec: codec.json })
9
10var db = Flume(log)
11 .use('stats', FlumeView(
12 2, //version
13 (acc, val) => { // reducer,
14 console.log('+')
15 return {
16 sum: acc.sum + val,
17 squareSum: acc.squareSum + val*val
18 }
19 },
20 (msg) => msg.count, // map,
21 null, // codec
22 {
23 sum: 0,
24 squareSum: 0
25 } //initial
26 ))
27 // .use('someOtherView', otherView)
28
29
30// writing pull-stream
31pull(
32 pull.values([1,2,3,4,5,6,7]),
33 pull.asyncMap((val, cb) => setTimeout(
34 () => cb(null, val),
35 500
36 )),
37 pull.drain(
38 val => db.append({ count: val }, (err, seq) => {
39 console.log(`FlumeDB.append: appended '${val}' at offset of ${seq} bytes`)
40 console.log()
41 }),
42 () => console.log('DONE: append stream')
43 )
44)
45
46

Built with git-ssb-web