git ssb

2+

cel / scuttlebot.io



Tree: 07de6e0bf8f8051cfea29058496ca70ae04e5c99

Files: 07de6e0bf8f8051cfea29058496ca70ae04e5c99 / tmpl / apis / modules / ssb-msgs.md

2682 bytesRaw

ssb-msgs

Message-processing tools for secure-scuttlebutt

var mlib = require('ssb-msgs')
mlib.indexLinks(
  msg: Object,
  {
    rel: optional String
    msg: optional Bool|String
    feed: optional Bool|String
    ext: optional Bool|String
  },
  each: Function(link: Object, rel: String)
)

Traverses a message and runs the each function on all found links. All opts fields are optional. Opts may also be a string, in which case it is the rel attribute.

// assume %msgid and @feedid a well-formed
var msg = {
  foo: { link: '%msgid' },
  bar: [{ link: '@feedid' }]
}
function print (obj, rel) {
  console.log(rel, obj.link)  
}
mlib.indexLinks(msg, print)
// => foo %msgid
// => bar @feedid
mlib.indexLinks(msg, 'foo', print)
// => foo %msgid
mlib.indexLinks(msg, { rel: 'foo' }, print)
// => foo %msgid
mlib.indexLinks(msg, { feed: true }, print)
// => bar @feedid
mlib.indexLinks(msg, { feed: '@feedid' }, print)
// => bar @feedid
links(obj: Any, [requiredAttr: String])

Helper to get links from a message in a regular array form.

var msg = {
  foo: { link: '%msgid' },
  bar: [{ link: '@feedid' }]
}
mlib.links(msg.foo) // => [{ link: '%msgid' }]
mlib.links(msg.bar) // => [{ link: '@feedid' }]
mlib.links(msg.bar, 'feed') // => [{ link: '@feedid' }]
mlib.links(msg.bar, 'msg') // => []
mlib.links(msg.baz) // => []
link(obj: Any, [requiredAttr: String])

Helper to get a link from a message in a regular object form. If an array is found, will use the first element.

var msg = {
  foo: { link: '%msgid' },
  bar: [{ link: '@feedid' }]
}
mlib.link(msg.foo) // => { link: '%msgid' }
mlib.link(msg.bar) // => { link: '@feedid' }
mlib.link(msg.bar, 'feed') // => { link: '@feedid' }
mlib.link(msg.bar, 'msg') // => null
mlib.link(msg.baz) // => null
isLink(obj: Any, [requiredAttr: String])

Predicate to test whether an object is a well-formed link. Returns false if given an array.

var msg = {
  foo: { link: '%msgid' },
  bar: [{ link: '@feedid' }]
}
mlib.isLink(msg.foo) // => true
mlib.isLink(msg.bar) // => true
mlib.isLink(msg.bar, 'feed') // => true
mlib.isLink(msg.bar, 'msg') // => false
mlib.isLink(msg.baz) // => false

linksTo

linksTo(a: Message, b: Message)

Get link objects pointing from a to b.

mlib.linksTo(msgA, msgB) // => [{ link: '%msgB-id' }]

relationsTo

relationsTo(a: Message, b: Message)

Get relations of links pointing from a to b.

mlib.relationsTo(msgA, msgB) // => ['fooRelation']

View on Github

Built with git-ssb-web