source: trip-planner-front/node_modules/nanocolors/index.cjs@ ceaed42

Last change on this file since ceaed42 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 2.9 KB
Line 
1let tty = require('tty')
2
3let isDisabled = 'NO_COLOR' in process.env
4let isForced = 'FORCE_COLOR' in process.env
5let isWindows = process.platform === 'win32'
6
7let isCompatibleTerminal =
8 tty && tty.isatty(1) && process.env.TERM && process.env.TERM !== 'dumb'
9
10let isCI =
11 'CI' in process.env &&
12 ('GITHUB_ACTIONS' in process.env ||
13 'GITLAB_CI' in process.env ||
14 'CIRCLECI' in process.env)
15
16let isColorSupported =
17 !isDisabled && (isForced || isWindows || isCompatibleTerminal || isCI)
18
19let nope = s => String(s)
20
21function color(open, close, closeRegexp) {
22 return s => {
23 if (s === '') {
24 return s
25 } else {
26 return (
27 open +
28 (!!~('' + s).indexOf(close, 4) ? s.replace(closeRegexp, open) : s) +
29 close
30 )
31 }
32 }
33}
34
35let close39 = '\x1b[39m'
36let close49 = '\x1b[49m'
37let regexp39 = /\x1b\[39m/g
38let regexp49 = /\x1b\[49m/g
39
40function createColors(enabled = isColorSupported) {
41 if (enabled) {
42 return {
43 isColorSupported: true,
44 reset: s => `\x1b[0m${s}\x1b[0m`,
45 bold: color('\x1b[1m', '\x1b[22m', /\x1b\[22m/g),
46 dim: color('\x1b[2m', '\x1b[22m', /\x1b\[22m/g),
47 italic: color('\x1b[3m', '\x1b[23m', /\x1b\[23m/g),
48 underline: color('\x1b[4m', '\x1b[24m', /\x1b\[24m/g),
49 inverse: color('\x1b[7m', '\x1b[27m', /\x1b\[27m/g),
50 hidden: color('\x1b[8m', '\x1b[28m', /\x1b\[28m/g),
51 strikethrough: color('\x1b[9m', '\x1b[29m', /\x1b\[29m/g),
52 black: color('\x1b[30m', close39, regexp39),
53 red: color('\x1b[31m', close39, regexp39),
54 green: color('\x1b[32m', close39, regexp39),
55 yellow: color('\x1b[33m', close39, regexp39),
56 blue: color('\x1b[34m', close39, regexp39),
57 magenta: color('\x1b[35m', close39, regexp39),
58 cyan: color('\x1b[36m', close39, regexp39),
59 white: color('\x1b[37m', close39, regexp39),
60 gray: color('\x1b[90m', close39, regexp39),
61 bgBlack: color('\x1b[40m', close49, regexp49),
62 bgRed: color('\x1b[41m', close49, regexp49),
63 bgGreen: color('\x1b[42m', close49, regexp49),
64 bgYellow: color('\x1b[43m', close49, regexp49),
65 bgBlue: color('\x1b[44m', close49, regexp49),
66 bgMagenta: color('\x1b[45m', close49, regexp49),
67 bgCyan: color('\x1b[46m', close49, regexp49),
68 bgWhite: color('\x1b[47m', close49, regexp49)
69 }
70 } else {
71 return {
72 isColorSupported: false,
73 reset: nope,
74 bold: nope,
75 dim: nope,
76 italic: nope,
77 underline: nope,
78 inverse: nope,
79 hidden: nope,
80 strikethrough: nope,
81 black: nope,
82 red: nope,
83 green: nope,
84 yellow: nope,
85 blue: nope,
86 magenta: nope,
87 cyan: nope,
88 white: nope,
89 gray: nope,
90 bgBlack: nope,
91 bgRed: nope,
92 bgGreen: nope,
93 bgYellow: nope,
94 bgBlue: nope,
95 bgMagenta: nope,
96 bgCyan: nope,
97 bgWhite: nope
98 }
99 }
100}
101
102module.exports = createColors(isColorSupported)
103module.exports.createColors = createColors
Note: See TracBrowser for help on using the repository browser.