12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 'use strict';
-
- exports = module.exports = cliWidth;
-
- function normalizeOpts(options) {
- var 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) {
- var 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) {
- var width = parseInt(process.env.CLI_WIDTH, 10);
-
- if (!isNaN(width) && width !== 0) {
- return width;
- }
- }
-
- return opts.defaultWidth;
- };
|