From c13d5581ccbd7d49eadd647f2e0efbd8cf52c0c6 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 19 Sep 2014 07:36:04 -0400 Subject: [PATCH] feature(cloudcmd) index.html -> lib/client/cloudcmd.js --- html/fs/index.html | 53 ++----------------------------------- lib/client/cloudcmd.js | 60 ++++++++++++++++++++++++++++++++++++++++++ lib/cloudcmd.js | 22 ++++++++++++---- 3 files changed, 79 insertions(+), 56 deletions(-) create mode 100644 lib/client/cloudcmd.js diff --git a/html/fs/index.html b/html/fs/index.html index eeefb474..9f2ee855 100644 --- a/html/fs/index.html +++ b/html/fs/index.html @@ -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(); } })(); + diff --git a/lib/client/cloudcmd.js b/lib/client/cloudcmd.js new file mode 100644 index 00000000..4d9c2994 --- /dev/null +++ b/lib/client/cloudcmd.js @@ -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; + } +})(); diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index 658db44c..4f420fe7 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -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); }