Re-export types from supports-color (#526)

This commit is contained in:
Richie Bendall 2021-11-21 19:51:24 +13:00 committed by GitHub
parent c987c61486
commit 09fd5c4ba8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 25 additions and 50 deletions

View file

@ -1,3 +1,4 @@
import process from 'node:process';
import styles from 'ansi-styles'; import styles from 'ansi-styles';
import chalk from '../source/index.js'; import chalk from '../source/index.js';

View file

@ -42,7 +42,7 @@
], ],
"dependencies": { "dependencies": {
"ansi-styles": "^6.1.0", "ansi-styles": "^6.1.0",
"supports-color": "^9.0.2" "supports-color": "^9.1.0"
}, },
"devDependencies": { "devDependencies": {
"ava": "^3.15.0", "ava": "^3.15.0",
@ -54,7 +54,7 @@
"nyc": "^15.1.0", "nyc": "^15.1.0",
"tsd": "^0.17.0", "tsd": "^0.17.0",
"typescript": "^4.3.5", "typescript": "^4.3.5",
"xo": "^0.42.0", "xo": "^0.46.4",
"yoctodelay": "^1.2.0" "yoctodelay": "^1.2.0"
}, },
"types": "./source/index.d.ts", "types": "./source/index.d.ts",

46
source/index.d.ts vendored
View file

@ -1,3 +1,5 @@
import {ColorInfo, ColorSupportLevel} from 'supports-color';
/** /**
Basic foreground colors. Basic foreground colors.
@ -67,15 +69,6 @@ export type Modifiers =
| 'strikethrough' | 'strikethrough'
| 'visible'; | 'visible';
/**
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 { export interface Options {
/** /**
Specify the color support for Chalk. Specify the color support for Chalk.
@ -94,32 +87,7 @@ export interface Options {
/** /**
Return a new Chalk instance. Return a new Chalk instance.
*/ */
export const Chalk: new (options?: Options) => ChalkInstance; export const Chalk: new (options?: Options) => ChalkInstance; // eslint-disable-line @typescript-eslint/naming-convention
/**
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;
}
export interface ChalkInstance { export interface ChalkInstance {
(...text: unknown[]): string; (...text: unknown[]): string;
@ -333,9 +301,15 @@ This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`.
*/ */
declare const chalk: ChalkInstance; declare const chalk: ChalkInstance;
export const supportsColor: ColorSupport | false; export const supportsColor: ColorInfo;
export const chalkStderr: typeof chalk; export const chalkStderr: typeof chalk;
export const supportsColorStderr: typeof supportsColor; export const supportsColorStderr: typeof supportsColor;
export {
ColorInfo,
ColorSupport,
ColorSupportLevel,
} from 'supports-color';
export default chalk; export default chalk;

View file

@ -1,12 +1,11 @@
import {expectType, expectAssignable, expectError} from 'tsd'; import {expectType, expectAssignable, expectError} from 'tsd';
import chalk, {Chalk, ChalkInstance, Color, ColorSupport, ColorSupportLevel, chalkStderr, supportsColor, supportsColorStderr} from './index.js'; import chalk, {Chalk, ChalkInstance, Color, ColorInfo, ColorSupport, ColorSupportLevel, chalkStderr, supportsColor, supportsColorStderr} from './index.js';
// - Helpers -
type colorReturn = ChalkInstance & {supportsColor?: never};
// - supportsColor - // - supportsColor -
expectType<ColorSupport | false>(supportsColor); expectType<ColorInfo>(supportsColor);
if (supportsColor) { if (supportsColor) {
expectType<ColorSupport>(supportsColor);
expectType<ColorSupportLevel>(supportsColor.level);
expectType<boolean>(supportsColor.hasBasic); expectType<boolean>(supportsColor.hasBasic);
expectType<boolean>(supportsColor.has256); expectType<boolean>(supportsColor.has256);
expectType<boolean>(supportsColor.has16m); expectType<boolean>(supportsColor.has16m);
@ -14,7 +13,7 @@ if (supportsColor) {
// - stderr - // - stderr -
expectAssignable<ChalkInstance>(chalkStderr); expectAssignable<ChalkInstance>(chalkStderr);
expectType<ColorSupport | false>(supportsColorStderr); expectType<ColorInfo>(supportsColorStderr);
if (supportsColorStderr) { if (supportsColorStderr) {
expectType<boolean>(supportsColorStderr.hasBasic); expectType<boolean>(supportsColorStderr.hasBasic);
expectType<boolean>(supportsColorStderr.has256); expectType<boolean>(supportsColorStderr.has256);
@ -35,12 +34,12 @@ expectType<ChalkInstance>(new Chalk({level: 1}));
expectType<ColorSupportLevel>(chalk.level); expectType<ColorSupportLevel>(chalk.level);
// -- Color methods -- // -- Color methods --
expectAssignable<colorReturn>(chalk.rgb(0, 0, 0)); expectType<ChalkInstance>(chalk.rgb(0, 0, 0));
expectAssignable<colorReturn>(chalk.hex('#DEADED')); expectType<ChalkInstance>(chalk.hex('#DEADED'));
expectAssignable<colorReturn>(chalk.ansi256(0)); expectType<ChalkInstance>(chalk.ansi256(0));
expectAssignable<colorReturn>(chalk.bgRgb(0, 0, 0)); expectType<ChalkInstance>(chalk.bgRgb(0, 0, 0));
expectAssignable<colorReturn>(chalk.bgHex('#DEADED')); expectType<ChalkInstance>(chalk.bgHex('#DEADED'));
expectAssignable<colorReturn>(chalk.bgAnsi256(0)); expectType<ChalkInstance>(chalk.bgAnsi256(0));
// -- Modifiers -- // -- Modifiers --
expectType<string>(chalk.reset('foo')); expectType<string>(chalk.reset('foo'));

View file

@ -1,3 +1,4 @@
import process from 'node:process';
import test from 'ava'; import test from 'ava';
import chalk, {Chalk, chalkStderr} from '../source/index.js'; import chalk, {Chalk, chalkStderr} from '../source/index.js';