JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>

JavaScript

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.LocalFileSystem = window.LocalFileSystem || {PERSISTENT: window.PERSISTENT};

fs = {
    initFS: function() {
        window.requestFileSystem(LocalFileSystem.PERSISTENT,
                                 1024 * 1024 * 8, this.gotFS, this.fail);
    },

    fail: function(source, err) {
        err.source = source;
        var msg = '';

        switch (err.code) {
          case FileError.QUOTA_EXCEEDED_ERR:
            msg = 'QUOTA_EXCEEDED_ERR';
            break;
          case FileError.NOT_FOUND_ERR:
            msg = 'NOT_FOUND_ERR';
            break;
          case FileError.SECURITY_ERR:
            msg = 'SECURITY_ERR';
            break;
          case FileError.INVALID_MODIFICATION_ERR:
            msg = 'INVALID_MODIFICATION_ERR';
            break;
          case FileError.INVALID_STATE_ERR:
            msg = 'INVALID_STATE_ERR';
            break;
          default:
            msg = 'Unknown Error';
            break;
        };
        err.msg = msg;
        console.log('err ', JSON.stringify(err));
    },
    failarg: function(msg) {
        return _.bind(this.fail, this, msg);
    },

    gotFS: function(fs) {
        this.fs = this.fs || fs;
        this.readConfig();
        this.listApps(fs.root);  // BREAKPOINT
    },
    
    listApps: function(fsroot) {
        this.rootReader = this.rootReader || fsroot.createReader();
        this.rootReader.readEntries(this.gotRootEntries, this.fail);
    },
    
    gotRootEntries: function(entries) {
        _(entries).forEach(function(entry) {
            if (entry.isDirectory && this.controller) {
                // TODO
            }
        });
    },
    
    readConfig: function() {
        this.fs.root.getFile('config.json', {create:true}, this.gotConfigFileEntry, this.failarg('getFile'));
    },
    gotConfigFileEntry: function(entry) {
        entry.file(this.gotConfigFile,...