VanillaStorage.js demo

HTML

<script src="https://rawgithub.com/mwager/VanillaStorage/gh-pages/dist/vanilla-storage.js"></script>
<h1>VanillaStorage.js demo</h1>
<hr>

<pre id="log"></pre>

CSS

#log {background:black; color:#fff; margin: 2px auto; width:100%}

JavaScript

function log() {
    arguments[0] = '[LOG'/*+new Date().toString()*/+'] ' + arguments[0];
    var l = document.getElementById('log');
    l.innerHTML += arguments[0] + '<br>';
    console.log.apply(console, arguments);
}

var options = {},
    vanilla,
    KEY       = 'some-key',
    DEMO_DATA = {foo: 'bar', num:42};

var readyToUseAPI = function(err) {
    // NOTE: (this instanceof VanillaStorage === true)
    log('vanilla API ready, error? ' + err, err, this); 
    
    this.save(KEY, DEMO_DATA, function(err) {
        log('Saved some data, error? ' + err, err); // should be undefined
        
        vanilla.get(KEY, function(err, data) {
            log('Data from storage: ' + JSON.stringify(data)); // -> DEMO_DATA
            /*
                vanilla.delete(KEY, function(err) {
                    // calling get(KEY) now should have the 
                    // error passed with message not found
                });*/
            });
        });
    };

// pre-checks possible
log("websql support: " +     VanillaStorage.isValid('websql-storage'))
log("indexed db support: " + VanillaStorage.isValid('indexeddb-storage'))

// NOTE: you must provide a `ready`-calback
vanilla = new VanillaStorage(options, readyToUseAPI);