random-access-compatible indexedDB storage layer
NB: This version is a fork of @substack's original random-access-idb that implements random-access-storage abstraction. It helps normalizing every random access instances and eases rai usage in modules like random-access-network.
Implements every random-access-storage method except unlink
and suspend
.
const SAI = require('stochastic-access-idb')
const random = SAI('dbname')
const cool = random('cool.txt')
cool.write(100, Buffer.from('GREETINGS'), function (err) {
if (err) return console.error(err)
cool.read(104, 3, function (err, buf) {
if (err) return console.error(err)
console.log(buf.toString()) // TIN
})
})
const SAI = require('stochastic-access-idb')
Open an indexedDB database at dbname
.
Any opts
provided are forwarded to db(name, opts)
as default options.
Create a handle file
from name
and opts
. Options include:
{
size: Number, // internal page size in bytes, default: 4096
}
You must keep opts.size
the same after you've written data.
If you change the size, bad things will happen.
Read length
bytes at an offset
from file
as cb(err, buf)
.
Write buf
to file
at an offset
.
Delete the specified amount of bytes at the specified offset. Optionally pass a callback that is called with (err) when the delete has completed.
Truncate the storage at the specified offset. Optionally pass a callback that is called with (err) when the truncate has completed.
Stat the storage, returns an object to callback including:
{
size: Number, // total number of bytes in storage across all pages
}
Explicitly open the storage. If you do not call this yourself, it will automatically called before any read/write/del/stat operation.
Close the storage instance.
npm install stochastic-access-idb
BSD