konsum-db
timeseries database on leveldb
example
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
Table of Contents
- definePropertiesFromOptions
- defaultValues
- optionJSON
- mapAttributes
- mapAttributesInverse
- description
- Base
- Category
- MASTER
- SCHEMA_VERSION_1
- SCHEMA_VERSION_2
- SCHEMA_VERSION_CURRENT
- CATEGORY_PREFIX
- VALUE_PREFIX
- unit
- fractionalDigits
- Master
- Meter
- Note
- secondsAsString
definePropertiesFromOptions
- See: Object.definedProperties()
- See: Object.getOwnPropertyDescriptor()
Create properties from options and default options. Already present properties (direct) are skipped. The attribute list from the class will be applied to the options and merged with the given set of properties.
class aClass {
static get attributes() {
return { with_default: { default: 77 }};
}
}
definePropertiesFromOptions(new aClass());
// equivalent to
Object.definedProperties(new aClass(),{ with_default: { value: 77 }})
Parameters
-
object
Object target object -
options
Object as passed to object constructor (optional, default{}
) -
properties
Object object properties (optional, default{}
) -
attributes
Object? attribute meta info (optional, defaultobject.constructor.attributes
)
defaultValues
Get default values.
Parameters
Returns Object filled with default values
optionJSON
Create json based on present options. In other words only produce key value pairs if value is defined.
Parameters
-
object
Object -
initial
Object (optional, default{}
) -
attributes
Object to operator on (optional, defaultobject.constructor.attributes
)
Returns Object initial + defined values
mapAttributes
Rename attributes. Filters out null, undefined and empty strings.
mapAttributes({a:1},{a:"a'"}) // {"a'": 1}
Parameters
Returns Object keys renamed after mapping
mapAttributesInverse
Same as mapAttributes but with the inverse mapping. Filters out null, undefined and empty strings
Parameters
Returns Object keys renamed after mapping
description
Description of the content.
Base
Base
Parameters
Properties
key
Returns string
write
- See: {key}
Writes object into database. Leaves all other entries alone.
Parameters
-
db
levelup
readDetails
Get detail objects.
Parameters
-
factory
Class -
db
levelup -
options
Object
Returns AsyncIterator<factory>
delete
Delete record from database.
Parameters
-
db
levelup
keyPrefix
Prefix of the key
Returns string
keyPrefixWith
Parameters
-
object
Base
Returns String prefix for a given (master) object
typeName
Name of the type in text dump
Returns string
attributes
Additional attributes to be persisted
entries
Get instances without owner.
Parameters
-
db
levelup -
prefix
string -
gte
string lowest name (optional, default"\u0000"
) -
lte
string highst name (optional, default"\uFFFF"
)
Returns AsyncIterator<Base>
entriesWith
Get instances with owner.
Parameters
-
db
levelup -
object
Object -
gte
string lowest name (optional, default"\u0000"
) -
lte
string highst name (optional, default"\uFFFF"
)
Returns AsyncIterator<Base>
entry
Get a single instance.
Parameters
-
db
levelup -
key
string
Category
Extends Base
Value Category.
Parameters
Properties
-
name
string category name -
description
string -
unit
string physical unit -
fractionalDigits
number display precission
valueKey
Key for a given value.
Parameters
-
time
number seconds since epoch
Returns string key
writeValue
Write a time/value pair.
Parameters
getValue
Parameters
-
db
levelup -
time
number seconds since epoch
deleteValue
Parameters
-
db
levelup -
time
number seconds since epoch
values
Get values of the category.
Parameters
-
db
levelup -
options
Object
Returns Iterator<Object>
readStream
Get values of the category as ascii text stream with time and value on each line.
Parameters
-
db
levelup -
options
Object
Returns Readable
meters
Get Meters of the category.
Parameters
-
db
levelup -
options
Object
Returns Iterator<Meter>
notes
Get Notes of the category.
Parameters
-
db
levelup -
options
Object
Returns AsyncIterator<Meter>
entries
Get categories.
Parameters
Returns AsyncIterator<Category>
MASTER
Prefix of the master record
Type: string
SCHEMA_VERSION_1
Outdated schema version
Type: string
SCHEMA_VERSION_2
Schema with type + name
Type: string
SCHEMA_VERSION_CURRENT
Schema version for newly created databases
CATEGORY_PREFIX
Prefix of the categories. Will be followed by the category name
Type: string
VALUE_PREFIX
Prefix of the values. Will be followed by the category name
Type: string
unit
Physical unit.
Returns string
fractionalDigits
Precission
Returns number
Master
Extends Base
Master record. Holds schema version.
Properties
-
schemaVersion
string
close
Close the underlaying database.
categories
List Categories.
Parameters
backup
Copy all data into out stream as long time text data.
Parameters
-
out
Writeable
restore
Restore database from input stream.
Parameters
-
input
Readable data from backup
initialize
Initialize database. checks/writes master record.
Parameters
-
db
levelup
Meter
Extends Base
Meter
Parameters
Properties
-
name
string category name -
description
string -
unit
string physical unit -
fractionalDigits
number display precission
Note
Extends Base
Hints placed on a category at a specific time.
Parameters
-
time
-
owner
-
options
secondsAsString
Format seconds as string left padded with '0'.
Parameters
-
seconds
number seconds since epoch
Returns string padded seconds