chalk/index.d.ts

412 lines
8.4 KiB
TypeScript
Raw Normal View History

/**
Basic foreground colors.
2021-01-24 14:27:41 +07:00
[More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
*/
2021-04-16 15:23:29 +07:00
export type ForegroundColor =
| 'black'
| 'red'
| 'green'
| 'yellow'
| 'blue'
| 'magenta'
| 'cyan'
| 'white'
| 'gray'
| 'grey'
| 'blackBright'
| 'redBright'
| 'greenBright'
| 'yellowBright'
| 'blueBright'
| 'magentaBright'
| 'cyanBright'
| 'whiteBright';
/**
Basic background colors.
2021-01-24 14:27:41 +07:00
[More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
*/
2021-04-16 15:23:29 +07:00
export type BackgroundColor =
| 'bgBlack'
| 'bgRed'
| 'bgGreen'
| 'bgYellow'
| 'bgBlue'
| 'bgMagenta'
| 'bgCyan'
| 'bgWhite'
| 'bgGray'
| 'bgGrey'
| 'bgBlackBright'
| 'bgRedBright'
| 'bgGreenBright'
| 'bgYellowBright'
| 'bgBlueBright'
| 'bgMagentaBright'
| 'bgCyanBright'
| 'bgWhiteBright';
/**
Basic colors.
2021-01-24 14:27:41 +07:00
[More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
*/
2021-04-16 15:23:29 +07:00
export type Color = ForegroundColor | BackgroundColor;
2021-04-16 15:23:29 +07:00
export type Modifiers =
| 'reset'
| 'bold'
| 'dim'
| 'italic'
| 'underline'
| 'inverse'
| 'hidden'
| 'strikethrough'
| 'visible';
2021-04-16 15:23:29 +07:00
/**
Levels:
- `0` - All colors disabled.
- `1` - Basic 16 colors support.
- `2` - ANSI 256 colors support.
- `3` - Truecolor 16 million colors support.
*/
export type ColorSupportLevel = 0 | 1 | 2 | 3;
export interface Options {
/**
2021-04-16 15:23:29 +07:00
Specify the color support for Chalk.
By default, color support is automatically detected based on the environment.
Levels:
- `0` - All colors disabled.
- `1` - Basic 16 colors support.
- `2` - ANSI 256 colors support.
- `3` - Truecolor 16 million colors support.
*/
2021-04-16 15:23:29 +07:00
readonly level?: ColorSupportLevel;
}
/**
Return a new Chalk instance.
*/
export type ChalkInstance = new (options?: Options) => Chalk;
/**
Detect whether the terminal supports color.
*/
export interface ColorSupport {
/**
The color level used by Chalk.
*/
level: ColorSupportLevel;
/**
Return whether Chalk supports basic 16 colors.
*/
hasBasic: boolean;
/**
Return whether Chalk supports ANSI 256 colors.
*/
has256: boolean;
/**
Return whether Chalk supports Truecolor 16 million colors.
*/
has16m: boolean;
}
interface ChalkFunction {
/**
Use a template string.
@remarks Template literals are unsupported for nested calls (see [issue #341](https://github.com/chalk/chalk/issues/341))
@example
```
import chalk from 'chalk';
log(chalk`
CPU: {red ${cpu.totalPercent}%}
RAM: {green ${ram.used / ram.total * 100}%}
DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%}
`);
```
2021-04-16 15:23:29 +07:00
@example
```
import chalk from 'chalk';
2021-04-16 15:23:29 +07:00
log(chalk.red.bgBlack`2 + 3 = {bold ${2 + 3}}`)
```
*/
(text: TemplateStringsArray, ...placeholders: unknown[]): string;
2021-04-16 15:23:29 +07:00
(...text: unknown[]): string;
}
2021-04-16 15:23:29 +07:00
export interface Chalk extends ChalkFunction {
2020-04-02 15:56:21 +08:00
/**
Return a new Chalk instance.
*/
2021-04-16 15:23:29 +07:00
Instance: ChalkInstance;
/**
2021-04-16 15:23:29 +07:00
The color support for Chalk.
By default, color support is automatically detected based on the environment.
Levels:
- `0` - All colors disabled.
- `1` - Basic 16 colors support.
- `2` - ANSI 256 colors support.
- `3` - Truecolor 16 million colors support.
*/
2021-04-16 15:23:29 +07:00
level: ColorSupportLevel;
2021-04-16 15:23:29 +07:00
/**
Use HEX value to set text color.
2021-04-16 15:23:29 +07:00
@param color - Hexadecimal value representing the desired color.
2021-04-16 15:23:29 +07:00
@example
```
import chalk from 'chalk';
2021-04-16 15:23:29 +07:00
chalk.hex('#DEADED');
```
*/
hex: (color: string) => Chalk;
2021-04-16 15:23:29 +07:00
/**
Use keyword color value to set text color.
2021-04-16 15:23:29 +07:00
@param color - Keyword value representing the desired color.
2019-07-12 13:51:07 +07:00
2021-04-16 15:23:29 +07:00
@example
```
import chalk from 'chalk';
2021-04-16 15:23:29 +07:00
chalk.keyword('orange');
```
*/
keyword: (color: string) => Chalk;
2021-04-16 15:23:29 +07:00
/**
Use RGB values to set text color.
*/
rgb: (red: number, green: number, blue: number) => Chalk;
2021-04-16 15:23:29 +07:00
/**
Use HSL values to set text color.
*/
hsl: (hue: number, saturation: number, lightness: number) => Chalk;
2021-04-16 15:23:29 +07:00
/**
Use HSV values to set text color.
*/
hsv: (hue: number, saturation: number, value: number) => Chalk;
/**
Use HWB values to set text color.
*/
hwb: (hue: number, whiteness: number, blackness: number) => Chalk;
2021-04-16 15:23:29 +07:00
/**
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.
2021-04-16 15:23:29 +07:00
30 <= code && code < 38 || 90 <= code && code < 98
For example, 31 for red, 91 for redBright.
*/
ansi: (code: number) => Chalk;
2021-04-16 15:23:29 +07:00
/**
Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color.
*/
ansi256: (index: number) => Chalk;
2021-04-16 15:23:29 +07:00
/**
Use HEX value to set background color.
2021-04-16 15:23:29 +07:00
@param color - Hexadecimal value representing the desired color.
2021-04-16 15:23:29 +07:00
@example
```
import chalk from 'chalk';
2021-04-16 15:23:29 +07:00
chalk.bgHex('#DEADED');
```
*/
bgHex: (color: string) => Chalk;
2021-04-16 15:23:29 +07:00
/**
Use keyword color value to set background color.
2021-04-16 15:23:29 +07:00
@param color - Keyword value representing the desired color.
2021-04-16 15:23:29 +07:00
@example
```
import chalk from 'chalk';
chalk.bgKeyword('orange');
```
*/
bgKeyword: (color: string) => Chalk;
/**
Use RGB values to set background color.
*/
bgRgb: (red: number, green: number, blue: number) => Chalk;
/**
Use HSL values to set background color.
*/
bgHsl: (hue: number, saturation: number, lightness: number) => Chalk;
/**
Use HSV values to set background color.
*/
bgHsv: (hue: number, saturation: number, value: number) => Chalk;
/**
Use HWB values to set background color.
*/
bgHwb: (hue: number, whiteness: number, blackness: number) => Chalk;
/**
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.
30 <= code && code < 38 || 90 <= code && code < 98
For example, 31 for red, 91 for redBright.
Use the foreground code, not the background code (for example, not 41, nor 101).
*/
bgAnsi: (code: number) => Chalk;
/**
Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set background color.
*/
bgAnsi256: (index: number) => Chalk;
/**
Modifier: Resets the current color chain.
*/
readonly reset: Chalk;
/**
Modifier: Make text bold.
*/
readonly bold: Chalk;
/**
Modifier: Emitting only a small amount of light.
*/
readonly dim: Chalk;
/**
Modifier: Make text italic. (Not widely supported)
*/
readonly italic: Chalk;
/**
Modifier: Make text underline. (Not widely supported)
*/
readonly underline: Chalk;
/**
Modifier: Inverse background and foreground colors.
*/
readonly inverse: Chalk;
/**
Modifier: Prints the text, but makes it invisible.
*/
readonly hidden: Chalk;
/**
Modifier: Puts a horizontal line through the center of the text. (Not widely supported)
*/
readonly strikethrough: Chalk;
/**
Modifier: Prints the text only when Chalk has a color support level > 0.
Can be useful for things that are purely cosmetic.
*/
readonly visible: Chalk;
readonly black: Chalk;
readonly red: Chalk;
readonly green: Chalk;
readonly yellow: Chalk;
readonly blue: Chalk;
readonly magenta: Chalk;
readonly cyan: Chalk;
readonly white: Chalk;
/*
Alias for `blackBright`.
*/
readonly gray: Chalk;
/*
Alias for `blackBright`.
*/
readonly grey: Chalk;
readonly blackBright: Chalk;
readonly redBright: Chalk;
readonly greenBright: Chalk;
readonly yellowBright: Chalk;
readonly blueBright: Chalk;
readonly magentaBright: Chalk;
readonly cyanBright: Chalk;
readonly whiteBright: Chalk;
readonly bgBlack: Chalk;
readonly bgRed: Chalk;
readonly bgGreen: Chalk;
readonly bgYellow: Chalk;
readonly bgBlue: Chalk;
readonly bgMagenta: Chalk;
readonly bgCyan: Chalk;
readonly bgWhite: Chalk;
/*
Alias for `bgBlackBright`.
*/
readonly bgGray: Chalk;
/*
Alias for `bgBlackBright`.
*/
readonly bgGrey: Chalk;
readonly bgBlackBright: Chalk;
readonly bgRedBright: Chalk;
readonly bgGreenBright: Chalk;
readonly bgYellowBright: Chalk;
readonly bgBlueBright: Chalk;
readonly bgMagentaBright: Chalk;
readonly bgCyanBright: Chalk;
readonly bgWhiteBright: Chalk;
}
/**
Main Chalk object that allows to chain styles together.
2021-04-16 15:23:29 +07:00
Call the last one as a method with a string argument.
2021-04-16 15:23:29 +07:00
Order doesn't matter, and later styles take precedent in case of a conflict.
2021-04-16 15:23:29 +07:00
This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`.
*/
2021-04-16 15:23:29 +07:00
declare const chalk: Chalk & ChalkFunction & {
supportsColor: ColorSupport | false;
stderr: Chalk & {supportsColor: ColorSupport | false};
};
2021-04-16 15:23:29 +07:00
export default chalk;