|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- # color-support
-
- A module which will endeavor to guess your terminal's level of color
- support.
-
- [![Build Status](https://travis-ci.org/isaacs/color-support.svg?branch=master)](https://travis-ci.org/isaacs/color-support) [![Coverage Status](https://coveralls.io/repos/github/isaacs/color-support/badge.svg?branch=master)](https://coveralls.io/github/isaacs/color-support?branch=master)
-
- This is similar to `supports-color`, but it does not read
- `process.argv`.
-
- 1. If not in a node environment, not supported.
-
- 2. If stdout is not a TTY, not supported, unless the `ignoreTTY`
- option is set.
-
- 3. If the `TERM` environ is `dumb`, not supported, unless the
- `ignoreDumb` option is set.
-
- 4. If on Windows, then support 16 colors.
-
- 5. If using Tmux, then support 256 colors.
-
- 7. Handle continuous-integration servers. If `CI` or
- `TEAMCITY_VERSION` are set in the environment, and `TRAVIS` is not
- set, then color is not supported, unless `ignoreCI` option is set.
-
- 6. Guess based on the `TERM_PROGRAM` environ. These terminals support
- 16m colors:
-
- - `iTerm.app` version 3.x supports 16m colors, below support 256
- - `MacTerm` supports 16m colors
- - `Apple_Terminal` supports 256 colors
- - Have more things that belong on this list? Send a PR!
-
- 8. Make a guess based on the `TERM` environment variable. Any
- `xterm-256color` will get 256 colors. Any screen, xterm, vt100,
- color, ansi, cygwin, or linux `TERM` will get 16 colors.
-
- 9. If `COLORTERM` environment variable is set, then support 16 colors.
-
- 10. At this point, we assume that color is not supported.
-
- ## USAGE
-
- ```javascript
- var testColorSupport = require('color-support')
- var colorSupport = testColorSupport(/* options object */)
-
- if (!colorSupport) {
- console.log('color is not supported')
- } else if (colorSupport.has16m) {
- console.log('\x1b[38;2;102;194;255m16m colors\x1b[0m')
- } else if (colorSupport.has256) {
- console.log('\x1b[38;5;119m256 colors\x1b[0m')
- } else if (colorSupport.hasBasic) {
- console.log('\x1b[31mbasic colors\x1b[0m')
- } else {
- console.log('this is impossible, but colors are not supported')
- }
- ```
-
- If you don't have any options to set, you can also just look at the
- flags which will all be set on the test function itself. (Of course,
- this doesn't return a falsey value when colors aren't supported, and
- doesn't allow you to set options.)
-
- ```javascript
- var colorSupport = require('color-support')
-
- if (colorSupport.has16m) {
- console.log('\x1b[38;2;102;194;255m16m colors\x1b[0m')
- } else if (colorSupport.has256) {
- console.log('\x1b[38;5;119m256 colors\x1b[0m')
- } else if (colorSupport.hasBasic) {
- console.log('\x1b[31mbasic colors\x1b[0m')
- } else {
- console.log('colors are not supported')
- }
- ```
-
- ## Options
-
- You can pass in the following options.
-
- * ignoreTTY - default false. Ignore the `isTTY` check.
- * ignoreDumb - default false. Ignore `TERM=dumb` environ check.
- * ignoreCI - default false. Ignore `CI` environ check.
- * env - Object for environment vars. Defaults to `process.env`.
- * stream - Stream for `isTTY` check. Defaults to `process.stdout`.
- * term - String for `TERM` checking. Defaults to `env.TERM`.
- * alwaysReturn - default false. Return an object when colors aren't
- supported (instead of returning `false`).
- * level - A number from 0 to 3. This will return a result for the
- specified level. This is useful if you want to be able to set the
- color support level explicitly as a number in an environment
- variable or config, but then use the object flags in your program.
- Except for `alwaysReturn` to return an object for level 0, all other
- options are ignored, since no checking is done if a level is
- explicitly set.
-
- ## Return Value
-
- If no color support is available, then `false` is returned by default,
- unless the `alwaysReturn` flag is set to `true`. This is so that the
- simple question of "can I use colors or not" can treat any truthy
- return as "yes".
-
- Otherwise, the return object has the following fields:
-
- * `level` - A number from 0 to 3
- * `0` - No color support
- * `1` - Basic (16) color support
- * `2` - 256 color support
- * `3` - 16 million (true) color support
- * `hasBasic` - Boolean
- * `has256` - Boolean
- * `has16m` - Boolean
-
- ## CLI
-
- You can run the `color-support` bin from the command line which will
- just dump the values as this module calculates them in whatever env
- it's run. It takes no command line arguments.
-
- ## Credits
-
- This is a spiritual, if not actual, fork of
- [supports-color](http://npm.im/supports-color) by the ever prolific
- [Sindre Sorhus](http://npm.im/~sindresorhus).
|