Get stdout window width, with four fallbacks, tty
, output.columns
, a custom environment variable and then a default.
Tested against Node v12 to v20. Includes TypeScript types.
npm install --save cli-width
const cliWidth = require('cli-width');
cliWidth(); // maybe 204 :)
You can also set the CLI_WIDTH
environment variable.
If none of the methods are supported, and the environment variable isn't set,
the default width value is going to be 0
, that can be changed using the configurable options
.
cliWidth
can be configured using an options
parameter, the possible properties are:
- defaultWidth<number> Defines a default value to be used if none of the methods are available, defaults to
0
- output<object> A stream to be used to read width values from, defaults to
process.stdout
- tty<object> TTY module to try to read width from as a fallback, defaults to
require('tty')
Defining both a default width value and a stream output to try to read from:
const cliWidth = require('cli-width');
const ttys = require('ttys');
cliWidth({
defaultWidth: 80,
output: ttys.output,
});
Defines a different tty module to read width from:
const cliWidth = require('cli-width');
const ttys = require('ttys');
cliWidth({
tty: ttys,
});
npm install
npm test
Coverage can be generated with npm run coverage
.