depot.js is a namespaced localStorage wrapper with a simple API. There are other tools out there but none of them had what I was looking for.
depot.js should work well with CommonJS and AMD loaders. If loaders are not present depot.js will attach itself to the current context (window) when loaded via <script src="depot.min.js"></script>
.
depot.js is also a bower component so you should be able to install it by running:
bower install depot
or if you already have a bower based project you can add depot.js to your dependency list in component.json
"dependencies": { ... "depot": "0.x.x" ... }
depot.js does not depend on any other libraries however if you plan to support older browsers you will need to include ES5-shim.
If you plan to run it on browsers that don't support localStorage you may try to include storage polyfill.
save(record)
updateAll(hash)
update(hash)
find(hash | function)
all()
destroy(id | record)
destroyAll(none | hash | function)
get(id)
size()
##Usage
####Define new store
var todoStore = depot('todos');
####Add new records
_id
property will be generated and attached to each new record:
todoStore.save({ title: "todo1" }); todoStore.save({ title: "todo2", completed: true }); todoStore.save({ title: "todo3", completed: true });
####Update all records
todoStore.updateAll({ completed: false });
####Return all records
todoStore.all(); // [{ id: 1, title "todo1" }, {id: 2, title: todo2 }]
####Find records
todoStore.find({ completed: true }); // [{ id: 2, title: "todo2" }, { id: 3, title: "todo3" }]
todoStore.find(function (record) { return record.completed && record.title == "todo3"; }); // [{ id: 3, title: "todo3" }]
####Return single record by id
todoStore.get(1); // { id: 1, title: "todo1" }
####Destroy single record
todoStore.destroy(1);
todoStore.destroy(todo);
####Destroy all records
todoStore.destroyAll();
todoStore.destroyAll({ completed: true });
todoStore.destroyAll(function (record) { return record.completed && record.title == "todo3"; });
##Options
You can pass a second parameter to depot.js with additional options.
var todoStore = depot("todos", options);
_id
)var todoStore = depot("todos", { idAttribute: 'id' });
localStorage
)var todoStore = depot('todos', { storageAdaptor: sessionStorage });
##Contributors:
##License: