source: trip-planner-front/node_modules/picocolors/picocolors.js@ 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.6 KB
Line 
1let tty = require("tty")
2
3let isColorSupported =
4 !("NO_COLOR" in process.env || process.argv.includes("--no-color")) &&
5 ("FORCE_COLOR" in process.env ||
6 process.argv.includes("--color") ||
7 process.platform === "win32" ||
8 (tty.isatty(1) && process.env.TERM !== "dumb") ||
9 "CI" in process.env)
10
11function formatter(open, close, replace = open) {
12 return (input) => {
13 let string = "" + input
14 let index = string.indexOf(close, open.length)
15 return !~index
16 ? open + string + close
17 : open + replaceClose(string, close, replace, index) + close
18 }
19}
20
21function replaceClose(string, close, replace, index) {
22 let start = string.substring(0, index) + replace
23 let end = string.substring(index + close.length)
24 let nextIndex = end.indexOf(close)
25 return !~nextIndex ? start + end : start + replaceClose(end, close, replace, nextIndex)
26}
27
28function createColors(enabled = isColorSupported) {
29 return {
30 isColorSupported: enabled,
31 reset: enabled ? (s) => `\x1b[0m${s}\x1b[0m` : String,
32 bold: enabled ? formatter("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m") : String,
33 dim: enabled ? formatter("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m") : String,
34 italic: enabled ? formatter("\x1b[3m", "\x1b[23m") : String,
35 underline: enabled ? formatter("\x1b[4m", "\x1b[24m") : String,
36 inverse: enabled ? formatter("\x1b[7m", "\x1b[27m") : String,
37 hidden: enabled ? formatter("\x1b[8m", "\x1b[28m") : String,
38 strikethrough: enabled ? formatter("\x1b[9m", "\x1b[29m") : String,
39 black: enabled ? formatter("\x1b[30m", "\x1b[39m") : String,
40 red: enabled ? formatter("\x1b[31m", "\x1b[39m") : String,
41 green: enabled ? formatter("\x1b[32m", "\x1b[39m") : String,
42 yellow: enabled ? formatter("\x1b[33m", "\x1b[39m") : String,
43 blue: enabled ? formatter("\x1b[34m", "\x1b[39m") : String,
44 magenta: enabled ? formatter("\x1b[35m", "\x1b[39m") : String,
45 cyan: enabled ? formatter("\x1b[36m", "\x1b[39m") : String,
46 white: enabled ? formatter("\x1b[37m", "\x1b[39m") : String,
47 gray: enabled ? formatter("\x1b[90m", "\x1b[39m") : String,
48 bgBlack: enabled ? formatter("\x1b[40m", "\x1b[49m") : String,
49 bgRed: enabled ? formatter("\x1b[41m", "\x1b[49m") : String,
50 bgGreen: enabled ? formatter("\x1b[42m", "\x1b[49m") : String,
51 bgYellow: enabled ? formatter("\x1b[43m", "\x1b[49m") : String,
52 bgBlue: enabled ? formatter("\x1b[44m", "\x1b[49m") : String,
53 bgMagenta: enabled ? formatter("\x1b[45m", "\x1b[49m") : String,
54 bgCyan: enabled ? formatter("\x1b[46m", "\x1b[49m") : String,
55 bgWhite: enabled ? formatter("\x1b[47m", "\x1b[49m") : String,
56 }
57}
58
59module.exports = createColors()
60module.exports.createColors = createColors
Note: See TracBrowser for help on using the repository browser.