konsum-db
timeseries database on leveldb
example
import levelup from "levelup";
import leveldown from "leveldown";
import { Master, Category } from "konsum-db";
async function example() {
const db = await levelup(leveldown("example.db"));
const master = await Master.initialize(db);
const ev = new Category("EV", master, { unit: "kWh" });
await ev.write(master.db);
await ev.writeValue(db, Date.now(), 77.34);
}
example();
API
Table of Contents
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());
Object.definedProperties(new aClass(),{ with_default: { value: 77 }})
Parameters
object
Object target objectoptions
Object as passed to object constructor (optional, default {}
)properties
Object object properties (optional, default {}
)attributes
Object? attribute meta info (optional, default object.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, default object.constructor.attributes
)
Returns Object initial + defined values
mapAttributes
Rename attributes.
Filters out null, undefined and empty strings.
mapAttributes({a:1},{a:"a'"})
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
Writes object into database.
Leaves all other entries alone.
Parameters
readDetails
Get detail objects.
Parameters
-
factory
Class
-
db
levelup
-
options
Object
Returns AsyncIterator<factory>
delete
Delete record from database.
Parameters
keyPrefix
Prefix of the key
Returns string
keyPrefixWith
Parameters
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
Returns Promise<Base>
Category
Extends Base
Value Category.
Parameters
Properties
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
options.gte
string time of earliest valueoptions.lte
string time of latest valueoptions.reverse
boolean order
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
options.gte
string time of earliest valueoptions.lte
string time of latest valueoptions.reverse
boolean order
Returns Readable
meters
Get Meters of the category.
Parameters
Returns Iterator<Meter>
notes
Get Notes of the category.
Parameters
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
close
Close the underlaying database.
categories
List Categories.
Parameters
backup
Copy all data into out stream as long time text data.
Parameters
restore
Restore database from input stream.
Parameters
input
Readable data from backup
initialize
Initialize database.
checks/writes master record.
Parameters
Returns Promise<Master>
Meter
Extends Base
Meter
Parameters
Properties
Note
Extends Base
Hints placed on a category at a specific time.
Parameters
secondsAsString
Format seconds as string left padded with '0'.
Parameters
seconds
number seconds since epoch
Returns string padded seconds