You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							44 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							44 lines
						
					
					
						
							1.2 KiB
						
					
					
				'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;
 | 
						|
 |