git ssb

7+

dinoworm ๐Ÿ› / patchcore



Tree: 0cae923ff917e2cab616dee0db56d2e4cf5f66c8

Files: 0cae923ff917e2cab616dee0db56d2e4cf5f66c8 / feed / pull / private.js

820 bytesRaw
1const nest = require('depnest')
2const defer = require('pull-defer')
3const onceTrue = require('mutant/once-true')
4
5exports.gives = nest('feed.pull.private')
6exports.needs = nest({
7 'sbot.obs.connection': 'first'
8})
9
10exports.create = function (api) {
11 return nest('feed.pull.private', function (opts) {
12 // HACK: needed to select correct index and handle lt
13 opts.query = [
14 {$filter: {
15 timestamp: opts.lt
16 ? {$lt: opts.lt, $gt: 0}
17 : {$gt: 0}
18 }}
19 ]
20
21 delete opts.lt
22
23 return StreamWhenConnected(api.sbot.obs.connection, (sbot) => {
24 return sbot.private.read(opts)
25 })
26 })
27}
28
29function StreamWhenConnected (connection, fn) {
30 var stream = defer.source()
31 onceTrue(connection, function (connection) {
32 stream.resolve(fn(connection))
33 })
34 return stream
35}
36

Built with git-ssb-web