UNPKG

8.79 kBTypeScriptView Raw
1/**
2Basic foreground colors.
3
4[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support)
5*/
6declare type ForegroundColor =
7 | 'black'
8 | 'red'
9 | 'green'
10 | 'yellow'
11 | 'blue'
12 | 'magenta'
13 | 'cyan'
14 | 'white'
15 | 'gray'
16 | 'grey'
17 | 'blackBright'
18 | 'redBright'
19 | 'greenBright'
20 | 'yellowBright'
21 | 'blueBright'
22 | 'magentaBright'
23 | 'cyanBright'
24 | 'whiteBright';
25
26/**
27Basic background colors.
28
29[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support)
30*/
31declare type BackgroundColor =
32 | 'bgBlack'
33 | 'bgRed'
34 | 'bgGreen'
35 | 'bgYellow'
36 | 'bgBlue'
37 | 'bgMagenta'
38 | 'bgCyan'
39 | 'bgWhite'
40 | 'bgGray'
41 | 'bgGrey'
42 | 'bgBlackBright'
43 | 'bgRedBright'
44 | 'bgGreenBright'
45 | 'bgYellowBright'
46 | 'bgBlueBright'
47 | 'bgMagentaBright'
48 | 'bgCyanBright'
49 | 'bgWhiteBright';
50
51/**
52Basic colors.
53
54[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support)
55*/
56declare type Color = ForegroundColor | BackgroundColor;
57
58declare type Modifiers =
59 | 'reset'
60 | 'bold'
61 | 'dim'
62 | 'italic'
63 | 'underline'
64 | 'inverse'
65 | 'hidden'
66 | 'strikethrough'
67 | 'visible';
68
69declare namespace chalk {
70 /**
71 Levels:
72 - `0` - All colors disabled.
73 - `1` - Basic 16 colors support.
74 - `2` - ANSI 256 colors support.
75 - `3` - Truecolor 16 million colors support.
76 */
77 type Level = 0 | 1 | 2 | 3;
78
79 interface Options {
80 /**
81 Specify the color support for Chalk.
82
83 By default, color support is automatically detected based on the environment.
84
85 Levels:
86 - `0` - All colors disabled.
87 - `1` - Basic 16 colors support.
88 - `2` - ANSI 256 colors support.
89 - `3` - Truecolor 16 million colors support.
90 */
91 level?: Level;
92 }
93
94 /**
95 Return a new Chalk instance.
96 */
97 type Instance = new (options?: Options) => Chalk;
98
99 /**
100 Detect whether the terminal supports color.
101 */
102 interface ColorSupport {
103 /**
104 The color level used by Chalk.
105 */
106 level: Level;
107
108 /**
109 Return whether Chalk supports basic 16 colors.
110 */
111 hasBasic: boolean;
112
113 /**
114 Return whether Chalk supports ANSI 256 colors.
115 */
116 has256: boolean;
117
118 /**
119 Return whether Chalk supports Truecolor 16 million colors.
120 */
121 has16m: boolean;
122 }
123
124 interface ChalkFunction {
125 /**
126 Use a template string.
127
128 @remarks Template literals are unsupported for nested calls (see [issue #341](https://github.com/chalk/chalk/issues/341))
129
130 @example
131 ```
132 import chalk = require('chalk');
133
134 log(chalk`
135 CPU: {red ${cpu.totalPercent}%}
136 RAM: {green ${ram.used / ram.total * 100}%}
137 DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%}
138 `);
139 ```
140 */
141 (text: TemplateStringsArray, ...placeholders: unknown[]): string;
142
143 (...text: unknown[]): string;
144 }
145
146 interface Chalk extends ChalkFunction {
147 /**
148 Return a new Chalk instance.
149 */
150 Instance: Instance;
151
152 /**
153 The color support for Chalk.
154
155 By default, color support is automatically detected based on the environment.
156
157 Levels:
158 - `0` - All colors disabled.
159 - `1` - Basic 16 colors support.
160 - `2` - ANSI 256 colors support.
161 - `3` - Truecolor 16 million colors support.
162 */
163 level: Level;
164
165 /**
166 Use HEX value to set text color.
167
168 @param color - Hexadecimal value representing the desired color.
169
170 @example
171 ```
172 import chalk = require('chalk');
173
174 chalk.hex('#DEADED');
175 ```
176 */
177 hex(color: string): Chalk;
178
179 /**
180 Use keyword color value to set text color.
181
182 @param color - Keyword value representing the desired color.
183
184 @example
185 ```
186 import chalk = require('chalk');
187
188 chalk.keyword('orange');
189 ```
190 */
191 keyword(color: string): Chalk;
192
193 /**
194 Use RGB values to set text color.
195 */
196 rgb(red: number, green: number, blue: number): Chalk;
197
198 /**
199 Use HSL values to set text color.
200 */
201 hsl(hue: number, saturation: number, lightness: number): Chalk;
202
203 /**
204 Use HSV values to set text color.
205 */
206 hsv(hue: number, saturation: number, value: number): Chalk;
207
208 /**
209 Use HWB values to set text color.
210 */
211 hwb(hue: number, whiteness: number, blackness: number): Chalk;
212
213 /**
214 Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set text color.
215
216 30 <= code && code < 38 || 90 <= code && code < 98
217 For example, 31 for red, 91 for redBright.
218 */
219 ansi(code: number): Chalk;
220
221 /**
222 Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color.
223 */
224 ansi256(index: number): Chalk;
225
226 /**
227 Use HEX value to set background color.
228
229 @param color - Hexadecimal value representing the desired color.
230
231 @example
232 ```
233 import chalk = require('chalk');
234
235 chalk.bgHex('#DEADED');
236 ```
237 */
238 bgHex(color: string): Chalk;
239
240 /**
241 Use keyword color value to set background color.
242
243 @param color - Keyword value representing the desired color.
244
245 @example
246 ```
247 import chalk = require('chalk');
248
249 chalk.bgKeyword('orange');
250 ```
251 */
252 bgKeyword(color: string): Chalk;
253
254 /**
255 Use RGB values to set background color.
256 */
257 bgRgb(red: number, green: number, blue: number): Chalk;
258
259 /**
260 Use HSL values to set background color.
261 */
262 bgHsl(hue: number, saturation: number, lightness: number): Chalk;
263
264 /**
265 Use HSV values to set background color.
266 */
267 bgHsv(hue: number, saturation: number, value: number): Chalk;
268
269 /**
270 Use HWB values to set background color.
271 */
272 bgHwb(hue: number, whiteness: number, blackness: number): Chalk;
273
274 /**
275 Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set background color.
276
277 30 <= code && code < 38 || 90 <= code && code < 98
278 For example, 31 for red, 91 for redBright.
279 Use the foreground code, not the background code (for example, not 41, nor 101).
280 */
281 bgAnsi(code: number): Chalk;
282
283 /**
284 Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set background color.
285 */
286 bgAnsi256(index: number): Chalk;
287
288 /**
289 Modifier: Resets the current color chain.
290 */
291 readonly reset: Chalk;
292
293 /**
294 Modifier: Make text bold.
295 */
296 readonly bold: Chalk;
297
298 /**
299 Modifier: Emitting only a small amount of light.
300 */
301 readonly dim: Chalk;
302
303 /**
304 Modifier: Make text italic. (Not widely supported)
305 */
306 readonly italic: Chalk;
307
308 /**
309 Modifier: Make text underline. (Not widely supported)
310 */
311 readonly underline: Chalk;
312
313 /**
314 Modifier: Inverse background and foreground colors.
315 */
316 readonly inverse: Chalk;
317
318 /**
319 Modifier: Prints the text, but makes it invisible.
320 */
321 readonly hidden: Chalk;
322
323 /**
324 Modifier: Puts a horizontal line through the center of the text. (Not widely supported)
325 */
326 readonly strikethrough: Chalk;
327
328 /**
329 Modifier: Prints the text only when Chalk has a color support level > 0.
330 Can be useful for things that are purely cosmetic.
331 */
332 readonly visible: Chalk;
333
334 readonly black: Chalk;
335 readonly red: Chalk;
336 readonly green: Chalk;
337 readonly yellow: Chalk;
338 readonly blue: Chalk;
339 readonly magenta: Chalk;
340 readonly cyan: Chalk;
341 readonly white: Chalk;
342
343 /*
344 Alias for `blackBright`.
345 */
346 readonly gray: Chalk;
347
348 /*
349 Alias for `blackBright`.
350 */
351 readonly grey: Chalk;
352
353 readonly blackBright: Chalk;
354 readonly redBright: Chalk;
355 readonly greenBright: Chalk;
356 readonly yellowBright: Chalk;
357 readonly blueBright: Chalk;
358 readonly magentaBright: Chalk;
359 readonly cyanBright: Chalk;
360 readonly whiteBright: Chalk;
361
362 readonly bgBlack: Chalk;
363 readonly bgRed: Chalk;
364 readonly bgGreen: Chalk;
365 readonly bgYellow: Chalk;
366 readonly bgBlue: Chalk;
367 readonly bgMagenta: Chalk;
368 readonly bgCyan: Chalk;
369 readonly bgWhite: Chalk;
370
371 /*
372 Alias for `bgBlackBright`.
373 */
374 readonly bgGray: Chalk;
375
376 /*
377 Alias for `bgBlackBright`.
378 */
379 readonly bgGrey: Chalk;
380
381 readonly bgBlackBright: Chalk;
382 readonly bgRedBright: Chalk;
383 readonly bgGreenBright: Chalk;
384 readonly bgYellowBright: Chalk;
385 readonly bgBlueBright: Chalk;
386 readonly bgMagentaBright: Chalk;
387 readonly bgCyanBright: Chalk;
388 readonly bgWhiteBright: Chalk;
389 }
390}
391
392/**
393Main Chalk object that allows to chain styles together.
394Call the last one as a method with a string argument.
395Order doesn't matter, and later styles take precedent in case of a conflict.
396This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`.
397*/
398declare const chalk: chalk.Chalk & chalk.ChalkFunction & {
399 supportsColor: chalk.ColorSupport | false;
400 Level: chalk.Level;
401 Color: Color;
402 ForegroundColor: ForegroundColor;
403 BackgroundColor: BackgroundColor;
404 Modifiers: Modifiers;
405 stderr: chalk.Chalk & {supportsColor: chalk.ColorSupport | false};
406};
407
408export = chalk;