Skip to content

elsehow/nickslist-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nickslist-core

core state management for nickslist

install

npm install nickslist-core

use

var nickslist = require('nickslist-core')
var memdb = require('memdb')
var hyperlog = require('hyperlog')
var log = hyperlog(memdb(), {
  valueEncoding: 'json'
})
var manager = nickslist.manager(nickslist.makeKeys(), log)
manager.on('post', p => {
  console.log('i see a post!', p.value.body)
})
manager.post({ hello: 'hi' }, (err, node) => {
  manager.reply(node, { whats: 'up'})
})

api

var keys = nickslist.makeKeys()

returns an object { signKeypair, encryptKeypair } (see hyperreal)

pass keys into nickslist.manager(keys, hyperlog)

var list = nickslist.manager(keys, hyperlog)

keys are from nickslist.makeKeys()

hyperlog is any hyperlog-like object

list.post(msg, cb)

msg is an object, which we will post verified (but not encrypted)

cb(err, node) will pass back the node that was added to the hyperlog (converted to in cleartext)

list.reply(node, msg, cb)

node is some node, to which we will encrypt our reply

msg is an object

cb(err, node) will pass back the node that was added to the hyperlog (converted to in cleartext). node.links will refer to the node we're replying to

list.on('post', cb)

cb(post) called whenever a post comes in over the hyperlog (including our own)

list.on('error', cb)

cb(err) called whenever there's an error putting something on the hyperlog. (same err will be passed through list.reply()' and list.post()'s cb.

license

BSD

About

core hyperlog management + api for nickslist

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published