‘liusuyi’
2023-08-09 161b9318e345c8a0c9cdc133b33a1c759495f323
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
'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;