|
|
|
|
/* jshint ignore:start */
|
|
|
|
|
importScripts('/bower_components/requirejs/require.js');
|
|
|
|
|
require.config({
|
|
|
|
|
// fix up locations so that relative urls work.
|
|
|
|
|
baseUrl: '/',
|
|
|
|
|
paths: {
|
|
|
|
|
// jquery declares itself as literally "jquery" so it cannot be pulled by path :(
|
|
|
|
|
"jquery": "/bower_components/jquery/dist/jquery.min",
|
|
|
|
|
// json.sortify same
|
|
|
|
|
"json.sortify": "/bower_components/json.sortify/dist/JSON.sortify",
|
|
|
|
|
cm: '/bower_components/codemirror'
|
|
|
|
|
},
|
|
|
|
|
map: {
|
|
|
|
|
'*': {
|
|
|
|
|
'css': '/bower_components/require-css/css.js',
|
|
|
|
|
'less': '/common/RequireLess.js',
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
window = self;
|
|
|
|
|
localStorage = {
|
|
|
|
|
setItem: function (k, v) { localStorage[k] = v; },
|
|
|
|
|
getItem: function (k) { return localStorage[k]; }
|
|
|
|
|
};
|
|
|
|
|
require([
|
|
|
|
|
'/common/common-util.js',
|
|
|
|
|
'/common/outer/worker-channel.js',
|
|
|
|
|
'/common/outer/store-rpc.js'
|
|
|
|
|
], function (Util, Channel, Rpc) {
|
|
|
|
|
var msgEv = Util.mkEvent();
|
|
|
|
|
|
|
|
|
|
Channel.create(msgEv, postMessage, function (chan) {
|
|
|
|
|
console.log('ww ready');
|
|
|
|
|
Object.keys(Rpc.queries).forEach(function (q) {
|
|
|
|
|
if (q === 'CONNECT') { return; }
|
|
|
|
|
chan.on(q, function (data, cb) {
|
|
|
|
|
try {
|
|
|
|
|
Rpc.queries[q](data, cb);
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.error('Error in webworker when executing query ' + q);
|
|
|
|
|
console.error(e);
|
|
|
|
|
console.log(data);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
chan.on('CONNECT', function (cfg, cb) {
|
|
|
|
|
console.log('onConnect');
|
|
|
|
|
// load Store here, with cfg, and pass a "query" (chan.query)
|
|
|
|
|
cfg.query = function (cmd, data, cb) {
|
|
|
|
|
chan.query(cmd, data, function (err, data) {
|
|
|
|
|
if (err) { return void cb({error: err}); }
|
|
|
|
|
cb(data);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
Rpc.queries['CONNECT'](cfg, cb);
|
|
|
|
|
});
|
|
|
|
|
}, true);
|
|
|
|
|
|
|
|
|
|
onmessage = function (e) {
|
|
|
|
|
msgEv.fire(e);
|
|
|
|
|
};
|
|
|
|
|
});
|