orbit-db-kastore
Version:
Key-Array Store for orbit-db
131 lines (91 loc) • 3.62 kB
Markdown
[](https://gitter.im/orbitdb/Lobby) [](https://riot.permaweb.io/#/room/#orbitdb:permaweb.io) [](https://badge.fury.io/js/orbit-db-kastore)
> Key-Array database for orbit-db
A key-array database just like your favourite key-array database.
Used in [ipfs-browser](https://github.com/ThalusA/ipfs-browser).
- [Install](
- [Usage](
- [API](
- [Contributing](
- [License](
```bash
npm install orbit-db ipfs orbit-db-kastore
```
First, create an instance of OrbitDB:
```javascript
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:
```javascript
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:
```javascript
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]
})
```
> Creates and opens a keyarray database
Returns a `Promise` that resolves to a [`KeyArrayStore` instance](https://github.com/ThalusA/orbit-db-kastore).
```javascript
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](https://github.com/ThalusA/orbit-db-kastore)
Returns a `Promise` that resolves to a `String` that is the multihash of the entry.
```javascript
await db.append('hello', { name: 'World' })
// Or:
await db.append('hello', [{ name: 'World' }])
```
Returns an `Array` of `Object` with the contents of the entry.
```javascript
const values = db.values('hello')
// [{ name: 'World' }]
```
Deletes the `Array` of `Object` associated with `key`. Returns a `Promise` that resolves to a `String` that is the multihash of the deleted entry.
```javascript
const hash = await db.delete('hello')
// QmbYHhnXEdmdfUDzZKeEg7HyG2f8veaF2wBrYFcSHJ3mvd
```
Returns an `Object` with the contents of all entries in the index.
```javascript
const value = db.all
// { hello: [{ name: 'World' }] }
```
If you think this could be better, please [open an issue](https://github.com/ThalusA/orbit-db-kastore/issues/new)!
Please note that all interactions in [orbit-db-kastore](https://github.com/ThalusA/orbit-db-kastore) fall under our [Code of Conduct](CODE_OF_CONDUCT.md).
[](LICENSE) ©️ 2016-2018 Protocol Labs Inc., 2018 Haja Networks Oy