diff --git a/chalk/chalk-tests.ts b/chalk/chalk-tests.ts index 208709e5b1..e159d34765 100644 --- a/chalk/chalk-tests.ts +++ b/chalk/chalk-tests.ts @@ -4,6 +4,7 @@ import chalk = require('chalk'); var str: string; var bool: boolean; +var chain: chalk.ChalkChain; chalk.enabled = bool; str = chalk.stripColor(str); @@ -28,3 +29,9 @@ console.log( chalk.red('Hello', chalk.underline.bgBlue('world') + '!') ); // nest styles of the same type even (color, underline, background) console.log( chalk.green('I am a green line ' + chalk.blue('with a blue substring') + ' that becomes green again!') ); + +chain = chalk.green; +chain = chain.underline; +str = chain('someString'); + +chalk.enabled = chalk.supportsColor = bool; diff --git a/chalk/chalk.d.ts b/chalk/chalk.d.ts index ede2947754..3a00a5c939 100644 --- a/chalk/chalk.d.ts +++ b/chalk/chalk.d.ts @@ -1,93 +1,122 @@ // Type definitions for chalk v0.4.0 // Project: https://github.com/sindresorhus/chalk -// Definitions by: Diullei Gomes , Bart van der Schoor +// Definitions by: Diullei Gomes , Bart van der Schoor , Nico Jansen // Definitions: https://github.com/borisyankov/DefinitelyTyped declare module Chalk { - export interface ChalkModule extends ChalkStyle { - enabled: boolean; - supportsColor: boolean; - styles: ChalkStyleMap; - stripColor(value: string): any; - hasColor(str: string): boolean; - } + export var enabled: boolean; + export var supportsColor: boolean; + export var styles: ChalkStyleMap; - export interface ChalkChain extends ChalkStyle { - (...text: string[]): ChalkChain; - } + export function stripColor(value: string): any; + export function hasColor(str: string): boolean; - export interface ChalkStyleElement { - open: string; - close: string; - } + export interface ChalkChain extends ChalkStyle { + (...text: string[]): string; + } - export interface ChalkStyle { - // General - reset: ChalkChain; - bold: ChalkChain; - italic: ChalkChain; - underline: ChalkChain; - inverse: ChalkChain; - strikethrough: ChalkChain; + export interface ChalkStyleElement { + open: string; + close: string; + } - // Text colors - black: ChalkChain; - red: ChalkChain; - green: ChalkChain; - yellow: ChalkChain; - blue: ChalkChain; - magenta: ChalkChain; - cyan: ChalkChain; - white: ChalkChain; - gray: ChalkChain; - grey: ChalkChain; + // General + export var reset: ChalkChain; + export var bold: ChalkChain; + export var italic: ChalkChain; + export var underline: ChalkChain; + export var inverse: ChalkChain; + export var strikethrough: ChalkChain; - // Background colors - bgBlack: ChalkChain; - bgRed: ChalkChain; - bgGreen: ChalkChain; - bgYellow: ChalkChain; - bgBlue: ChalkChain; - bgMagenta: ChalkChain; - bgCyan: ChalkChain; - bgWhite: ChalkChain; - } + // Text colors + export var black: ChalkChain; + export var red: ChalkChain; + export var green: ChalkChain; + export var yellow: ChalkChain; + export var blue: ChalkChain; + export var magenta: ChalkChain; + export var cyan: ChalkChain; + export var white: ChalkChain; + export var gray: ChalkChain; + export var grey: ChalkChain; - export interface ChalkStyleMap { - // General - reset: ChalkStyleElement; - bold: ChalkStyleElement; - italic: ChalkStyleElement; - underline: ChalkStyleElement; - inverse: ChalkStyleElement; - strikethrough: ChalkStyleElement; + // Background colors + export var bgBlack: ChalkChain; + export var bgRed: ChalkChain; + export var bgGreen: ChalkChain; + export var bgYellow: ChalkChain; + export var bgBlue: ChalkChain; + export var bgMagenta: ChalkChain; + export var bgCyan: ChalkChain; + export var bgWhite: ChalkChain; - // Text colors - black: ChalkStyleElement; - red: ChalkStyleElement; - green: ChalkStyleElement; - yellow: ChalkStyleElement; - blue: ChalkStyleElement; - magenta: ChalkStyleElement; - cyan: ChalkStyleElement; - white: ChalkStyleElement; - gray: ChalkStyleElement; - // Background colors - bgBlack: ChalkStyleElement; - bgRed: ChalkStyleElement; - bgGreen: ChalkStyleElement; - bgYellow: ChalkStyleElement; - bgBlue: ChalkStyleElement; - bgMagenta: ChalkStyleElement; - bgCyan: ChalkStyleElement; - bgWhite: ChalkStyleElement; - } + export interface ChalkStyle { + // General + reset: ChalkChain; + bold: ChalkChain; + italic: ChalkChain; + underline: ChalkChain; + inverse: ChalkChain; + strikethrough: ChalkChain; + + // Text colors + black: ChalkChain; + red: ChalkChain; + green: ChalkChain; + yellow: ChalkChain; + blue: ChalkChain; + magenta: ChalkChain; + cyan: ChalkChain; + white: ChalkChain; + gray: ChalkChain; + grey: ChalkChain; + + // Background colors + bgBlack: ChalkChain; + bgRed: ChalkChain; + bgGreen: ChalkChain; + bgYellow: ChalkChain; + bgBlue: ChalkChain; + bgMagenta: ChalkChain; + bgCyan: ChalkChain; + bgWhite: ChalkChain; + } + + export interface ChalkStyleMap { + // General + reset: ChalkStyleElement; + bold: ChalkStyleElement; + italic: ChalkStyleElement; + underline: ChalkStyleElement; + inverse: ChalkStyleElement; + strikethrough: ChalkStyleElement; + + // Text colors + black: ChalkStyleElement; + red: ChalkStyleElement; + green: ChalkStyleElement; + yellow: ChalkStyleElement; + blue: ChalkStyleElement; + magenta: ChalkStyleElement; + cyan: ChalkStyleElement; + white: ChalkStyleElement; + gray: ChalkStyleElement; + + // Background colors + bgBlack: ChalkStyleElement; + bgRed: ChalkStyleElement; + bgGreen: ChalkStyleElement; + bgYellow: ChalkStyleElement; + bgBlue: ChalkStyleElement; + bgMagenta: ChalkStyleElement; + bgCyan: ChalkStyleElement; + bgWhite: ChalkStyleElement; + } } declare module "chalk" { - var ch: Chalk.ChalkModule; - export = ch; + export = Chalk; }