aboutsummaryrefslogtreecommitdiff
path: root/node_modules/supports-color/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/supports-color/index.js')
-rw-r--r--node_modules/supports-color/index.js65
1 files changed, 49 insertions, 16 deletions
diff --git a/node_modules/supports-color/index.js b/node_modules/supports-color/index.js
index a2b978450..113040d63 100644
--- a/node_modules/supports-color/index.js
+++ b/node_modules/supports-color/index.js
@@ -1,39 +1,72 @@
'use strict';
-var argv = process.argv;
+var hasFlag = require('has-flag');
-module.exports = (function () {
- if (argv.indexOf('--no-color') !== -1 ||
- argv.indexOf('--no-colors') !== -1 ||
- argv.indexOf('--color=false') !== -1) {
+var support = function (level) {
+ if (level === 0) {
return false;
}
- if (argv.indexOf('--color') !== -1 ||
- argv.indexOf('--colors') !== -1 ||
- argv.indexOf('--color=true') !== -1 ||
- argv.indexOf('--color=always') !== -1) {
- return true;
+ return {
+ level: level,
+ hasBasic: true,
+ has256: level >= 2,
+ has16m: level >= 3
+ };
+};
+
+var supportLevel = (function () {
+ if (hasFlag('no-color') ||
+ hasFlag('no-colors') ||
+ hasFlag('color=false')) {
+ return 0;
+ }
+
+ if (hasFlag('color=16m') ||
+ hasFlag('color=full') ||
+ hasFlag('color=truecolor')) {
+ return 3;
+ }
+
+ if (hasFlag('color=256')) {
+ return 2;
+ }
+
+ if (hasFlag('color') ||
+ hasFlag('colors') ||
+ hasFlag('color=true') ||
+ hasFlag('color=always')) {
+ return 1;
}
if (process.stdout && !process.stdout.isTTY) {
- return false;
+ return 0;
}
if (process.platform === 'win32') {
- return true;
+ return 1;
}
if ('COLORTERM' in process.env) {
- return true;
+ return 1;
}
if (process.env.TERM === 'dumb') {
- return false;
+ return 0;
+ }
+
+ if (/^xterm-256(?:color)?/.test(process.env.TERM)) {
+ return 2;
}
if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {
- return true;
+ return 1;
}
- return false;
+ return 0;
})();
+
+if (supportLevel === 0 && 'FORCE_COLOR' in process.env) {
+ supportLevel = 1;
+}
+
+module.exports = process && support(supportLevel);