UNPKG

khamba

Version:

A cli tool for sharing files through local network.

24 lines (23 loc) 762 B
import { createServer } from 'net'; export const getFreePort = async () => { return await new Promise((resolve, reject) => { const server = createServer(); let port = 0; server.once('listening', () => { const address = server.address(); if (address == null) { return reject(new Error('Server was not listening')); } if (typeof address === 'string') { return reject(new Error('Server was Unix Socket')); } port = address.port; server.close(); }); server.once('close', () => { resolve(port); }); server.once('error', reject); server.listen(0, '127.0.0.1'); }); };