The Patternslib storage utility API
Patternslib includes a simple storage utility which you can use to store data for a pattern. The implementation is similar to the Web storage mechanism introduced in HTML5 (and in fact uses that as the underlying storage), but offers multiple named storages and a few extensions that make it easier to use in patterns.
Example
var store = require("../core/store");
if (store.supported)
alert("Your browser does not support storage.");
else {
var storage = store.local("mypattern");
storage.set("key", true);
alert("The stored value is: " + storage.get("key"));
}
The Store API
-
store.supported
A boolean flag indicating if the browser supports web storage.
-
store.local(name)
- name (String): identifier for the storage section. This should almost always be the name of the pattern.
Return a local storage instance. Local storage is persistant accross multiple browser sessions and tabs, and will survive a browser restart.
-
store.session(name)
Parameters:
- name (String): identifier for the storage section. This should almost always be the name of the pattern.
Return a session storage instance. Session storage is tied to a single browser session. If a browser has multiple tabs open on the same website each tab will be seen as a different session. Session storage is not guaranteed to survive a browser restart.
Storage instance
The API for a storage instance mimicks the HTML5 Storage interface It differs in that it adds a method to remove all data for a pattern, can return all data as a single javascript object and can store all values that can be JSON serialized instead of only strings.
-
storage.get(name)
Parameters:
- name (String): name of the stored variable to retrieve
Retrieve (a copy of) a stored value from the storage. If no value for the given name was stored,
null
will be returned. -
storage.set(name, value)
Parameters:
- name (String): name of the variable to store
- value (Object): value to store. Can be any type that is JSON serializable.
Store a variable. This will replace an existing value if already present. Throws QuoteExceededError: This exception is thrown if the browser can not store this value.
-
storage.remove(name)
Parameters:
- name (String): name of the variable to remove
Remove a variable from the storage. Unknown names are silently ignored.
-
storage.clear()
This method removes all variables stored for the pattern.
-
storage.all()
This method returns an object containing a copy of all stored data. Please note that this is only a copy: modifications made to the returned object will not be stored.
Returns an object with all the stored data.