stochastic-access-idb

2.0.4 • Public • Published

random-access-idb

random-access-compatible indexedDB storage layer

Build Status

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.

example

const RAI = require('random-access-idb')
const random = RAI.storage('dbname') // or, new RAI('cool.txt', { dbname: '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
  })
})

api

const RAI = require('random-access-idb')

var db = RAI.storage(dbname, opts)

Open an indexedDB database at dbname.

Any opts provided are forwarded to db(name, opts) as default options.

var file = RAI.storage(dbname, defaultOpts)(name, opts)

var file = new RAI(name, [opts])

var file = new RAI({ name, ...opts })

Create a handle file from name and opts. Options include:

{
  size: Number, // internal page size in bytes, default: 4096
  dbname: String, // name of the idb instance that backs RAI instances, default: "random-access-idb"
  version: Number, // version of idb instance, default: 1
  name: String, // name of the RAI instance to open, throws if none passed
}

You must keep opts.size the same after you've written data. If you change the size, bad things will happen.

file.read(offset, length, cb)

Read length bytes at an offset from file as cb(err, buf).

file.write(offset, buf, cb)

Write buf to file at an offset.

file.del(offset, size, [cb])

Delete the specified amount of bytes at the specified offset. Optionally pass a callback that is called with (err) when the delete has completed.

file.truncate(offset, [cb])

Truncate the storage at the specified offset. Optionally pass a callback that is called with (err) when the truncate has completed.

file.stat(cb)

Stat the storage, returns an object to callback including:

{
  size: Number, // total number of bytes in storage across all pages
  blksize: Number, // individual page size
  blocks: Number // sum of all pages byteLength divided by logical byte size (512 bytes)
}

file.open([cb])

Explicitly open the storage. If you do not call this yourself, it will automatically called before any read/write/del/stat operation.

file.close([cb])

Close the storage instance.

install

npm install random-access-idb

license

BSD

Package Sidebar

Install

npm i stochastic-access-idb

Weekly Downloads

3

Version

2.0.4

License

BSD

Unpacked Size

28.8 kB

Total Files

16

Last publish

Collaborators

  • utanapishtim