summaryrefslogtreecommitdiffstats
path: root/theme/javascript/utils/storage.js
blob: 14275c6e824b1fbb852b6faa94bc4e4660de7c58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
define(function(){
    var baseKey = "";

    /*
     * Simple module for storing data in the browser's local storage
     */
    return {
        setBaseKey: function(key) {
            baseKey = key;
        },
        set: function(key, value) {
            key = baseKey+":"+key;
            localStorage[key] = JSON.stringify(value);
        },
        get: function(key, def) {
            key = baseKey+":"+key;
            try {
                var v = JSON.parse(localStorage[key]);
                return v == null ? def : v;;
            } catch(err) {
                console.error(err);
                return localStorage[key] || def;
            }
        },
        remove: function(key) {
            key = baseKey+":"+key;
            localStorage.removeItem(key);
        }
    };
});