Files: 0cae923ff917e2cab616dee0db56d2e4cf5f66c8 / feed / pull / private.js
820 bytesRaw
1 | const nest = require('depnest') |
2 | const defer = require('pull-defer') |
3 | const onceTrue = require('mutant/once-true') |
4 | |
5 | exports.gives = nest('feed.pull.private') |
6 | exports.needs = nest({ |
7 | 'sbot.obs.connection': 'first' |
8 | }) |
9 | |
10 | exports.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 | |
29 | function 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