UNPKG

metallic-launcher

Version:
96 lines (58 loc) 9.98 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _metallicInterfaces = require('metallic-interfaces'); var _cluster = require('./cluster'); var _cluster2 = _interopRequireDefault(_cluster); var _metallicListeners = require('metallic-listeners'); var _listenerLoggerMixin = require('./listener-logger-mixin'); var _listenerLoggerMixin2 = _interopRequireDefault(_listenerLoggerMixin); var _sigintListener = require('./sigint-listener'); var _sigintListener2 = _interopRequireDefault(_sigintListener); var _sigtermListener = require('./sigterm-listener'); var _sigtermListener2 = _interopRequireDefault(_sigtermListener); var _uncaughtExceptionListener = require('./uncaught-exception-listener'); var _uncaughtExceptionListener2 = _interopRequireDefault(_uncaughtExceptionListener); var _unhandledRejectionListener = require('./unhandled-rejection-listener'); var _unhandledRejectionListener2 = _interopRequireDefault(_unhandledRejectionListener); var _launcherExitOnErrorMixin = require('./launcher-exit-on-error-mixin'); var _launcherExitOnErrorMixin2 = _interopRequireDefault(_launcherExitOnErrorMixin); var _launcherUncaughtExceptionListenerMixin = require('./launcher-uncaught-exception-listener-mixin'); var _launcherUncaughtExceptionListenerMixin2 = _interopRequireDefault(_launcherUncaughtExceptionListenerMixin); var _launcherExitSignalListenerMixin = require('./launcher-exit-signal-listener-mixin'); var _launcherExitSignalListenerMixin2 = _interopRequireDefault(_launcherExitSignalListenerMixin); var _launcherUnhandledRejectionListenerMixin = require('./launcher-unhandled-rejection-listener-mixin'); var _launcherUnhandledRejectionListenerMixin2 = _interopRequireDefault(_launcherUnhandledRejectionListenerMixin); var _launcherLoggerMixin = require('./launcher-logger-mixin'); var _launcherLoggerMixin2 = _interopRequireDefault(_launcherLoggerMixin); var _launcherMetricsMixin = require('./launcher-metrics-mixin'); var _launcherMetricsMixin2 = _interopRequireDefault(_launcherMetricsMixin); var _launcher = require('./launcher'); var _launcher2 = _interopRequireDefault(_launcher); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class LauncherFactory extends _metallicInterfaces.FactoryInterface { static create({ httpServer, metrics, logger, options } = {}) { const target = _cluster2.default.create({ httpServer, metrics, logger, options }); const Sigint = logger ? _listenerLoggerMixin2.default.mix(_sigintListener2.default) : _sigintListener2.default; const Sigterm = logger ? _listenerLoggerMixin2.default.mix(_sigtermListener2.default) : _sigtermListener2.default; const exitSignalListeners = new _metallicListeners.Listeners().add(new Sigint({ logger, emitter: process })).add(new Sigterm({ logger, emitter: process })); const UncaughtException = logger ? _listenerLoggerMixin2.default.mix(_uncaughtExceptionListener2.default) : _uncaughtExceptionListener2.default; const uncaughtExceptionListeners = new _metallicListeners.Listeners().add(new UncaughtException({ logger, emitter: process })); const UnhandledRejection = logger ? _listenerLoggerMixin2.default.mix(_unhandledRejectionListener2.default) : _unhandledRejectionListener2.default; const unhandledRejectionListeners = new _metallicListeners.Listeners().add(new UnhandledRejection({ logger, emitter: process })); let FeaturedLauncher = logger ? _launcherLoggerMixin2.default.mix(_launcher2.default) : _launcher2.default; FeaturedLauncher = metrics ? _launcherMetricsMixin2.default.mix(_launcher2.default) : FeaturedLauncher; FeaturedLauncher = _launcherExitOnErrorMixin2.default.mix(_launcherExitSignalListenerMixin2.default.mix(_launcherUncaughtExceptionListenerMixin2.default.mix(_launcherUnhandledRejectionListenerMixin2.default.mix(FeaturedLauncher)))); return new FeaturedLauncher({ logger, metrics, uncaughtExceptionListeners, exitSignalListeners, unhandledRejectionListeners, target }); } } exports.default = LauncherFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXVuY2hlci1mYWN0b3J5LmpzIl0sIm5hbWVzIjpbIkxhdW5jaGVyRmFjdG9yeSIsImNyZWF0ZSIsImh0dHBTZXJ2ZXIiLCJtZXRyaWNzIiwibG9nZ2VyIiwib3B0aW9ucyIsInRhcmdldCIsIlNpZ2ludCIsIm1peCIsIlNpZ3Rlcm0iLCJleGl0U2lnbmFsTGlzdGVuZXJzIiwiYWRkIiwiZW1pdHRlciIsInByb2Nlc3MiLCJVbmNhdWdodEV4Y2VwdGlvbiIsInVuY2F1Z2h0RXhjZXB0aW9uTGlzdGVuZXJzIiwiVW5oYW5kbGVkUmVqZWN0aW9uIiwidW5oYW5kbGVkUmVqZWN0aW9uTGlzdGVuZXJzIiwiRmVhdHVyZWRMYXVuY2hlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVlLE1BQU1BLGVBQU4sOENBQStDO0FBQzVELFNBQU9DLE1BQVAsQ0FBZSxFQUFFQyxVQUFGLEVBQWNDLE9BQWQsRUFBdUJDLE1BQXZCLEVBQStCQyxPQUEvQixLQUEyQyxFQUExRCxFQUE4RDtBQUM1RCxVQUFNQyxTQUFTLGtCQUFlTCxNQUFmLENBQXNCLEVBQUVDLFVBQUYsRUFBY0MsT0FBZCxFQUF1QkMsTUFBdkIsRUFBK0JDLE9BQS9CLEVBQXRCLENBQWY7O0FBRUEsVUFBTUUsU0FBU0gsU0FBUyw4QkFBb0JJLEdBQXBCLDBCQUFULDJCQUFmO0FBQ0EsVUFBTUMsVUFBVUwsU0FBUyw4QkFBb0JJLEdBQXBCLDJCQUFULDRCQUFoQjs7QUFFQSxVQUFNRSxzQkFBc0IsbUNBQ3pCQyxHQUR5QixDQUNyQixJQUFJSixNQUFKLENBQVcsRUFBRUgsTUFBRixFQUFVUSxTQUFTQyxPQUFuQixFQUFYLENBRHFCLEVBRXpCRixHQUZ5QixDQUVyQixJQUFJRixPQUFKLENBQVksRUFBRUwsTUFBRixFQUFVUSxTQUFTQyxPQUFuQixFQUFaLENBRnFCLENBQTVCOztBQUlBLFVBQU1DLG9CQUFvQlYsU0FBUyw4QkFBb0JJLEdBQXBCLHFDQUFULHNDQUExQjtBQUNBLFVBQU1PLDZCQUE2QixtQ0FDaENKLEdBRGdDLENBQzVCLElBQUlHLGlCQUFKLENBQXNCLEVBQUVWLE1BQUYsRUFBVVEsU0FBU0MsT0FBbkIsRUFBdEIsQ0FENEIsQ0FBbkM7O0FBR0EsVUFBTUcscUJBQXFCWixTQUFTLDhCQUFvQkksR0FBcEIsc0NBQVQsdUNBQTNCO0FBQ0EsVUFBTVMsOEJBQThCLG1DQUNqQ04sR0FEaUMsQ0FDN0IsSUFBSUssa0JBQUosQ0FBdUIsRUFBRVosTUFBRixFQUFVUSxTQUFTQyxPQUFuQixFQUF2QixDQUQ2QixDQUFwQzs7QUFHQSxRQUFJSyxtQkFBbUJkLFNBQVMsOEJBQW9CSSxHQUFwQixvQkFBVCxxQkFBdkI7QUFDQVUsdUJBQW1CZixVQUFVLCtCQUFxQkssR0FBckIsb0JBQVYsR0FBK0NVLGdCQUFsRTs7QUFFQUEsdUJBQW1CLG1DQUF5QlYsR0FBekIsQ0FDakIsMENBQWdDQSxHQUFoQyxDQUNFLGlEQUF1Q0EsR0FBdkMsQ0FDRSxrREFBd0NBLEdBQXhDLENBQ0VVLGdCQURGLENBREYsQ0FERixDQURpQixDQUFuQjs7QUFVQSxXQUFPLElBQUlBLGdCQUFKLENBQXFCO0FBQzFCZCxZQUQwQjtBQUUxQkQsYUFGMEI7QUFHMUJZLGdDQUgwQjtBQUkxQkwseUJBSjBCO0FBSzFCTyxpQ0FMMEI7QUFNMUJYO0FBTjBCLEtBQXJCLENBQVA7QUFRRDtBQXhDMkQ7a0JBQXpDTixlIiwiZmlsZSI6ImxhdW5jaGVyLWZhY3RvcnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYWN0b3J5SW50ZXJmYWNlIH0gZnJvbSAnbWV0YWxsaWMtaW50ZXJmYWNlcydcbmltcG9ydCB7IGRlZmF1bHQgYXMgQ2x1c3RlckZhY3RvcnkgfSBmcm9tICcuL2NsdXN0ZXInXG5pbXBvcnQgeyBMaXN0ZW5lcnMgfSBmcm9tICdtZXRhbGxpYy1saXN0ZW5lcnMnXG5pbXBvcnQgTGlzdGVuZXJMb2dnZXJNaXhpbiBmcm9tICcuL2xpc3RlbmVyLWxvZ2dlci1taXhpbidcbmltcG9ydCBTaWdpbnRMaXN0ZW5lciBmcm9tICcuL3NpZ2ludC1saXN0ZW5lcidcbmltcG9ydCBTaWd0ZXJtTGlzdGVuZXIgZnJvbSAnLi9zaWd0ZXJtLWxpc3RlbmVyJ1xuaW1wb3J0IFVuY2F1Z2h0RXhjZXB0aW9uTGlzdGVuZXIgZnJvbSAnLi91bmNhdWdodC1leGNlcHRpb24tbGlzdGVuZXInXG5pbXBvcnQgVW5oYW5kbGVkUmVqZWN0aW9uTGlzdGVuZXIgZnJvbSAnLi91bmhhbmRsZWQtcmVqZWN0aW9uLWxpc3RlbmVyJ1xuaW1wb3J0IExhdW5jaGVyRXhpdE9uRXJyb3JNaXhpbiBmcm9tICcuL2xhdW5jaGVyLWV4aXQtb24tZXJyb3ItbWl4aW4nXG5pbXBvcnQgTGF1bmNoZXJVbmNhdWdodEV4Y2VwdGlvbkxpc3RlbmVyTWl4aW4gZnJvbSAnLi9sYXVuY2hlci11bmNhdWdodC1leGNlcHRpb24tbGlzdGVuZXItbWl4aW4nXG5pbXBvcnQgTGF1bmNoZXJFeGl0U2lnbmFsTGlzdGVuZXJNaXhpbiBmcm9tICcuL2xhdW5jaGVyLWV4aXQtc2lnbmFsLWxpc3RlbmVyLW1peGluJ1xuaW1wb3J0IExhdW5jaGVyVW5oYW5kbGVkUmVqZWN0aW9uTGlzdGVuZXJNaXhpbiBmcm9tICcuL2xhdW5jaGVyLXVuaGFuZGxlZC1yZWplY3Rpb24tbGlzdGVuZXItbWl4aW4nXG5pbXBvcnQgTGF1bmNoZXJMb2dnZXJNaXhpbiBmcm9tICcuL2xhdW5jaGVyLWxvZ2dlci1taXhpbidcbmltcG9ydCBMYXVuY2hlck1ldHJpY3NNaXhpbiBmcm9tICcuL2xhdW5jaGVyLW1ldHJpY3MtbWl4aW4nXG5pbXBvcnQgTGF1bmNoZXIgZnJvbSAnLi9sYXVuY2hlcidcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGF1bmNoZXJGYWN0b3J5IGV4dGVuZHMgRmFjdG9yeUludGVyZmFjZSB7XG4gIHN0YXRpYyBjcmVhdGUgKHsgaHR0cFNlcnZlciwgbWV0cmljcywgbG9nZ2VyLCBvcHRpb25zIH0gPSB7fSkge1xuICAgIGNvbnN0IHRhcmdldCA9IENsdXN0ZXJGYWN0b3J5LmNyZWF0ZSh7IGh0dHBTZXJ2ZXIsIG1ldHJpY3MsIGxvZ2dlciwgb3B0aW9ucyB9KVxuXG4gICAgY29uc3QgU2lnaW50ID0gbG9nZ2VyID8gTGlzdGVuZXJMb2dnZXJNaXhpbi5taXgoU2lnaW50TGlzdGVuZXIpIDogU2lnaW50TGlzdGVuZXJcbiAgICBjb25zdCBTaWd0ZXJtID0gbG9nZ2VyID8gTGlzdGVuZXJMb2dnZXJNaXhpbi5taXgoU2lndGVybUxpc3RlbmVyKSA6IFNpZ3Rlcm1MaXN0ZW5lclxuXG4gICAgY29uc3QgZXhpdFNpZ25hbExpc3RlbmVycyA9IG5ldyBMaXN0ZW5lcnMoKVxuICAgICAgLmFkZChuZXcgU2lnaW50KHsgbG9nZ2VyLCBlbWl0dGVyOiBwcm9jZXNzIH0pKVxuICAgICAgLmFkZChuZXcgU2lndGVybSh7IGxvZ2dlciwgZW1pdHRlcjogcHJvY2VzcyB9KSlcblxuICAgIGNvbnN0IFVuY2F1Z2h0RXhjZXB0aW9uID0gbG9nZ2VyID8gTGlzdGVuZXJMb2dnZXJNaXhpbi5taXgoVW5jYXVnaHRFeGNlcHRpb25MaXN0ZW5lcikgOiBVbmNhdWdodEV4Y2VwdGlvbkxpc3RlbmVyXG4gICAgY29uc3QgdW5jYXVnaHRFeGNlcHRpb25MaXN0ZW5lcnMgPSBuZXcgTGlzdGVuZXJzKClcbiAgICAgIC5hZGQobmV3IFVuY2F1Z2h0RXhjZXB0aW9uKHsgbG9nZ2VyLCBlbWl0dGVyOiBwcm9jZXNzIH0pKVxuXG4gICAgY29uc3QgVW5oYW5kbGVkUmVqZWN0aW9uID0gbG9nZ2VyID8gTGlzdGVuZXJMb2dnZXJNaXhpbi5taXgoVW5oYW5kbGVkUmVqZWN0aW9uTGlzdGVuZXIpIDogVW5oYW5kbGVkUmVqZWN0aW9uTGlzdGVuZXJcbiAgICBjb25zdCB1bmhhbmRsZWRSZWplY3Rpb25MaXN0ZW5lcnMgPSBuZXcgTGlzdGVuZXJzKClcbiAgICAgIC5hZGQobmV3IFVuaGFuZGxlZFJlamVjdGlvbih7IGxvZ2dlciwgZW1pdHRlcjogcHJvY2VzcyB9KSlcblxuICAgIGxldCBGZWF0dXJlZExhdW5jaGVyID0gbG9nZ2VyID8gTGF1bmNoZXJMb2dnZXJNaXhpbi5taXgoTGF1bmNoZXIpIDogTGF1bmNoZXJcbiAgICBGZWF0dXJlZExhdW5jaGVyID0gbWV0cmljcyA/IExhdW5jaGVyTWV0cmljc01peGluLm1peChMYXVuY2hlcikgOiBGZWF0dXJlZExhdW5jaGVyXG5cbiAgICBGZWF0dXJlZExhdW5jaGVyID0gTGF1bmNoZXJFeGl0T25FcnJvck1peGluLm1peChcbiAgICAgIExhdW5jaGVyRXhpdFNpZ25hbExpc3RlbmVyTWl4aW4ubWl4KFxuICAgICAgICBMYXVuY2hlclVuY2F1Z2h0RXhjZXB0aW9uTGlzdGVuZXJNaXhpbi5taXgoXG4gICAgICAgICAgTGF1bmNoZXJVbmhhbmRsZWRSZWplY3Rpb25MaXN0ZW5lck1peGluLm1peChcbiAgICAgICAgICAgIEZlYXR1cmVkTGF1bmNoZXJcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG5cbiAgICByZXR1cm4gbmV3IEZlYXR1cmVkTGF1bmNoZXIoe1xuICAgICAgbG9nZ2VyLFxuICAgICAgbWV0cmljcyxcbiAgICAgIHVuY2F1Z2h0RXhjZXB0aW9uTGlzdGVuZXJzLFxuICAgICAgZXhpdFNpZ25hbExpc3RlbmVycyxcbiAgICAgIHVuaGFuZGxlZFJlamVjdGlvbkxpc3RlbmVycyxcbiAgICAgIHRhcmdldFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==