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); }) } |