git ssb

7+

dinoworm ๐Ÿ› / patchcore



Tree: ea367c48e4de385f8dc1b8e39b58fcab4ad8d4b7

Files: ea367c48e4de385f8dc1b8e39b58fcab4ad8d4b7 / feed / pull / private.js

933 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 // handle last item passed in as lt
13 var lt = typeof opts.lt === 'object'
14 ? opts.lt.timestamp
15 : opts.lt
16 delete opts.lt
17
18 // HACK: needed to select correct index and handle lt
19 opts.query = [
20 {$filter: {
21 timestamp: lt
22 ? {$lt: lt, $gt: 0}
23 : {$gt: 0}
24 }}
25 ]
26
27 return StreamWhenConnected(api.sbot.obs.connection, (sbot) => {
28 return sbot.private.read(opts)
29 })
30 })
31}
32
33function StreamWhenConnected (connection, fn) {
34 var stream = defer.source()
35 onceTrue(connection, function (connection) {
36 stream.resolve(fn(connection))
37 })
38 return stream
39}
40

Built with git-ssb-web