diff --git a/json/beautify.json b/json/beautify.json deleted file mode 100644 index 02599d7a..00000000 --- a/json/beautify.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "indent_size": 4, - "indent_char": " ", - "indent_level": 0, - "indent_with_tabs": false, - "preserve_newlines": true, - "max_preserve_newlines": 10, - "jslint_happy": false, - "space_after_anon_function": false, - "brace_style": "collapse", - "keep_array_indentation": false, - "keep_function_indentation": false, - "space_before_conditional": true, - "break_chained_methods": false, - "eval_code": false, - "unescape_strings": false, - "wrap_line_length": 0 -} \ No newline at end of file diff --git a/lib/cloudcmd.js b/lib/cloudcmd.js index 9527d15d..d7d0600e 100644 --- a/lib/cloudcmd.js +++ b/lib/cloudcmd.js @@ -6,6 +6,7 @@ DIR_SERVER = DIR + 'server/', Util = require(DIR + 'util'), + cloudfunc = require(DIR + 'cloudfunc'), auth = require(DIR_SERVER + 'auth'), config = require(DIR_SERVER + 'config'), @@ -16,6 +17,7 @@ join = require('join-io'), ponse = require('ponse'), mollify = require('mollify'), + restafary = require('restafary'), WIN = process.platform === 'WIN32', terminal = !WIN ? require(DIR_SERVER + 'terminal') : function() {}, @@ -81,6 +83,9 @@ funcs = [ authFunc, config(), + restafary({ + prefix: cloudfunc.apiURL + '/fs' + }), rest, route, diff --git a/lib/server/beautify.js b/lib/server/beautify.js deleted file mode 100644 index 69be5c6a..00000000 --- a/lib/server/beautify.js +++ /dev/null @@ -1,53 +0,0 @@ -(function() { - 'use strict'; - - var fs = require('fs'), - path = require('path'), - - Util = require('../util'), - tryRequire = require('./tryRequire'), - beautify = tryRequire('js-beautify'), - - DIR = '../../', - HOME_WIN = process.env.HOMEPATH, - HOME_UNIX = process.env.HOME, - HOME = (HOME_UNIX || HOME_WIN) + path.sep, - - EXT = ['js', 'css', 'html'], - ERROR_MSG = 'File type "{{ ext }}" not supported.', - ERROR_MSG_INST = 'Beautify not installed', - ConfigPath = DIR + 'json/beautify.json', - ConfigHome = HOME + '.beautify.json', - - config = - tryRequire(ConfigHome) || - tryRequire(ConfigPath, {log: true}) || {}; - - module.exports = function(name, callback) { - var ext = path - .extname(name) - .slice(1), - - is = ~EXT.indexOf(ext); - - if (!beautify) - callback(Error(ERROR_MSG_INST)); - else if (!is) - callback(Error(Util.render(ERROR_MSG, { - ext : ext - }))); - else - fs.readFile(name, 'utf8', function(error, data) { - var result; - - if (!error) - error = Util.exec.try(function() { - result = beautify[ext](data, config); - }); - - - callback(error, result); - }); - }; - -})(); diff --git a/lib/server/rest.js b/lib/server/rest.js index dc6aaaee..bb2ff809 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -13,12 +13,10 @@ DIR_LIB = DIR + '../', DIR_JSON = DIR_LIB + '../json/', - fs = require('fs'), path = require('path'), Util = require(DIR_LIB + 'util'), CloudFunc = require(DIR_LIB + 'cloudfunc'), - format = require(DIR_LIB + 'format'), markdown = require(DIR + 'rest/markdown'), @@ -32,18 +30,7 @@ Modules = require(DIR_JSON + 'modules'), - isWin32 = process.platform === 'win32', - - Fs = {}; - - [ - 'get', - 'put', - 'patch', - 'delete' - ].forEach(function(name) { - Fs[name] = require(DIR + 'rest/fs/' + name); - }); + isWin32 = process.platform === 'win32'; /** * rest interface @@ -103,12 +90,9 @@ */ function sendData(params, callback) { var p = params, - isFS = RegExp('^/fs').test(p.name), isMD = RegExp('^/markdown').test(p.name); - if (isFS) - onFS(params, callback); - else if (isMD) + if (isMD) markdown(p.name, p.request, function(error, data) { callback(error, data); }); @@ -129,101 +113,6 @@ } } - function onFS(params, callback) { - var path, - p = params, - query = ponse.getQuery(p.request), - optionsDefauls = { - gzip: false, - name:'.txt' - }; - - p.name = Util.rmStrOnce(p.name, CloudFunc.FS) || '/'; - path = mellow.convertPath(p.name); - - switch (p.request.method) { - case 'PUT': - Fs.put(query, path, p.request, function(error, data) { - callback(error, optionsDefauls, data); - }); - break; - - case 'PATCH': - Fs.patch(path, p.request, function(error, data) { - callback(error, optionsDefauls, data); - }); - break; - - case 'GET': - Fs.get(query, path, function(error, data) { - var str, - options = {}, - isFile = error && error.code === 'ENOTDIR', - isStr = Util.type.string(data), - params = { - gzip: true, - name: path, - request: p.request, - response: p.response, - }; - - if (isFile) { - fs.realpath(path, function(error, path) { - if (!error) - params.name = path; - - params.gzip = false; - ponse.sendFile(params); - }); - } else { - if (!error) { - data.path = format.addSlashToEnd(p.name); - - options = { - name : p.name + '.json', - query : query - }; - - if (isStr) - str = data; - else - str = Util.json.stringify(data); - } - - callback(error, options, str); - } - }); - break; - - case 'DELETE': - pipe.getBody(p.request, function(error, body) { - var files; - - if (error) { - callback(error); - } else { - files = Util.json.parse(body); - - Fs.delete(query, path, files, function(error) { - var names, msg; - - if (!error) { - if (files && files.length) - names = files; - else - names = p.name; - - msg = formatMsg('delete', names); - } - - callback(error, optionsDefauls, msg); - }); - } - }); - break; - } - } - /** * process data on GET request * diff --git a/lib/server/rest/fs/delete.js b/lib/server/rest/fs/delete.js deleted file mode 100644 index aa08ad34..00000000 --- a/lib/server/rest/fs/delete.js +++ /dev/null @@ -1,44 +0,0 @@ -(function() { - 'use strict'; - - var DIR = '../../../', - DIR_SERVER = DIR + 'server/', - - Util = require(DIR + 'util'), - tryRequire = require(DIR_SERVER + 'tryRequire'), - flop = tryRequire('flop', {log: true, exit: true}); - - module.exports = function(query, name, files, callback) { - var func = Util.exec.ret(callback), - fileNames = Util.slice(files); - - switch(query) { - default: - flop.delete(name, func); - break; - - case 'files': - deleteFiles(name, fileNames, func); - break; - } - }; - - function deleteFiles(from, names, callback) { - var name, - isLast = true; - - isLast = !names.length; - name = names.shift(); - - if (isLast) - callback(null); - else - flop.delete(from + name, function(error) { - if (error) - callback(error); - else - deleteFiles(from, names, callback); - }); - } - -})(); diff --git a/lib/server/rest/fs/get.js b/lib/server/rest/fs/get.js deleted file mode 100644 index 7663924d..00000000 --- a/lib/server/rest/fs/get.js +++ /dev/null @@ -1,66 +0,0 @@ -(function() { - 'use strict'; - - var path = require('path'), - DIR = path.resolve(__dirname + '/../../../') + '/', - DIR_SERVER = DIR + 'server/', - - Util = require(DIR + 'util'), - - hash = require(DIR_SERVER + 'hash'), - beautify = require(DIR_SERVER + 'beautify'), - minify = require('minify'), - - tryRequire = require(DIR_SERVER + 'tryRequire'), - tryOptions = {log: true, exit: true}, - - mellow = tryRequire('mellow', tryOptions), - flop = tryRequire('flop', tryOptions), - files = tryRequire('files-io', tryOptions); - - module.exports = function(query, name, callback) { - var hashStream, error; - - Util.check(arguments, ['query', 'name', 'callback']); - - switch (query) { - default: - mellow.read(name, callback); - break; - - case 'size': - flop.read(name, 'size', callback); - break; - - case 'time': - flop.read(name, 'time', callback); - break; - - case 'beautify': - beautify(name, callback); - break; - - case 'minify': - minify(name, callback); - break; - - case 'hash': - hashStream = hash(); - - if (!hashStream) { - error = 'hash: not suported, try update node'; - callback(Error(error)); - } else - files.pipe(name, hashStream, function (error) { - var hex; - - if (!error) - hex = hashStream.get(); - - callback(error, hex); - }); - - break; - } - }; -})(); diff --git a/lib/server/rest/fs/patch.js b/lib/server/rest/fs/patch.js deleted file mode 100644 index 5bde9de7..00000000 --- a/lib/server/rest/fs/patch.js +++ /dev/null @@ -1,37 +0,0 @@ -(function() { - 'use strict'; - - var DIR = '../../../', - DIR_SERVER = DIR + 'server/', - - path = require('path'), - - CloudFunc = require(DIR + 'cloudfunc'), - Util = require(DIR + 'util'), - - patch = require(DIR_SERVER + 'patch'), - tryRequire = require(DIR_SERVER + 'tryRequire'), - - pipe = tryRequire('pipe-io', {log: true, exit: true}); - - module.exports = function(name, readStream, callback) { - var baseName = path.basename(name); - - Util.check(arguments, ['name', 'readStream', 'callback']); - - pipe.getBody(readStream, function(error, data) { - var options = { - size: CloudFunc.MAX_FILE_SIZE - }; - - patch(name, data, options, function(error) { - var msg; - - if (!error) - msg = CloudFunc.formatMsg('patch', baseName); - - callback(error, msg); - }); - }); - }; -})(); diff --git a/lib/server/rest/fs/put.js b/lib/server/rest/fs/put.js deleted file mode 100644 index 791dfebb..00000000 --- a/lib/server/rest/fs/put.js +++ /dev/null @@ -1,53 +0,0 @@ -(function() { - 'use strict'; - - var DIR = '../../../', - DIR_SERVER = DIR + 'server/', - - path = require('path'), - - CloudFunc = require(DIR + 'cloudfunc'), - check = require('checkup'), - exec = require('execon'), - - packer = require('jag'), - - tryRequire = require(DIR_SERVER + 'tryRequire'), - tryOptions = {log: true, exit: true}, - - flop = tryRequire('flop', tryOptions), - files = tryRequire('files-io', tryOptions), - - onSave = exec.with(onDone, 'save'), - onMakeDir = exec.with(onDone, 'make dir'); - - module.exports = function(query, name, readStream, callback) { - var onFile = exec.with(onSave, name, callback), - onDir = exec.with(onMakeDir, name, callback); - - check(arguments, ['query', 'name', 'readStream', 'callback']); - - switch(query) { - default: - files.pipe(readStream, name, onFile); - break; - - case 'dir': - flop.create(name, 'dir', onDir); - break; - - case 'unzip': - packer.unpack(readStream, name, onFile); - break; - } - }; - - function onDone(msg, name, callback, error) { - var baseName = path.basename(name); - - if (!error) - msg = CloudFunc.formatMsg(msg, baseName); - - callback(error, msg); - } -})(); diff --git a/package.json b/package.json index 6aed81d7..67211cc8 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "mollify": "~1.0.0", "pipe-io": "~1.1.1", "ponse": "~1.3.0", + "restafary": "~1.0.0", "socket.io": "~1.2.0" }, "devDependencies": {