|
|
- 'use strict';
-
- const createConfig = require('./createConfig');
- const defaultPort = require('./defaultPort');
- const findPort = require('./findPort');
-
- function processOptions(config, argv, callback) {
- // processOptions {Promise}
- if (typeof config.then === 'function') {
- config
- .then((conf) => processOptions(conf, argv, callback))
- .catch((err) => {
- // eslint-disable-next-line no-console
- console.error(err.stack || err);
- // eslint-disable-next-line no-process-exit
- process.exit(1);
- });
-
- return;
- }
-
- // Taken out of yargs because we must know if
- // it wasn't given by the user, in which case
- // we should use portfinder.
- const options = createConfig(config, argv, { port: defaultPort });
-
- if (options.socket) {
- callback(config, options);
- } else {
- findPort(options.port)
- .then((port) => {
- options.port = port;
- callback(config, options);
- })
- .catch((err) => {
- // eslint-disable-next-line no-console
- console.error(err.stack || err);
- // eslint-disable-next-line no-process-exit
- process.exit(1);
- });
- }
- }
-
- module.exports = processOptions;
|