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.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							907 B
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							907 B
						
					
					
				"use strict"; | 
						|
 | 
						|
exports = module.exports = cliWidth; | 
						|
 | 
						|
function normalizeOpts(options) { | 
						|
  let defaultOpts = { | 
						|
    defaultWidth: 0, | 
						|
    output: process.stdout, | 
						|
    tty: require("tty"), | 
						|
  }; | 
						|
 | 
						|
  if (!options) { | 
						|
    return defaultOpts; | 
						|
  } | 
						|
 | 
						|
  Object.keys(defaultOpts).forEach(function (key) { | 
						|
    if (!options[key]) { | 
						|
      options[key] = defaultOpts[key]; | 
						|
    } | 
						|
  }); | 
						|
 | 
						|
  return options; | 
						|
} | 
						|
 | 
						|
function cliWidth(options) { | 
						|
  let opts = normalizeOpts(options); | 
						|
 | 
						|
  if (opts.output.getWindowSize) { | 
						|
    return opts.output.getWindowSize()[0] || opts.defaultWidth; | 
						|
  } | 
						|
 | 
						|
  if (opts.tty.getWindowSize) { | 
						|
    return opts.tty.getWindowSize()[1] || opts.defaultWidth; | 
						|
  } | 
						|
 | 
						|
  if (opts.output.columns) { | 
						|
    return opts.output.columns; | 
						|
  } | 
						|
 | 
						|
  if (process.env.CLI_WIDTH) { | 
						|
    let width = parseInt(process.env.CLI_WIDTH, 10); | 
						|
 | 
						|
    if (!isNaN(width) && width !== 0) { | 
						|
      return width; | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  return opts.defaultWidth; | 
						|
}
 | 
						|
 |