feature(cloudcmd) index.html -> lib/client/cloudcmd.js

This commit is contained in:
coderaiser 2014-09-19 07:36:04 -04:00
parent 6ec3ef7f68
commit c13d5581cc
3 changed files with 79 additions and 56 deletions

View file

@ -38,60 +38,11 @@
window.addEventListener('load', load);
function load() {
var lib = 'lib/',
client = 'client/',
files = [
'util',
'join',
'format',
'promise',
'cloudfunc',
client + 'dom',
client + 'events',
client + 'rest',
client + 'load',
client + 'notify',
client + 'storage',
client + 'files',
client + 'buffer',
'client',
client + 'listeners',
client + 'key'
].map(function(name) {
return lib + name + '.js';
}),
urlFiles = getJoinURL(files);
createScript(urlFiles, function() {
CloudCmd.init();
});
window.removeEventListener('load', load);
}
function createScript(url, callback) {
var script = document.createElement('script');
script.src = url;
script.async = true;
if (callback)
script.addEventListener('load', function(event) {
callback(event);
script.removeEventListener('load', callback);
});
document.body.appendChild(script);
}
function getJoinURL(names) {
var prefix = '/join:',
url = prefix + names.join(':');
return url;
CloudCmd();
}
})();
</script>
<script src="/cloudcmd/cloudcmd.js"></script>
</body>
</html>

60
lib/client/cloudcmd.js Normal file
View file

@ -0,0 +1,60 @@
var CloudCmd;
(function() {
CloudCmd = load;
function load() {
var lib = 'lib/',
client = 'client/',
files = [
'util',
'join',
'format',
'promise',
'cloudfunc',
client + 'dom',
client + 'events',
client + 'rest',
client + 'load',
client + 'notify',
client + 'storage',
client + 'files',
client + 'buffer',
'client',
client + 'listeners',
client + 'key'
].map(function(name) {
return lib + name + '.js';
}),
urlFiles = getJoinURL(files);
createScript(urlFiles, function() {
CloudCmd.init();
});
window.removeEventListener('load', load);
}
function createScript(url, callback) {
var script = document.createElement('script');
script.src = url;
script.async = true;
if (callback)
script.addEventListener('load', function(event) {
callback(event);
script.removeEventListener('load', callback);
});
document.body.appendChild(script);
}
function getJoinURL(names) {
var prefix = '/join:',
url = prefix + names.join(':');
return url;
}
})();

View file

@ -37,8 +37,11 @@
module.exports = function(params) {
var keys,
funcs = cloudcmd(),
middle = respond.bind(null, funcs);
p = params || {},
prefix = p.prefix || '/cloudcmd',
prefixRegExp = new RegExp('^' + prefix),
funcs = cloudcmd(),
middle = respond.bind(null, prefixRegExp, funcs);
if (params) {
keys = Object.keys(params);
@ -97,10 +100,19 @@
return funcs;
}
function respond(funcs, req, res) {
function respond(regExp, funcs, req, res) {
var is = regExp.test(req.url);
if (is) {
req.url = req.url.replace(regExp, '');
if (req.url === '/cloudcmd.js')
req.url = '/lib/client/cloudcmd.js';
}
funcs = funcs.map(function(func) {
return Util.exec.with(func, req, res);
});
return Util.exec.with(func, req, res);
});
Util.exec.series(funcs);
}