import {expectType, expectAssignable, expectError, expectDeprecated} from 'tsd'; import chalk, { Chalk, ChalkInstance, ColorInfo, ColorSupport, ColorSupportLevel, chalkStderr, supportsColor, supportsColorStderr, ModifierName, ForegroundColorName, BackgroundColorName, ColorName, Modifiers, } from './index.js'; // - supportsColor - expectType(supportsColor); if (supportsColor) { expectType(supportsColor); expectType(supportsColor.level); expectType(supportsColor.hasBasic); expectType(supportsColor.has256); expectType(supportsColor.has16m); } // - stderr - expectAssignable(chalkStderr); expectType(supportsColorStderr); if (supportsColorStderr) { expectType(supportsColorStderr.hasBasic); expectType(supportsColorStderr.has256); expectType(supportsColorStderr.has16m); } // -- `supportsColorStderr` is not a member of the Chalk interface -- expectError(chalk.reset.supportsColorStderr); // -- `supportsColor` is not a member of the Chalk interface -- expectError(chalk.reset.supportsColor); // - Chalk - // -- Instance -- expectType(new Chalk({level: 1})); // -- Properties -- expectType(chalk.level); // -- Color methods -- expectType(chalk.rgb(0, 0, 0)); expectType(chalk.hex('#DEADED')); expectType(chalk.ansi256(0)); expectType(chalk.bgRgb(0, 0, 0)); expectType(chalk.bgHex('#DEADED')); expectType(chalk.bgAnsi256(0)); // -- Modifiers -- expectType(chalk.reset('foo')); expectType(chalk.bold('foo')); expectType(chalk.dim('foo')); expectType(chalk.italic('foo')); expectType(chalk.underline('foo')); expectType(chalk.overline('foo')); expectType(chalk.inverse('foo')); expectType(chalk.hidden('foo')); expectType(chalk.strikethrough('foo')); expectType(chalk.visible('foo')); expectType(chalk.reset`foo`); expectType(chalk.bold`foo`); expectType(chalk.dim`foo`); expectType(chalk.italic`foo`); expectType(chalk.underline`foo`); expectType(chalk.inverse`foo`); expectType(chalk.hidden`foo`); expectType(chalk.strikethrough`foo`); expectType(chalk.visible`foo`); // -- Colors -- expectType(chalk.black('foo')); expectType(chalk.red('foo')); expectType(chalk.green('foo')); expectType(chalk.yellow('foo')); expectType(chalk.blue('foo')); expectType(chalk.magenta('foo')); expectType(chalk.cyan('foo')); expectType(chalk.white('foo')); expectType(chalk.gray('foo')); expectType(chalk.grey('foo')); expectType(chalk.blackBright('foo')); expectType(chalk.redBright('foo')); expectType(chalk.greenBright('foo')); expectType(chalk.yellowBright('foo')); expectType(chalk.blueBright('foo')); expectType(chalk.magentaBright('foo')); expectType(chalk.cyanBright('foo')); expectType(chalk.whiteBright('foo')); expectType(chalk.bgBlack('foo')); expectType(chalk.bgRed('foo')); expectType(chalk.bgGreen('foo')); expectType(chalk.bgYellow('foo')); expectType(chalk.bgBlue('foo')); expectType(chalk.bgMagenta('foo')); expectType(chalk.bgCyan('foo')); expectType(chalk.bgWhite('foo')); expectType(chalk.bgBlackBright('foo')); expectType(chalk.bgRedBright('foo')); expectType(chalk.bgGreenBright('foo')); expectType(chalk.bgYellowBright('foo')); expectType(chalk.bgBlueBright('foo')); expectType(chalk.bgMagentaBright('foo')); expectType(chalk.bgCyanBright('foo')); expectType(chalk.bgWhiteBright('foo')); expectType(chalk.black`foo`); expectType(chalk.red`foo`); expectType(chalk.green`foo`); expectType(chalk.yellow`foo`); expectType(chalk.blue`foo`); expectType(chalk.magenta`foo`); expectType(chalk.cyan`foo`); expectType(chalk.white`foo`); expectType(chalk.gray`foo`); expectType(chalk.grey`foo`); expectType(chalk.blackBright`foo`); expectType(chalk.redBright`foo`); expectType(chalk.greenBright`foo`); expectType(chalk.yellowBright`foo`); expectType(chalk.blueBright`foo`); expectType(chalk.magentaBright`foo`); expectType(chalk.cyanBright`foo`); expectType(chalk.whiteBright`foo`); expectType(chalk.bgBlack`foo`); expectType(chalk.bgRed`foo`); expectType(chalk.bgGreen`foo`); expectType(chalk.bgYellow`foo`); expectType(chalk.bgBlue`foo`); expectType(chalk.bgMagenta`foo`); expectType(chalk.bgCyan`foo`); expectType(chalk.bgWhite`foo`); expectType(chalk.bgBlackBright`foo`); expectType(chalk.bgRedBright`foo`); expectType(chalk.bgGreenBright`foo`); expectType(chalk.bgYellowBright`foo`); expectType(chalk.bgBlueBright`foo`); expectType(chalk.bgMagentaBright`foo`); expectType(chalk.bgCyanBright`foo`); expectType(chalk.bgWhiteBright`foo`); // -- Complex -- expectType(chalk.red.bgGreen.underline('foo')); expectType(chalk.underline.red.bgGreen('foo')); // -- Complex template literal -- expectType(chalk.underline``); expectType(chalk.red.bgGreen.bold`Hello {italic.blue ${name}}`); expectType(chalk.strikethrough.cyanBright.bgBlack`Works with {reset {bold numbers}} {bold.red ${1}}`); // -- Modifiers types expectAssignable('strikethrough'); expectError('delete'); // -- Foreground types expectAssignable('red'); expectError('pink'); // -- Background types expectAssignable('bgRed'); expectError('bgPink'); // -- Color types -- expectAssignable('red'); expectAssignable('bgRed'); expectError('hotpink'); expectError('bgHotpink');