UNPKG

react-router-ga

Version:

[![Downloads](https://img.shields.io/npm/dm/react-router-ga)](https://npm.im/react-router-ga) [![Version](https://img.shields.io/npm/v/react-router-ga)](https://npm.im/react-router-ga) [![License](https://img.shields.io/npm/l/react-router-ga)](https://ope

40 lines (32 loc) 990 B
'use strict'; const pRetry = require('p-retry'); const portfinder = require('portfinder'); const defaultPort = require('./defaultPort'); const defaultTo = require('./defaultTo'); const tryParseInt = require('./tryParseInt'); function runPortFinder() { return new Promise((resolve, reject) => { portfinder.basePort = defaultPort; portfinder.getPort((error, port) => { if (error) { return reject(error); } return resolve(port); }); }); } function findPort(port) { if (port) { return Promise.resolve(port); } // Try to find unused port and listen on it for 3 times, // if port is not specified in options. // Because NaN == null is false, defaultTo fails if parseInt returns NaN // so the tryParseInt function is introduced to handle NaN const defaultPortRetry = defaultTo( tryParseInt(process.env.DEFAULT_PORT_RETRY), 3 ); return pRetry(runPortFinder, { retries: defaultPortRetry }); } module.exports = findPort;