jrobinsonc
11/28/2014 - 4:54 PM

JSDB - localStorage and sessionStorage wrapper.

JSDB - localStorage and sessionStorage wrapper.

/**
 * 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();
        }
    };

};
{
  "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"
}

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>