A persistent data store implementing the dojo/store API
JavaScript CSS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
engines
example
test
CONTRIBUTING.md
LICENSE
README.md
Storehouse.js
package.js
package.json

README.md

#About

Storehouse is a persistent data store for the Dojo Toolkit implementing the dojo/store API.

It's built upon dojo/store/Memory, so you have all the API you have with the Memory store, just that the data gets persisted client-side.

Behind the covers, it uses IndexedDB as storage engine and falls back to localStorage if IndexedDB is not available – if that fails, too, it uses cookies as a last resort to store the data.

#How it works

Storehouse keeps a copy of the stored data in memory, allowing for fast, synchronous read access and queries.

Only write operations are asynchronous (as the underlying engine might work asynchronously itself), and return Promises to make working with it as easy as possible. For more information on Promises, please refer to the Dojo documentation.

#Getting Storehouse

Clone or download this repository and require 'Storehouse' in your application (for an example, please refer to the examples section). Other ways to obtain Storehouse will follow.

You might need to tell the Dojo loader where the Storehouse modules are; this is done via the dojoConfig config object. Please refer to the code in the examples to see some examples of this.

#Usage

Storehouse has the same API as the Memory Store has, with some differences, as Storehouse uses storage backends that operate async, and it needs to take this into account.

For usage details and a method overview, please refer to the Usage Doc.

#Examples

Examples are in the example folder. You can try them out directly in your browser over here.

#Tests

Tests are in the test directory. They require a D.O.H. runner.

#Dependencies

Storehouse requires Dojo 1.8+

Reporting Issues

Bugs or enhancements can be filed by opening an issue in the issue tracker on GitHub.

When reporting a bug, please provide the following information:

  • Affected browsers and Dojo versions
  • A clear list of steps to reproduce the problem
  • If the problem cannot be easily reproduced in an existing Storehouse test page, include a Gist with code for a page containing a reduced test case

If you would like to suggest a fix for a particular issue, you are welcome to fork Storehouse, create a branch, and submit a pull request. Please note that a Dojo CLA is required for any non-trivial modifications.

#License

Storehouse is available under the terms of the modified BSD license or the Academic Free License version 2.1. For details, see the LICENSE file.