mqtt-store

2.1.0 • Public • Published

mqtt-store

Store and retrieve data using MQTT keypaths. You can set values, then query for values that match a wildcard. Or set values with wildcards and find all wildcards that match a simple topic.

npm install mqtt-store --save

Example:

var MQTTStore = require("mqtt-store");
 
var store = new MQTTStore();
 
store.set("hello/world", "Greetings");
store.get("hello/world");
// #=> {key: "hello/world", value: "Greetings"}
 
store.set("foo/bar/baz", "woot");
store.set("foo/bar", "woot wooo");
store.findMatching("foo/#");
// #=> [
// {key: "foo/bar/baz", value: "woot"},
// {key: "foo/bar", value: "woot wooo"}
// ]
 
store.set("fizz/#", "lolwat");
store.set("fizz/buzz/+", "neat");
store.findPatterns("fizz/buzz/quix");
// #=> [
// {key: "fizz/#", value: "lolwat"},
// {key: "fizz/buzz/+", value: "neat"}
// ]

API

MQTTStore.Result(sections, value)

All results from queries are represented as a Result object.

MQTTStore.Result#key : String

The full key string for where the result was found

MQTTStore.Result#value : Any

The value stored in this result

MQTTStore.Result#sections : Array<String>

The key, split in to an array of sections

MQTTStore()

There is no configuration for the store currently, can be called either with new or just as a function.

MQTTStore#put(key : String, value : Any)

Sets a value in the store. In the background the topic will get split up into a path and will build up a tree. Topics with wildcards get set as through the wildcard was a literal key.

MQTTStore#get(key : String) : Result<Any>

Gets a single value from the store that was set at the given topic. If nothing was set at this topic, then MQTTStore.NO_RESULT is returned.

MQTTStore#.del(key : String) : Boolean

Deletes the value stored at the key if it exists. Returns true if the key contained a value, false if the key didn't exist or had no value.

MQTTStore#findMatching(key : String) : Array<Result<Any>>

Takes a topic with wildcards and returns all keys that match that topic. Returns an array of Results.

MQTTStore#match(key : String) : Array<Result<Any>>

Takes a topic and returns all values (that might contain wildcards) that match against that topic. Returns an array of Results.

Package Sidebar

Install

npm i mqtt-store

Weekly Downloads

132

Version

2.1.0

License

MIT

Last publish

Collaborators

  • rangermauve