webappengine
Version:
A web application server that can host multiple web apps running with Node.js.
75 lines (54 loc) • 2.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _commander = require('commander');
var _commander2 = _interopRequireDefault(_commander);
var _package = require('../package.json');
var _package2 = _interopRequireDefault(_package);
var _app = require('./app');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* eslint max-len: 0 */
/* eslint import/first: 0 */
/* eslint import/no-dynamic-require: 0 */
// Defaults to 'production'
process.env.NODE_ENV = process.env.NODE_ENV || 'production';
var increaseVerbosityLevel = function increaseVerbosityLevel(val, total) {
return total + 1;
};
_commander2.default.version(_package2.default.version).usage('[options]').option('-p, --port <port>', 'set listen port (default: 8000)', 8000).option('-H, --host <host>', 'set listen address or hostname (default: 0.0.0.0)', '0.0.0.0').option('-b, --backlog <backlog>', 'set listen backlog (default: 511)', 511).option('-c, --config <filename>', 'set multihost configuration file').option('-v, --verbose', 'increase the verbosity level', increaseVerbosityLevel, 0).parse(process.argv);
var main = function main() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var callback = arguments[1];
if (typeof options === 'function') {
callback = options;
options = {};
}
// Set multihost configuration settings
var routes = [];
if (_commander2.default.config) {
routes = require(_path2.default.resolve(_commander2.default.config));
if (!_lodash2.default.isArray(routes)) {
callback(new Error('Check your multihost configuration file to ensure it contain valid routes.'));
return;
}
}
(0, _app.createServer)(_extends({
port: _commander2.default.port,
host: _commander2.default.host,
backlog: _commander2.default.backlog,
routes: routes,
verbosity: _commander2.default.verbose
}, options) // Override command-line options if specified
).on('ready', function (server) {
callback(null, server);
}).on('error', function (err) {
callback(err);
});
};
exports.default = main;