MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/.trash/node_modules/webpack-dev-server/lib/utils/processOptions.js
'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;