@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
48 lines • 1.68 kB
JavaScript
;
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