forked from orbitdb/orbitdb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
eventlog.js
53 lines (45 loc) · 1.33 KB
/
eventlog.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
'use strict'
const IPFS = require('ipfs')
const OrbitDB = require('../src/OrbitDB')
const creatures = ['🐙', '🐷', '🐬', '🐞', '🐈', '🙉', '🐸', '🐓']
console.log("Starting...")
async function main () {
let db
try {
const ipfs = await IPFS.create({
repo: './orbitdb/examples/ipfs',
start: true,
EXPERIMENTAL: {
pubsub: true,
},
})
const orbitdb = await OrbitDB.createInstance(ipfs, {
directory: './orbitdb/examples/eventlog'
})
db = await orbitdb.eventlog('example', { overwrite: true })
await db.load()
} catch (e) {
console.error(e)
process.exit(1)
}
const query = async () => {
const index = Math.floor(Math.random() * creatures.length)
const userId = Math.floor(Math.random() * 900 + 100)
try {
await db.add({ avatar: creatures[index], userId: userId })
const latest = db.iterator({ limit: 5 }).collect()
let output = ``
output += `[Latest Visitors]\n`
output += `--------------------\n`
output += `ID | Visitor\n`
output += `--------------------\n`
output += latest.reverse().map((e) => e.payload.value.userId + ' | ' + e.payload.value.avatar).join('\n') + `\n`
console.log(output)
} catch (e) {
console.error(e)
process.exit(1)
}
}
setInterval(query, 1000)
}
main()