Skip to content

Instantly share code, notes, and snippets.

@nestarz
Created May 23, 2020 11:01
Show Gist options
  • Save nestarz/8eda109bf970baee3d2f5b3ccb5850d0 to your computer and use it in GitHub Desktop.
Save nestarz/8eda109bf970baee3d2f5b3ccb5850d0 to your computer and use it in GitHub Desktop.
Check Port Availability
import net from "net";
export default (port) =>
new Promise((resolve) => {
const remove = (client) => {
client.removeAllListeners("connect");
client.removeAllListeners("error");
client.end();
client.destroy();
client.unref();
};
const client = new net.Socket();
client.once("connect", () => {
resolve(false);
remove(client);
});
client.once("error", (err) => {
if (err.code === "ECONNREFUSED") resolve(false);
else resolve(true);
remove(client);
});
client.connect(port, () => {});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment