pull-cursor
v3.0.0
Published
A pull-stream over series that have an index.
Downloads
17,045
Readme
pull-cursor
A pull-stream over series that have an index.
I wrote this to abstract out streams for flumelog-offset it makes flexible streams on ranges easy, including live streams!
api
var inject = require('pull-cursor')
inject(since, getMeta) => createStream(opts)
since
is an obv
instance, which represents the current length of
the dataset. getMeta
is a function that takes an offset, an option
to use caching and callback the value plus the next
and prev
offsets.
var Obv = require('obv')
var since = Obv()
//dummy example with an array as the datastore
var ary = ['A', 'B', 'C', 'D']
since.set(ary.length - 1) //set since to last index!
var createStream = require('pull-cursor')(
since,
function (offset, useCache, cb) {
if(offset < 0 || offset >= ary.length)
return cb(new Error('out of bounds:'+offset)
cb(null, ary[offset], offset-1, offset+1)
})
createStream(opts) => Source
createStream
now accepts all the typical options of a
levelup or flumedb stream. including
reverse
(boolean) read backwardslive
(boolean) include new itemsold
(boolean) include old items (set to false implieslive
)gt
(offset) items greater than a valid offsetgte
(offset) items greater or equal to a valid offsetlt
(offset) items less than a given offsetlte
(offset) items less than or equal to a given offsetlimit
(number) stop after N items.cache
(boolean) use cache of underlying
License
MIT