UNPKG

1.02 kBJavaScriptView Raw
1'use strict';
2
3exports = module.exports = cliWidth;
4
5function normalizeOpts(options) {
6 var defaultOpts = {
7 defaultWidth: 0,
8 output: process.stdout,
9 tty: require('tty')
10 };
11 if (!options) {
12 return defaultOpts;
13 } else {
14 Object.keys(defaultOpts).forEach(function (key) {
15 if (!options[key]) {
16 options[key] = defaultOpts[key];
17 }
18 });
19 return options;
20 }
21}
22
23function cliWidth(options) {
24 var opts = normalizeOpts(options);
25 if (opts.output.getWindowSize) {
26 return opts.output.getWindowSize()[0] || opts.defaultWidth;
27 }
28 else {
29 if (opts.tty.getWindowSize) {
30 return opts.tty.getWindowSize()[1] || opts.defaultWidth;
31 }
32 else {
33 if (opts.output.columns) {
34 return opts.output.columns;
35 }
36 else {
37 if (process.env.CLI_WIDTH) {
38 var width = parseInt(process.env.CLI_WIDTH, 10);
39
40 if (!isNaN(width)) {
41 return width;
42 }
43 }
44 }
45
46 return opts.defaultWidth;
47 }
48 }
49};