UNPKG

pylon-app

Version:
33 lines (27 loc) 740 B
const ipc = require("node-ipc"); ipc.config.silent = true; function isSocketTaken(name, fn) { return new Promise((resolve, reject) => { ipc.connectTo(name, () => { ipc.of[name].on("error", () => { ipc.disconnect(name); resolve(false); }); ipc.of[name].on("connect", () => { ipc.disconnect(name); resolve(true); }); }); }); } async function findOpenSocket() { let currentSocket = 1; console.log("checking", currentSocket); while (await isSocketTaken("myapp" + currentSocket)) { currentSocket++; console.log("checking", currentSocket); } console.log("found socket", currentSocket); return "myapp" + currentSocket; } module.exports = findOpenSocket;