All files / src index.ts

52.17% Statements 12/23
75% Branches 6/8
50% Functions 6/12
66.67% Lines 12/18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  1x 3x     3x 3x     1x   3x 3x 3x 3x 3x 3x        
'use strict';
 
import {createServer} from 'net'

export async function getPort(port?: number, host: string = 'localhost'): Promise<number> {
	return new Promise<number>((resolve, reject) => {
		const server = createServer();
		server.unref();
		server.on('error', reject);
 
		server.listen({port, host}, () => {
			const port = server.address().port;
			server.close(() => {
				return resolve(port);
			})
		})
	}).catch(() => {
		return getPort(0, host);
	})
}