firestruct
v0.0.23
Published
Minimal immutable Firebase API
Downloads
36
Readme
Firestruct
Install:
npm install firestruct
Usage:
import Firestruct from "firestruct";
const count = c => c.value();
const increment = c => c.update(i => i + 1);
const fs = new Firestruct("https://test.firebaseio.com/clickcount");
fs.on("swap", (newCursor, oldCursor, path) => {
const clicksCursor = newCursor.cursor("clicks");
React.render(
<ClickCount
count={ count(clicksCursor) }
onClick={ event => increment(clicksCursor) } />,
document.body
);
);
API:
Structure
on(eventName, callback)
Event handler. Provides callback with 3 arguments:
- newCursor
- oldCursor
- changePath TODO
Events:
"swap"
: data change
structure._fb
Deprecated. Reference to raw Firebase object.
Please make note of any use; it should be unnecessary for all but Auth.
Cursor
Cursors are immutable references to the current structure.
cursor.cursor(path)
Returns a new cursor.
path
is an array/string pointing to a child location.
cursor.value()
Returns the value of the current cursor
cursor.update(callback)
Replaces the value of the current cursor with the return value of callback
. TODO: Returns the new cursor.
callback
is provided with the current value of the cursor as the first argument.
New branches may be created by selecting a non-existant path, then calling
update
with some data.Old branches may be deleted by selecting a path, then setting it as
undefined
.
cursor.cursors()
Convenience function. Returns an array of child [key, cursor]
pairs.
cursor._fb
Deprecated. Reference to raw Firebase snapshot.
Please make note of any use; it should be unnecessary. Tree-climbing and current node keys will never be supported.