Skip to content

Instantly share code, notes, and snippets.

@jrobinsonc
Last active June 15, 2016 11:54
Show Gist options
  • Save jrobinsonc/69da712b13f052964b9b to your computer and use it in GitHub Desktop.
Save jrobinsonc/69da712b13f052964b9b to your computer and use it in GitHub Desktop.
JSDB - localStorage and sessionStorage wrapper.

db

localStorage and sessionStorage wrapper.

How to use

First, define your web storage:

<script>
// with sessionStorage:
var db = new jsdb('sessionStorage');

// with localStorage:
var db = new jsdb('localStorage');
</script>

Set item:

<script>
// store string
db.set("name", "Jose");

// store json
db.set("data", {val1: "XY", val2: 4});

// store number
db.set("number", 35);
</script>

Get item:

<script>
console.log(db.get('data'));
</script>

Remove item:

<script>
db.remove('data');
</script>

Clear all items:

<script>
db.clear();
</script>
{
"name": "jsdb",
"description": "localStorage and sessionStorage wrapper.",
"version": "0.4.0",
"main": "jsdb.js",
"authors": [
"Jose Robinson <hi@joserobinson.com>"
],
"keywords": [
"localStorage",
"sessionStorage",
"storage"
],
"license": "MIT",
"homepage": "https://gist.github.com/jrobinsonc/69da712b13f052964b9b#file-readme-md"
}
/**
* jsdb v0.4.0
* localStorage and sessionStorage wrapper.
* https://gist.github.com/jrobinsonc/69da712b13f052964b9b
* MIT License
* by JoseRobinson.com
*/
var jsdb = function(provider){
return {
_serialize: function(value) {
return JSON.stringify(value);
},
_unserialize: function(value) {
try {
return JSON.parse(value);
}
catch(e) {
return null;
}
},
set: function(key, value){
window[provider].setItem(key, this._serialize(value));
},
get: function(key, defValue){
var value = window[provider].getItem(key);
if (value === null)
return defValue === undefined? null : defValue;
else
return this._unserialize(value);
},
remove: function(key){
return window[provider].removeItem(key);
},
clear: function(){
return window[provider].clear();
}
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment