diff --git a/lib/server.js b/lib/server.js index 8fa50f25..740572d1 100644 --- a/lib/server.js +++ b/lib/server.js @@ -31,6 +31,7 @@ join = require(DIR_SERVER + 'join'), ponse = require(DIR_SERVER + 'ponse'), express = require(DIR_SERVER + 'express'), + tryRequire = require(DIR_SERVER + 'tryRequire'), emptyFunc = function(req, res, next) { Util.exec(next); @@ -42,20 +43,10 @@ return emptyFunc; }; - Console = tryRequire('console-io') || emptyFunc; - - function tryRequire(name) { - var module, error; - - error = Util.exec.try(function() { - module = require(name); - }); - + Console = tryRequire('console-io', function(error) { if (error) Util.log(error.message); - - return module; - } + }) || emptyFunc; /** * start server function diff --git a/lib/server/express.js b/lib/server/express.js index ea0d092b..c726132d 100644 --- a/lib/server/express.js +++ b/lib/server/express.js @@ -7,6 +7,8 @@ Util = require(DIR_LIB + 'util'), crypto = require('crypto'), + tryRequire = require('./tryRequire'), + express = tryRequire('express'), httpAuth = tryRequire('http-auth'), logger = tryRequire('morgan'), @@ -76,14 +78,4 @@ callback(equal); }); } - - function tryRequire(name) { - var module; - - Util.exec.try(function() { - module = require(name); - }); - - return module; - } })(); diff --git a/lib/server/flop.js b/lib/server/flop.js index 0cab40b4..b7f1ef4f 100644 --- a/lib/server/flop.js +++ b/lib/server/flop.js @@ -14,6 +14,7 @@ readify = require(DIR + 'readify'), time = require(DIR + 'timem'), pipe = require(DIR + 'pipe'), + tryRequire = require(DIR + 'tryRequire'), ncp = tryRequire('ncp'), rimraf = tryRequire('rimraf'), @@ -103,14 +104,4 @@ pipe.create(from, to, callback); }); }; - - function tryRequire(name) { - var module; - - Util.exec.try(function() { - module = require(name); - }); - - return module; - } })(); diff --git a/lib/server/fstream.js b/lib/server/fstream.js index 5ec3b854..ecd5c25d 100644 --- a/lib/server/fstream.js +++ b/lib/server/fstream.js @@ -1,8 +1,10 @@ (function () { 'use strict'; - var DIR = '../', - Util = require(DIR + 'util'), + var DIR = './', + + tryRequire = require(DIR + 'tryRequire'), + fstream = tryRequire('fstream'), tar = tryRequire('tar'); @@ -23,14 +25,4 @@ return dirStream; }; - function tryRequire(name) { - var module; - - Util.exec.try(function() { - module = require(name); - }); - - return module; - } - })(); diff --git a/lib/server/minify.js b/lib/server/minify.js index 17ea9543..6c8a523c 100644 --- a/lib/server/minify.js +++ b/lib/server/minify.js @@ -1,7 +1,7 @@ (function() { 'use strict'; - var Util = require('../util'), + var tryRequire = require('./tryRequire'), minify = tryRequire('minify'); module.exports = function(name, params, callback) { @@ -19,13 +19,4 @@ next(); } - function tryRequire(name) { - var module; - - Util.exec.try(function() { - module = require(name); - }); - - return module; - } })(); diff --git a/lib/server/rest/markdown.js b/lib/server/rest/markdown.js index e60d8ff9..92fd12b0 100644 --- a/lib/server/rest/markdown.js +++ b/lib/server/rest/markdown.js @@ -9,11 +9,12 @@ Util = require(DIR_LIB + 'util'), - marked = tryRequire('marked'), - + tryRequire = require(DIR + 'tryRequire'), pipe = require(DIR + 'pipe'), mellow = require(DIR + 'mellow'), - ponse = require(DIR + 'ponse'); + ponse = require(DIR + 'ponse'), + + marked = tryRequire('marked'); exports.operate = operate; @@ -64,14 +65,4 @@ }); } - function tryRequire(name) { - var module; - - Util.exec.try(function() { - module = require(name); - }); - - return module; - } - })(); diff --git a/lib/server/socket.js b/lib/server/socket.js index 8a1ce737..b3401390 100644 --- a/lib/server/socket.js +++ b/lib/server/socket.js @@ -3,6 +3,8 @@ var DIR = '../', Util = require(DIR + 'util'), + tryRequire = require('./tryRequire'), + io = tryRequire('socket.io'), Socket, @@ -67,13 +69,4 @@ return Socket; } - function tryRequire(name) { - var module; - - Util.exec.try(function() { - module = require(name); - }); - - return module; - } })(); diff --git a/lib/server/terminal.js b/lib/server/terminal.js index 95913854..2e52b1dd 100644 --- a/lib/server/terminal.js +++ b/lib/server/terminal.js @@ -9,7 +9,12 @@ Util = require(DIR_LIB + 'util'), CloudFunc = require(DIR_LIB + 'cloudfunc'), - pty = tryRequire('pty.js'), + tryRequire = require('./tryRequire.js'), + + pty = tryRequire('pty.js', function(error) { + if (error) + Util.log(error.message); + }), Clients = [], CHANNEL = CloudFunc.CHANNEL_TERMINAL, @@ -17,18 +22,6 @@ ConNum = 0; - function tryRequire(name) { - var module, - error = Util.exec.try(function() { - module = require(name); - }); - - if (error) - Util.log(error.message); - - return module; - } - module.exports = function(io) { var makePty = function(clientSocket) { onConnection(clientSocket, function(channel, data) { diff --git a/lib/server/tryRequire.js b/lib/server/tryRequire.js new file mode 100644 index 00000000..ab57c3b5 --- /dev/null +++ b/lib/server/tryRequire.js @@ -0,0 +1,19 @@ +(function() { + 'use strict'; + + var Util = require('../util'); + + module.exports = function(name, callback) { + var module, + isFunc = typeof callback === 'function', + + error = Util.exec.try(function() { + module = require(name); + }); + + if (error && isFunc) + callback(error); + + return module; + }; +})();