# kappa-view-level

> make views over kappa-core with leveldb

Latest version **2.2.0** (published 2020-08-04) · ISC license · 0 weekly downloads

## Install

```sh
npm install kappa-view-level
pnpm add kappa-view-level
yarn add kappa-view-level
bun add kappa-view-level
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.2.0 |
| Published | 2020-08-04 |
| First published | 2018-05-28 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 3.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 11 |
| Author | Stephen Whitmore |
| Maintainers | cblgh, gmaclennan, karissa, noffle, substack |

## Links

- npm: https://www.npmjs.com/package/kappa-view-level
- Repository: https://github.com/noffle/kappa-view-level
- Issues: https://github.com/noffle/kappa-view-level/issues
- npm.io page: https://npm.io/package/kappa-view-level

## Dependencies (1)

- [kappa-view](https://npm.io/package/kappa-view.md) ^3.1.0

## Recent versions

- 2.2.0 (latest) — 2020-08-04
- 2.3.0 — 2020-08-04
- 2.1.0 — 2019-11-18
- 2.0.1 — 2019-05-30
- 2.0.0 — 2019-05-26
- 1.1.0 — 2018-08-10
- 1.0.0 — 2018-05-28

## README

# kappa-view-level

> make kappa-core views over leveldb

## Usage

```js
var kappa = require('kappa-core')
var View = require('kappa-view-level')
var ram = require('random-access-memory')
var memdb = require('memdb')

var core = kappa(ram, { valueEncoding: 'json' })
var lvl = memdb()

var view = View(lvl, {
  map: function (msg) {
    return [
      [ msg.value.key, msg.value.value ]  // map first element to second element
    ]
  },
  
  api: {
    get: function (core, key, cb) {
      lvl.get(key, cb)
    }
  }
})

core.use('mapper', view)

core.writer(function (err, feed) {
  feed.append({key: 'foo', value: 'bar'})
  feed.append({key: 'bax', value: 'baz'})

  core.ready('mapper', function () {
    core.api.mapper.get('foo', console.log)
    core.api.mapper.get('bax', console.log)
    core.api.mapper.get('nix', console.log)
  })
})
```

outputs

```
null 'bar'
null 'baz'
NotFoundError: Key not found in database [nix]
```

## API

```js
var View = require('kappa-view-level')
```

### var view = View(leveldb, opts)

Expects a LevelUP or LevelDOWN instance `leveldb`.

Required `opts` are:

- `map: function (msg)`: a mapper function that returns an array of `[key,
  value]` arrays.
- `api: {}`: an object that defines API functions that the view exposes. These
  can have whatever names you want, be sync or async, and return whatever you'd
  like.

## Install

With [npm](https://npmjs.org/) installed, run

```
$ npm install kappa-view-level
```

## Acknowledgments

kappa-view-level was inspired by
[flumeview-level](https://github.com/flumedb/flumeview-level).

## License

ISC

---
_Source: https://npm.io/package/kappa-view-level · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
