UNPKG

@catladder/cli

Version:

Panter cli tool for cloud CI/CD and DevOps

48 lines 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stopAllPortForwards = exports.startPortForwardCommand = exports.getAllRunningPortForwards = exports.stopPortForward = void 0; const child_process_promise_1 = require("child-process-promise"); const portForwards = new Map(); const stopPortForward = async (name) => { const old = portForwards.get(name); if (old) { try { old.childProcess.kill(); await old; } catch (e) { // } portForwards.delete(name); } }; exports.stopPortForward = stopPortForward; const getAllRunningPortForwards = () => { return Array.from(portForwards.keys()); }; exports.getAllRunningPortForwards = getAllRunningPortForwards; const addPortForward = (name, portForward) => { portForwards.set(name, portForward); }; const startPortForwardCommand = async (name, command) => { // stop if already there await (0, exports.stopPortForward)(name); const [cmd, ...args] = command.split(" "); const promise = (0, child_process_promise_1.spawn)(cmd, args, { env: { ...process.env, DEBUG: "", }, }); addPortForward(name, promise); // wait a moment so that is surley started, unfortunatly we don't know that await new Promise((r) => setTimeout(r, 1000)); }; exports.startPortForwardCommand = startPortForwardCommand; const stopAllPortForwards = async () => { (0, exports.getAllRunningPortForwards)().forEach((name) => { (0, exports.stopPortForward)(name); }); }; exports.stopAllPortForwards = stopAllPortForwards; //# sourceMappingURL=portForwards.js.map