@cliz/inlets
Version:
Cloud Native Tunnel
54 lines (53 loc) • 2.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const cli_1 = require("@cliz/cli");
const forward_1 = require("../core/forward");
exports.default = (0, cli_1.defineSubCommand)(createCommand => {
return createCommand('inlets forward')
.option('-l, --local <local>', 'Specify local host:port')
.option('-r, --remote <remote>', 'Specify remote host:port')
.option('-c, --config <config>', 'Specify config file, default: $HOME/.config/inlets.yml', {
default: cli_1.api.path.configfile('inlets.yml'),
})
.action(async ({ options }) => {
var _a;
const { local, remote, config: configFile } = options;
if (local || remote) {
const [_localHost, _localPort] = local.split(':');
const [_remoteHost, _remotePort] = remote.split(':');
const servers = [
{
localHost: _localHost,
localPort: +_localPort,
remoteHost: _remoteHost,
remotePort: +_remotePort,
},
];
return (0, forward_1.forward)({
servers,
});
}
if (!await cli_1.api.fs.isExist(configFile)) {
console.error(`inlets config not found: ${configFile}`);
return;
}
const config = await cli_1.api.fs.yml.load(configFile);
const _servers = (_a = config === null || config === void 0 ? void 0 : config.forward) === null || _a === void 0 ? void 0 : _a.servers;
if (!_servers || !_servers.length) {
console.error(`inlets forward servers not found in ${configFile}`);
return;
}
const servers = _servers.map(_server => {
const [_localHost, _localPort, _remoteHost, _remotePort] = _server.split(':');
return {
localHost: _localHost,
localPort: +_localPort,
remoteHost: _remoteHost,
remotePort: +_remotePort,
};
});
return (0, forward_1.forward)({
servers,
});
});
});