@konsumation/db-level
Version:
timeseries database on leveldb
310 lines (198 loc) • 10.7 kB
Markdown
[](https://www.npmjs.com/package/@konsumation/db-level)
[](https://typescriptlang.org)
[](https://bundlejs.com/?q=@konsumation/db-level)
[](https://npmjs.org/package/@konsumation/db-level)
[](https://actions-badge.atrox.dev/konsumation/db-level/goto)
[](https://github.com/prettier/prettier)
[](http://commitizen.github.io/cz-cli/)
[](https://snyk.io/test/github/konsumation/db-level)
# konsum-db
timeseries database on leveldb
# example
```js
import levelup from "levelup";
import leveldown from "leveldown";
import { Master, Category } from "konsum-db";
async function example() {
// open database
const db = await levelup(leveldown("example.db"));
const master = await Master.initialize(db);
// create category named EV
const ev = new Category("EV", master, { unit: "kWh" });
await ev.write(master.db);
// write entry
await ev.writeValue(db, Date.now(), 77.34);
}
example();
```
# API
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
### Table of Contents
* [LevelCategory](#levelcategory)
* [Parameters](#parameters)
* [Properties](#properties)
* [write](#write)
* [Parameters](#parameters-1)
* [key](#key)
* [meters](#meters)
* [Parameters](#parameters-2)
* [entries](#entries)
* [Parameters](#parameters-3)
* [MASTER](#master)
* [CATEGORY\_PREFIX](#category_prefix)
* [VALUE\_PREFIX](#value_prefix)
* [METER\_PREFIX](#meter_prefix)
* [NOTE\_PREFIX](#note_prefix)
* [LevelMaster](#levelmaster)
* [Properties](#properties-1)
* [write](#write-1)
* [Parameters](#parameters-4)
* [close](#close)
* [categories](#categories)
* [Parameters](#parameters-5)
* [initialize](#initialize)
* [Parameters](#parameters-6)
* [LevelMeter](#levelmeter)
* [Parameters](#parameters-7)
* [Properties](#properties-2)
* [notes](#notes)
* [Parameters](#parameters-8)
* [values](#values)
* [Parameters](#parameters-9)
* [key](#key-1)
* [LevelNote](#levelnote)
* [key](#key-2)
* [secondsAsString](#secondsasstring)
* [Parameters](#parameters-10)
* [LevelValue](#levelvalue)
* [key](#key-3)
## LevelCategory
**Extends Category**
Value Category.
### Parameters
* `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** category name
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
* `options.description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
* `options.unit` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** physical unit like kWh or m3
* `options.fractionalDigits` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** display precission
### Properties
* `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** category name
* `description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
* `unit` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** physical unit
* `fractionalDigits` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** display precission
### write
* **See**: {key}
Writes object into database.
Leaves all other entries alone.
#### Parameters
* `db` **ClassicLevel** 
### key
Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
### meters
Get Meters of the category.
#### Parameters
* `db` **ClassicLevel** 
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** 
* `options.gte` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** from name
* `options.lte` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** up to name
* `options.reverse` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** order
Returns **AsyncIterable\<Meter>** 
### entries
Get categories.
#### Parameters
* `db` **ClassicLevel** 
* `gte` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** lowest name (optional, default `"\u0000"`)
* `lte` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** highst name (optional, default `"\uFFFF"`)
Returns **AsyncIterable\<Category>** 
## MASTER
Prefix of the master record
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
## CATEGORY\_PREFIX
Prefix of the categories.
Will be followed by the category name
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
## VALUE\_PREFIX
Prefix of the values.
Will be followed by the category name
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
## METER\_PREFIX
Prefix of the meters.
Will be followed by the category name
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
## NOTE\_PREFIX
Prefix of the notes.
Will be followed by the category name
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
## LevelMaster
**Extends Master**
Master record.
Holds schema version.
### Properties
* `schemaVersion` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
### write
* **See**: {key}
Writes object into database.
Leaves all other entries alone.
#### Parameters
* `db` **ClassicLevel** 
### close
Close the underlaying database.
### categories
List Categories.
#### Parameters
* `context`  
* `gte` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** 
* `lte` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** 
### initialize
Initialize database.
checks/writes master record.
#### Parameters
* `directory` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<Master>** 
## LevelMeter
**Extends Meter**
Meter
### Parameters
* `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** meter name
* `category` **Category** 
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
* `options.description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
* `options.unit` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** physical unit like kWh or m3
* `options.fractionalDigits` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** display precission
### Properties
* `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** category name
* `description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
* `unit` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** physical unit
* `fractionalDigits` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** display precission
### notes
List assigned Notes.
#### Parameters
* `db` **any** 
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** 
Returns **AsyncIterable<[LevelNote](#levelnote)>** 
### values
Get values of the meter.
#### Parameters
* `db` **any** 
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** 
* `options.gte` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** time of earliest value
* `options.lte` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** time of latest value
* `options.reverse` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** order
Returns **AsyncIterable\<Value>** 
### key
Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
## LevelNote
**Extends Note**
Hints placed on a category at a specific time.
### key
Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
## secondsAsString
Format seconds as string left padded with '0'.
### Parameters
* `seconds` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** seconds since epoch
Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** padded seconds
## LevelValue
**Extends Value**
Hints placed on a category at a specific time.
### key
Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**