UNPKG

hapi-bouncer

Version:
96 lines (71 loc) 2.81 kB
'use strict'; exports.__esModule = true; exports.default = bouncerServer; var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _nodeConfigLoader = require('node-config-loader'); var _createServer = require('./createServer'); var _createServer2 = _interopRequireDefault(_createServer); var _normalizeConnections = require('./utils/normalizeConnections'); var _normalizeConnections2 = _interopRequireDefault(_normalizeConnections); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var debug = (0, _debug2.default)('hapi-bouncer:debug'); function normalizeMask(configsGlob) { var result = void 0; var isDir = false; try { isDir = _fs2.default.lstatSync(configsGlob).isDirectory(); } catch (e) {} if (isDir) { result = configsGlob + '/**/*.{json,yml,yaml,toml}'; } return result; } var ConfigRoots = function () { function ConfigRoots() { var roots = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; _classCallCheck(this, ConfigRoots); this.roots = roots; } ConfigRoots.prototype.add = function add(dir) { var mask = normalizeMask(dir); if (mask) { this.roots.push(mask); } }; return ConfigRoots; }(); function bouncerServer(args) { var configRoots = new ConfigRoots(); var config = args.config || []; process.env.HOME && configRoots.add(_path2.default.join(process.env.HOME, '.config', 'hapi-bouncer')); config.forEach(function (conf) { return configRoots.add(conf); }); debug('config dirs: %o', configRoots.roots); return (0, _nodeConfigLoader.loadConfig)({ mask: configRoots.roots, env: process.env.NODE_ENV || 'development', instance: 'server' }).then(function (conf) { // debug('raw config: %s', JSON.stringify(conf, null, ' ')) var config = (0, _normalizeConnections2.default)(args.certs, conf); // debug('normalized config: %s', JSON.stringify(config, null, ' ')) var server = (0, _createServer2.default)(config); server.start(function (err) { if (err) { throw err; } server.connections.forEach(function (connection) { console.log('Server is listening ' + connection.info.uri.toLowerCase()); }); }); return server; }); } //# sourceMappingURL=bouncerServer.js.map