reachdown
Get the inner db of an
(abstract-)level(up|down)
onion.
Useful for modules likesubleveldown
to peel off redundant layers.
Example
const reachdown = const db = 'example'
Get the innermost db
, which in this case is a leveldown
instance in node or level-js
in browsers:
const down =
Get a specific layer by type:
const enc = const down = const levelup = // levelup === db
Use a visitor function:
const down =
API
db = reachdown(db[, visit][, strict = false])
The db
argument is required and must be a recent-ish levelup
, abstract-leveldown
or subleveldown
instance. The visit
argument can be:
- A string, to find the first
db
with a matching type - A function, to find the first
db
for whichvisit
returns a truthy value - Omitted or falsy, to find the innermost
db
.
If visit
is non-falsy and no matching db
is found, reachdown
returns null
unless strict
is false
in which case it returns the innermost db
.
bool = reachdown.is(db, visit)
Utility to determine the type of db
without reaching down. The visit
argument is the same as above, i.e. a string or a function. Example:
if reachdown // ..
Which is the same as the following, except that reachdown.is(..)
also works on older versions that don't have a type
property:
if dbtype === 'levelup' // ..
Supported Types
levelup
(>= 0.0.2 only if db is open, otherwise >= 2.0.0)encoding-down
(>= 1)deferred-leveldown
(>= 0.3.0 only if db is open, otherwise >= 2.0.0)subleveldown
(>= 4)multileveldown
(TBD)- Yours?
Implementations of abstract-leveldown
can declare a type like so:
MyLeveldownprototypetype = 'my-leveldown'
So that consumers can find that layer:
var down = var db = === down
Install
With npm do:
npm install reachdown
License
MIT © 2019-present Vincent Weevers