wmod-proxy
Version:
Website Modification Proxy
146 lines (117 loc) • 5.59 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _helpers = require("yargs/helpers");
var _yargs = _interopRequireDefault(require("yargs"));
var _proxy = _interopRequireWildcard(require("./proxy"));
var _service = require("./service");
var _logger = require("./logger");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var parse = (0, _yargs["default"])((0, _helpers.hideBin)(process.argv)).demandCommand().command('$0 <port> <wmod>', 'Run proxy on port PORT and inject WMOD', function (argv) {
return argv.positional('port', {
describe: 'Proxy port number',
type: 'number',
demandOption: true
}).positional('wmod', {
describe: 'Path a directory with a wmod',
type: 'string',
demandOption: true
}).options({
debug: {
alias: 'd',
type: 'boolean'
}
});
});
(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
var argv, logger, server;
return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return parse.argv;
case 2:
argv = _context3.sent;
(0, _logger.initLogger)(argv.debug === true ? 'dbg' : 'info');
logger = (0, _logger.getLogger)();
_context3.prev = 5;
_context3.next = 8;
return (0, _proxy["default"])(argv.port, argv.wmod);
case 8:
server = _context3.sent;
_context3.next = 19;
break;
case 11:
_context3.prev = 11;
_context3.t0 = _context3["catch"](5);
if (!(_context3.t0 instanceof _service.ManifestError || _context3.t0 instanceof _proxy.ProxyError)) {
_context3.next = 18;
break;
}
logger.err(_context3.t0.toString());
process.exit(1);
_context3.next = 19;
break;
case 18:
throw _context3.t0;
case 19:
// nodemon sends SIGUSR2 to restart processes
process.on('SIGUSR2', /*#__PURE__*/function () {
var _exit = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
logger.info('Caught SIGUSR2, stopping server...');
_context.next = 3;
return server.stop();
case 3:
logger.info('Server has stopped, exiting');
process.exit(0);
case 5:
case "end":
return _context.stop();
}
}
}, _callee);
}));
function exit() {
return _exit.apply(this, arguments);
}
return exit;
}()); // Exit gracefully when we click Ctrl-C
process.on('SIGINT', /*#__PURE__*/function () {
var _exit2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
logger.info('Caught SIGINT, stopping server...');
_context2.next = 3;
return server.stop();
case 3:
process.exit(0);
case 4:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
function exit() {
return _exit2.apply(this, arguments);
}
return exit;
}());
case 21:
case "end":
return _context3.stop();
}
}
}, _callee3, null, [[5, 11]]);
}))();
//# sourceMappingURL=cli.js.map