UNPKG

@extra/proxy-router

Version:
28 lines 1.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const net_1 = __importDefault(require("net")); const isAvailable = (options) => new Promise((resolve, reject) => { const server = net_1.default.createServer(); server.unref(); server.on('error', reject); server.listen(options, () => { const { port } = server.address(); server.close(() => { resolve(port); }); }); }); const getPort = (options) => { options = Object.assign({}, options); if (typeof options.port === 'number') { options.port = [options.port]; } return (options.port || []).reduce((seq, port) => seq.catch(() => isAvailable(Object.assign({}, options, { port }))), Promise.reject()); }; exports.default = (options) => options ? getPort(options).catch(() => getPort(Object.assign(options, { port: 0 }))) : getPort({ port: 0 }); //# sourceMappingURL=port.js.map