Initial commit
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
var storage = (function () {
|
||||
var storageName = 'cdb';
|
||||
var version = '0.1.0';
|
||||
var mainStorageKey;
|
||||
var initialized = false;
|
||||
var userModel;
|
||||
|
||||
function init (key, opts) {
|
||||
if (!key) {
|
||||
throw new Error('key is required');
|
||||
}
|
||||
|
||||
if (!userModel && !opts) {
|
||||
throw new Error('userModel is required');
|
||||
}
|
||||
|
||||
if (!userModel && opts && opts.userModel) {
|
||||
userModel = opts.userModel;
|
||||
}
|
||||
|
||||
mainStorageKey = key;
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
function getKey (key) {
|
||||
return [storageName, version, userModel.get('username'), mainStorageKey, key].join('.');
|
||||
}
|
||||
|
||||
function isSupported () {
|
||||
try {
|
||||
return 'localStorage' in window && window['localStorage'] !== null;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
init: function (key, opts) {
|
||||
if (!isSupported()) throw new Error('localStorage not supported in your browser');
|
||||
init(key, opts);
|
||||
},
|
||||
|
||||
get: function (key) {
|
||||
if (!initialized) {
|
||||
init();
|
||||
}
|
||||
var storageKey = getKey(key);
|
||||
return localStorage[storageKey];
|
||||
},
|
||||
|
||||
set: function (key, value) {
|
||||
if (!initialized) {
|
||||
init();
|
||||
}
|
||||
var storageKey = getKey(key);
|
||||
localStorage[storageKey] = value;
|
||||
},
|
||||
|
||||
delete: function (key) {
|
||||
if (!initialized) {
|
||||
init();
|
||||
}
|
||||
|
||||
var storageKey = getKey(key);
|
||||
delete localStorage[storageKey];
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
module.exports = storage;
|
||||
Reference in New Issue
Block a user