Skip to content

Commit

Permalink
tty: refactor to use more primordials
Browse files Browse the repository at this point in the history
PR-URL: nodejs#36272
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information
Lxxyx authored and cjihrig committed Dec 8, 2020
1 parent 5533033 commit 787468c
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions lib/internal/tty.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@

'use strict';

const {
RegExpPrototypeTest,
StringPrototypeSplit,
StringPrototypeToLowerCase,
} = primordials;

const {
ERR_INVALID_ARG_TYPE,
ERR_OUT_OF_RANGE
Expand Down Expand Up @@ -134,7 +140,7 @@ function getColorDepth(env = process.env) {
// Lazy load for startup performance.
if (OSRelease === undefined) {
const { release } = require('os');
OSRelease = release().split('.');
OSRelease = StringPrototypeSplit(release(), '.');
}
// Windows 10 build 10586 is the first Windows release that supports 256
// colors. Windows 10 build 14931 is the first release that supports
Expand Down Expand Up @@ -163,14 +169,15 @@ function getColorDepth(env = process.env) {
}

if ('TEAMCITY_VERSION' in env) {
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ?
return RegExpPrototypeTest(/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/, 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)) {
RegExpPrototypeTest(/^[0-2]\./, env.TERM_PROGRAM_VERSION)
) {
return COLORS_256;
}
return COLORS_16m;
Expand All @@ -186,16 +193,17 @@ function getColorDepth(env = process.env) {
}

if (env.TERM) {
if (/^xterm-256/.test(env.TERM))
if (RegExpPrototypeTest(/^xterm-256/, env.TERM)) {
return COLORS_256;
}

const termEnv = env.TERM.toLowerCase();
const termEnv = StringPrototypeToLowerCase(env.TERM);

if (TERM_ENVS[termEnv]) {
return TERM_ENVS[termEnv];
}
for (const term of TERM_ENVS_REG_EXP) {
if (term.test(termEnv)) {
if (RegExpPrototypeTest(term, termEnv)) {
return COLORS_16;
}
}
Expand Down

0 comments on commit 787468c

Please sign in to comment.