diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2018-04-01 11:27:01 +0200 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2018-04-04 15:14:04 +0200 |
commit | 1b715221b9b875fc24d6aae3480c4c55d7f3dd76 (patch) | |
tree | 27fa919b768860e575761b1ec5224214964311c9 /lib/tty.js | |
parent | 3d61e14704bb82ffc1442e6f6c3756f4432b03b4 (diff) | |
download | android-node-v8-1b715221b9b875fc24d6aae3480c4c55d7f3dd76.tar.gz android-node-v8-1b715221b9b875fc24d6aae3480c4c55d7f3dd76.tar.bz2 android-node-v8-1b715221b9b875fc24d6aae3480c4c55d7f3dd76.zip |
tty: add attribution for chalk
This adds attributions for the getColorDepth function as it got
inspired by https://github.com/chalk/supports-color and more sources.
PR-URL: https://github.com/nodejs/node/pull/19730
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Diffstat (limited to 'lib/tty.js')
-rw-r--r-- | lib/tty.js | 74 |
1 files changed, 2 insertions, 72 deletions
diff --git a/lib/tty.js b/lib/tty.js index 51ec1cf898..dfb76bbe53 100644 --- a/lib/tty.js +++ b/lib/tty.js @@ -27,14 +27,7 @@ const { TTY, isTTY } = process.binding('tty_wrap'); const errors = require('internal/errors'); const { ERR_INVALID_FD } = errors.codes; const readline = require('readline'); -const { release } = require('os'); - -const OSRelease = release().split('.'); - -const COLORS_2 = 1; -const COLORS_16 = 4; -const COLORS_256 = 8; -const COLORS_16m = 24; +const { getColorDepth } = require('internal/tty'); function isatty(fd) { return Number.isInteger(fd) && fd >= 0 && isTTY(fd); @@ -108,70 +101,7 @@ inherits(WriteStream, net.Socket); WriteStream.prototype.isTTY = true; -WriteStream.prototype.getColorDepth = function(env = process.env) { - if (env.NODE_DISABLE_COLORS || env.TERM === 'dumb' && !env.COLORTERM) { - return COLORS_2; - } - - if (process.platform === 'win32') { - // Windows 10 build 10586 is the first Windows release that supports 256 - // colors. Windows 10 build 14931 is the first release that supports - // 16m/TrueColor. - if (+OSRelease[0] >= 10) { - const build = +OSRelease[2]; - if (build >= 14931) - return COLORS_16m; - if (build >= 10586) - return COLORS_256; - } - - return COLORS_16; - } - - if (env.TMUX) { - return COLORS_256; - } - - if (env.CI) { - if ('TRAVIS' in env || 'CIRCLECI' in env || 'APPVEYOR' in env || - 'GITLAB_CI' in env || env.CI_NAME === 'codeship') { - return COLORS_256; - } - return COLORS_2; - } - - if ('TEAMCITY_VERSION' in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? - COLORS_16 : COLORS_2; - } - - switch (env.TERM_PROGRAM) { - case 'iTerm.app': - if (!env.TERM_PROGRAM_VERSION || - /^[0-2]\./.test(env.TERM_PROGRAM_VERSION)) { - return COLORS_256; - } - return COLORS_16m; - case 'HyperTerm': - case 'Hyper': - case 'MacTerm': - return COLORS_16m; - case 'Apple_Terminal': - return COLORS_256; - } - - if (env.TERM) { - if (/^xterm-256/.test(env.TERM)) - return COLORS_256; - if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(env.TERM)) - return COLORS_16; - } - - if (env.COLORTERM) - return COLORS_16; - - return COLORS_2; -}; +WriteStream.prototype.getColorDepth = getColorDepth; WriteStream.prototype._refreshSize = function() { const oldCols = this.columns; |