orbit-db-kastore

1.0.5 • Public • Published

orbit-db-kastore

Gitter Matrix npm version

Key-Array database for orbit-db

A key-array database just like your favourite key-array database.

Used in ipfs-browser.

Table of Contents

Install

npm install orbit-db ipfs orbit-db-kastore

Usage

First, create an instance of OrbitDB:

const IPFS = require('ipfs')
const OrbitDB = require('orbit-db')
const KeyArrayStore = require('orbit-db-kastore')

const ipfs = new IPFS()
OrbitDB.addDatabaseType("keyarray", KeyArrayStore)
const orbitdb = await OrbitDB.createInstance(ipfs)

Get a key-array database and add one or multiple entry to it:

const options = Object.assign({ type: "keyarray" }, { create: true, disableDelete: false }) // yes you can disable delete command by setting this to true (it is optional and false by default)
const ka = await orbitdb.open('settings', options)
ka.add('volume', '100')
  .then(() => {
    console.log(ka.get('volume'))
    // [100]
  })
// Or:
ka.add('volume', ['100', '200'])
  .then(() => {
    console.log(ka.get('volume'))
    // [100, 200]
  })

Later, when the database contains data, load the history and query when ready:

const options = Object.assign({ type: "keyarray" }, {})
const ka = await orbitdb.open('settings', options)
ka.events.on('ready', () => {
  console.log(ka.get('volume'))
  // [100] or [100, 200]
})

API

orbitdb.open(name|address, Object.assign({ type: "keyarray" }, options))

Creates and opens a keyarray database

Returns a Promise that resolves to a KeyArrayStore instance.

const options = Object.assign({ type: "keyarray" }, { create: true })
const db = await orbitdb.open('application.settings', options)
// Or:
const db = await orbitdb.open(anotherkadb.address, options)

Module: orbit-db-kastore

append(key, value|values)

Returns a Promise that resolves to a String that is the multihash of the entry.

await db.append('hello', { name: 'World' })
// Or:
await db.append('hello', [{ name: 'World' }])

values(key)

Returns an Array of Object with the contents of the entry.

const values = db.values('hello')
// [{ name: 'World' }]

delete(key)

Deletes the Array of Object associated with key. Returns a Promise that resolves to a String that is the multihash of the deleted entry.

const hash = await db.delete('hello')
// QmbYHhnXEdmdfUDzZKeEg7HyG2f8veaF2wBrYFcSHJ3mvd

all

Returns an Object with the contents of all entries in the index.

const value = db.all
// { hello: [{ name: 'World' }] }

Contributing

If you think this could be better, please open an issue!

Please note that all interactions in orbit-db-kastore fall under our Code of Conduct.

License

MIT ©️ 2016-2018 Protocol Labs Inc., 2018 Haja Networks Oy

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.5
    1
    • latest

Version History

Package Sidebar

Install

npm i orbit-db-kastore

Weekly Downloads

1

Version

1.0.5

License

MIT

Unpacked Size

893 kB

Total Files

15

Last publish

Collaborators

  • thalusa