Use CommonJS-compatible export in TypeScript definition (#344)
This commit is contained in:
parent
7b9211be50
commit
98628d9f08
5 changed files with 284 additions and 274 deletions
|
|
@ -1,5 +1,6 @@
|
|||
language: node_js
|
||||
node_js:
|
||||
- '12'
|
||||
- '10'
|
||||
- '8'
|
||||
after_success:
|
||||
|
|
|
|||
523
index.d.ts
vendored
523
index.d.ts
vendored
|
|
@ -1,276 +1,287 @@
|
|||
export const enum Level {
|
||||
declare const enum LevelEnum {
|
||||
/**
|
||||
* All colors disabled.
|
||||
*/
|
||||
All colors disabled.
|
||||
*/
|
||||
None = 0,
|
||||
|
||||
/**
|
||||
* Basic 16 colors support.
|
||||
*/
|
||||
Basic 16 colors support.
|
||||
*/
|
||||
Basic = 1,
|
||||
|
||||
/**
|
||||
* ANSI 256 colors support.
|
||||
*/
|
||||
ANSI 256 colors support.
|
||||
*/
|
||||
Ansi256 = 2,
|
||||
|
||||
/**
|
||||
* Truecolor 16 million colors support.
|
||||
*/
|
||||
Truecolor 16 million colors support.
|
||||
*/
|
||||
TrueColor = 3
|
||||
}
|
||||
|
||||
export interface Options {
|
||||
/**
|
||||
* Enable or disable Chalk.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
enabled?: boolean;
|
||||
declare namespace chalk {
|
||||
type Level = LevelEnum;
|
||||
|
||||
interface Options {
|
||||
/**
|
||||
Enable or disable Chalk.
|
||||
|
||||
@default true
|
||||
*/
|
||||
enabled?: boolean;
|
||||
|
||||
/**
|
||||
Specify the color support for Chalk.
|
||||
By default, color support is automatically detected based on the environment.
|
||||
*/
|
||||
level?: Level;
|
||||
}
|
||||
|
||||
interface Instance {
|
||||
/**
|
||||
Return a new Chalk instance.
|
||||
*/
|
||||
new (options?: Options): Chalk;
|
||||
}
|
||||
|
||||
/**
|
||||
* Specify the color support for Chalk.
|
||||
* By default, color support is automatically detected based on the environment.
|
||||
*/
|
||||
level?: Level;
|
||||
}
|
||||
Detect whether the terminal supports color.
|
||||
*/
|
||||
interface ColorSupport {
|
||||
/**
|
||||
The color level used by Chalk.
|
||||
*/
|
||||
level: Level;
|
||||
|
||||
export interface Instance {
|
||||
/**
|
||||
* Return a new Chalk instance.
|
||||
*/
|
||||
new (options?: Options): Chalk;
|
||||
/**
|
||||
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 Chalk {
|
||||
(...text: unknown[]): string;
|
||||
|
||||
(text: TemplateStringsArray, ...placeholders: unknown[]): string;
|
||||
|
||||
/**
|
||||
Return a new Chalk instance.
|
||||
*/
|
||||
Instance: Instance;
|
||||
|
||||
/**
|
||||
Enable or disable Chalk.
|
||||
|
||||
@default true
|
||||
*/
|
||||
enabled: boolean;
|
||||
|
||||
/**
|
||||
The color support for Chalk.
|
||||
By default, color support is automatically detected based on the environment.
|
||||
*/
|
||||
level: Level;
|
||||
|
||||
/**
|
||||
Use HEX value to set text color.
|
||||
|
||||
@param color - Hexadecimal value representing the desired color.
|
||||
|
||||
@example
|
||||
```
|
||||
import chalk = require('chalk');
|
||||
|
||||
chalk.hex('#DEADED');
|
||||
```
|
||||
*/
|
||||
hex(color: string): this;
|
||||
|
||||
/**
|
||||
Use keyword color value to set text color.
|
||||
|
||||
@param color - Keyword value representing the desired color.
|
||||
|
||||
@example
|
||||
```
|
||||
import chalk = require('chalk');
|
||||
|
||||
chalk.keyword('orange');
|
||||
```
|
||||
*/
|
||||
keyword(color: string): this;
|
||||
|
||||
/**
|
||||
Use RGB values to set text color.
|
||||
*/
|
||||
rgb(red: number, green: number, blue: number): this;
|
||||
|
||||
/**
|
||||
Use HSL values to set text color.
|
||||
*/
|
||||
hsl(hue: number, saturation: number, lightness: number): this;
|
||||
|
||||
/**
|
||||
Use HSV values to set text color.
|
||||
*/
|
||||
hsv(hue: number, saturation: number, value: number): this;
|
||||
|
||||
/**
|
||||
Use HWB values to set text color.
|
||||
*/
|
||||
hwb(hue: number, whiteness: number, blackness: number): this;
|
||||
|
||||
/**
|
||||
Use HEX value to set background color.
|
||||
|
||||
@param color - Hexadecimal value representing the desired color.
|
||||
|
||||
@example
|
||||
```
|
||||
import chalk = require('chalk');
|
||||
|
||||
chalk.bgHex('#DEADED');
|
||||
```
|
||||
*/
|
||||
bgHex(color: string): this;
|
||||
|
||||
/**
|
||||
Use keyword color value to set background color.
|
||||
|
||||
@param color - Keyword value representing the desired color.
|
||||
|
||||
@example
|
||||
```
|
||||
import chalk = require('chalk');
|
||||
|
||||
chalk.bgKeyword('orange');
|
||||
```
|
||||
*/
|
||||
bgKeyword(color: string): this;
|
||||
|
||||
/**
|
||||
Use RGB values to set background color.
|
||||
*/
|
||||
bgRgb(red: number, green: number, blue: number): this;
|
||||
|
||||
/**
|
||||
Use HSL values to set background color.
|
||||
*/
|
||||
bgHsl(hue: number, saturation: number, lightness: number): this;
|
||||
|
||||
/**
|
||||
Use HSV values to set background color.
|
||||
*/
|
||||
bgHsv(hue: number, saturation: number, value: number): this;
|
||||
|
||||
/**
|
||||
Use HWB values to set background color.
|
||||
*/
|
||||
bgHwb(hue: number, whiteness: number, blackness: number): this;
|
||||
|
||||
/**
|
||||
Modifier: Resets the current color chain.
|
||||
*/
|
||||
readonly reset: this;
|
||||
|
||||
/**
|
||||
Modifier: Make text bold.
|
||||
*/
|
||||
readonly bold: this;
|
||||
|
||||
/**
|
||||
Modifier: Emitting only a small amount of light.
|
||||
*/
|
||||
readonly dim: this;
|
||||
|
||||
/**
|
||||
Modifier: Make text italic. (Not widely supported)
|
||||
*/
|
||||
readonly italic: this;
|
||||
|
||||
/**
|
||||
Modifier: Make text underline. (Not widely supported)
|
||||
*/
|
||||
readonly underline: this;
|
||||
|
||||
/**
|
||||
Modifier: Inverse background and foreground colors.
|
||||
*/
|
||||
readonly inverse: this;
|
||||
|
||||
/**
|
||||
Modifier: Prints the text, but makes it invisible.
|
||||
*/
|
||||
readonly hidden: this;
|
||||
|
||||
/**
|
||||
Modifier: Puts a horizontal line through the center of the text. (Not widely supported)
|
||||
*/
|
||||
readonly strikethrough: this;
|
||||
|
||||
/**
|
||||
Modifier: Prints the text only when Chalk is enabled.
|
||||
Can be useful for things that are purely cosmetic.
|
||||
*/
|
||||
readonly visible: this;
|
||||
|
||||
readonly black: this;
|
||||
readonly red: this;
|
||||
readonly green: this;
|
||||
readonly yellow: this;
|
||||
readonly blue: this;
|
||||
readonly magenta: this;
|
||||
readonly cyan: this;
|
||||
readonly white: this;
|
||||
readonly gray: this;
|
||||
readonly grey: this;
|
||||
readonly blackBright: this;
|
||||
readonly redBright: this;
|
||||
readonly greenBright: this;
|
||||
readonly yellowBright: this;
|
||||
readonly blueBright: this;
|
||||
readonly magentaBright: this;
|
||||
readonly cyanBright: this;
|
||||
readonly whiteBright: this;
|
||||
|
||||
readonly bgBlack: this;
|
||||
readonly bgRed: this;
|
||||
readonly bgGreen: this;
|
||||
readonly bgYellow: this;
|
||||
readonly bgBlue: this;
|
||||
readonly bgMagenta: this;
|
||||
readonly bgCyan: this;
|
||||
readonly bgWhite: this;
|
||||
readonly bgBlackBright: this;
|
||||
readonly bgRedBright: this;
|
||||
readonly bgGreenBright: this;
|
||||
readonly bgYellowBright: this;
|
||||
readonly bgBlueBright: this;
|
||||
readonly bgMagentaBright: this;
|
||||
readonly bgCyanBright: this;
|
||||
readonly bgWhiteBright: this;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect whether the terminal supports color.
|
||||
*/
|
||||
export interface ColorSupport {
|
||||
/**
|
||||
* The color level used by Chalk.
|
||||
*/
|
||||
level: Level;
|
||||
Main Chalk object that allows to chain styles together.
|
||||
Call the last one as a method with a string argument.
|
||||
Order doesn't matter, and later styles take precedent in case of a conflict.
|
||||
This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`.
|
||||
*/
|
||||
declare const chalk: chalk.Chalk & {
|
||||
supportsColor: chalk.ColorSupport;
|
||||
Level: typeof LevelEnum;
|
||||
};
|
||||
|
||||
/**
|
||||
* 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 Chalk {
|
||||
(...text: unknown[]): string;
|
||||
|
||||
(text: TemplateStringsArray, ...placeholders: unknown[]): string;
|
||||
|
||||
/**
|
||||
* Return a new Chalk instance.
|
||||
*/
|
||||
Instance: Instance;
|
||||
|
||||
/**
|
||||
* Enable or disable Chalk.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
enabled: boolean;
|
||||
|
||||
/**
|
||||
* The color support for Chalk.
|
||||
* By default, color support is automatically detected based on the environment.
|
||||
*/
|
||||
level: Level;
|
||||
|
||||
/**
|
||||
* Use HEX value to set text color.
|
||||
*
|
||||
* @param color - Hexadecimal value representing the desired color.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* import chalk from 'chalk';
|
||||
*
|
||||
* chalk.hex('#DEADED');
|
||||
*/
|
||||
hex(color: string): this;
|
||||
|
||||
/**
|
||||
* Use keyword color value to set text color.
|
||||
*
|
||||
* @param color - Keyword value representing the desired color.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* import chalk from 'chalk';
|
||||
*
|
||||
* chalk.keyword('orange');
|
||||
*/
|
||||
keyword(color: string): this;
|
||||
|
||||
/**
|
||||
* Use RGB values to set text color.
|
||||
*/
|
||||
rgb(red: number, green: number, blue: number): this;
|
||||
|
||||
/**
|
||||
* Use HSL values to set text color.
|
||||
*/
|
||||
hsl(hue: number, saturation: number, lightness: number): this;
|
||||
|
||||
/**
|
||||
* Use HSV values to set text color.
|
||||
*/
|
||||
hsv(hue: number, saturation: number, value: number): this;
|
||||
|
||||
/**
|
||||
* Use HWB values to set text color.
|
||||
*/
|
||||
hwb(hue: number, whiteness: number, blackness: number): this;
|
||||
|
||||
/**
|
||||
* Use HEX value to set background color.
|
||||
*
|
||||
* @param color - Hexadecimal value representing the desired color.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* import chalk from 'chalk';
|
||||
*
|
||||
* chalk.bgHex('#DEADED');
|
||||
*/
|
||||
bgHex(color: string): this;
|
||||
|
||||
/**
|
||||
* Use keyword color value to set background color.
|
||||
*
|
||||
* @param color - Keyword value representing the desired color.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* import chalk from 'chalk';
|
||||
*
|
||||
* chalk.bgKeyword('orange');
|
||||
*/
|
||||
bgKeyword(color: string): this;
|
||||
|
||||
/**
|
||||
* Use RGB values to set background color.
|
||||
*/
|
||||
bgRgb(red: number, green: number, blue: number): this;
|
||||
|
||||
/**
|
||||
* Use HSL values to set background color.
|
||||
*/
|
||||
bgHsl(hue: number, saturation: number, lightness: number): this;
|
||||
|
||||
/**
|
||||
* Use HSV values to set background color.
|
||||
*/
|
||||
bgHsv(hue: number, saturation: number, value: number): this;
|
||||
|
||||
/**
|
||||
* Use HWB values to set background color.
|
||||
*/
|
||||
bgHwb(hue: number, whiteness: number, blackness: number): this;
|
||||
|
||||
/**
|
||||
* Modifier: Resets the current color chain.
|
||||
*/
|
||||
readonly reset: this;
|
||||
|
||||
/**
|
||||
* Modifier: Make text bold.
|
||||
*/
|
||||
readonly bold: this;
|
||||
|
||||
/**
|
||||
* Modifier: Emitting only a small amount of light.
|
||||
*/
|
||||
readonly dim: this;
|
||||
|
||||
/**
|
||||
* Modifier: Make text italic. (Not widely supported)
|
||||
*/
|
||||
readonly italic: this;
|
||||
|
||||
/**
|
||||
* Modifier: Make text underline. (Not widely supported)
|
||||
*/
|
||||
readonly underline: this;
|
||||
|
||||
/**
|
||||
* Modifier: Inverse background and foreground colors.
|
||||
*/
|
||||
readonly inverse: this;
|
||||
|
||||
/**
|
||||
* Modifier: Prints the text, but makes it invisible.
|
||||
*/
|
||||
readonly hidden: this;
|
||||
|
||||
/**
|
||||
* Modifier: Puts a horizontal line through the center of the text. (Not widely supported)
|
||||
*/
|
||||
readonly strikethrough: this;
|
||||
|
||||
/**
|
||||
* Modifier: Prints the text only when Chalk is enabled.
|
||||
* Can be useful for things that are purely cosmetic.
|
||||
*/
|
||||
readonly visible: this;
|
||||
|
||||
readonly black: this;
|
||||
readonly red: this;
|
||||
readonly green: this;
|
||||
readonly yellow: this;
|
||||
readonly blue: this;
|
||||
readonly magenta: this;
|
||||
readonly cyan: this;
|
||||
readonly white: this;
|
||||
readonly gray: this;
|
||||
readonly grey: this;
|
||||
readonly blackBright: this;
|
||||
readonly redBright: this;
|
||||
readonly greenBright: this;
|
||||
readonly yellowBright: this;
|
||||
readonly blueBright: this;
|
||||
readonly magentaBright: this;
|
||||
readonly cyanBright: this;
|
||||
readonly whiteBright: this;
|
||||
|
||||
readonly bgBlack: this;
|
||||
readonly bgRed: this;
|
||||
readonly bgGreen: this;
|
||||
readonly bgYellow: this;
|
||||
readonly bgBlue: this;
|
||||
readonly bgMagenta: this;
|
||||
readonly bgCyan: this;
|
||||
readonly bgWhite: this;
|
||||
readonly bgBlackBright: this;
|
||||
readonly bgRedBright: this;
|
||||
readonly bgGreenBright: this;
|
||||
readonly bgYellowBright: this;
|
||||
readonly bgBlueBright: this;
|
||||
readonly bgMagentaBright: this;
|
||||
readonly bgCyanBright: this;
|
||||
readonly bgWhiteBright: this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Main Chalk object that allows to chain styles together.
|
||||
* Call the last one as a method with a string argument.
|
||||
* Order doesn't matter, and later styles take precedent in case of a conflict.
|
||||
* This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`.
|
||||
*/
|
||||
declare const chalk: Chalk & {supportsColor: ColorSupport};
|
||||
|
||||
export default chalk;
|
||||
export = chalk;
|
||||
|
|
|
|||
1
index.js
1
index.js
|
|
@ -199,4 +199,3 @@ Object.defineProperties(Chalk.prototype, styles);
|
|||
|
||||
module.exports = Chalk(); // eslint-disable-line new-cap
|
||||
module.exports.supportsColor = stdoutColor;
|
||||
module.exports.default = module.exports; // For TypeScript
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
import {expectType} from 'tsd-check';
|
||||
import chalk, {Level, Chalk, ColorSupport} from '.';
|
||||
import {expectType} from 'tsd';
|
||||
import chalk = require('.');
|
||||
|
||||
// - Helpers -
|
||||
type colorReturn = Chalk & {supportsColor: ColorSupport};
|
||||
type colorReturn = chalk.Chalk & {supportsColor: chalk.ColorSupport};
|
||||
|
||||
// - Level -
|
||||
expectType<number>(Level.None);
|
||||
expectType<number>(Level.Basic);
|
||||
expectType<number>(Level.Ansi256);
|
||||
expectType<number>(Level.TrueColor);
|
||||
expectType<number>(chalk.Level.None);
|
||||
expectType<number>(chalk.Level.Basic);
|
||||
expectType<number>(chalk.Level.Ansi256);
|
||||
expectType<number>(chalk.Level.TrueColor);
|
||||
|
||||
// - supportsColor -
|
||||
expectType<boolean>(chalk.supportsColor.hasBasic);
|
||||
|
|
@ -17,11 +17,11 @@ expectType<boolean>(chalk.supportsColor.has16m);
|
|||
|
||||
// - Chalk -
|
||||
// -- Instance --
|
||||
expectType<Chalk>(new chalk.Instance({level: 1}));
|
||||
expectType<chalk.Chalk>(new chalk.Instance({level: 1}));
|
||||
|
||||
// -- Properties --
|
||||
expectType<boolean>(chalk.enabled);
|
||||
expectType<Level>(chalk.level);
|
||||
expectType<chalk.Level>(chalk.level);
|
||||
|
||||
// -- Template literal --
|
||||
expectType<string>(chalk``);
|
||||
|
|
|
|||
15
package.json
15
package.json
|
|
@ -8,7 +8,7 @@
|
|||
"node": ">=8"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "xo && nyc ava && tsd-check && flow",
|
||||
"test": "xo && nyc ava && tsd && flow",
|
||||
"bench": "matcha benchmark.js"
|
||||
},
|
||||
"files": [
|
||||
|
|
@ -46,19 +46,18 @@
|
|||
"supports-color": "^6.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sindresorhus/tsconfig": "^0.2.1",
|
||||
"ava": "^1.3.1",
|
||||
"@sindresorhus/tsconfig": "^0.3.0",
|
||||
"ava": "^1.4.1",
|
||||
"coveralls": "^3.0.3",
|
||||
"execa": "^1.0.0",
|
||||
"flow-bin": "^0.94.0",
|
||||
"flow-bin": "^0.98.0",
|
||||
"import-fresh": "^3.0.0",
|
||||
"matcha": "^0.7.0",
|
||||
"nyc": "^13.3.0",
|
||||
"resolve-from": "^4.0.0",
|
||||
"tsd-check": "^0.3.0",
|
||||
"nyc": "^14.0.0",
|
||||
"resolve-from": "^5.0.0",
|
||||
"tsd": "^0.7.2",
|
||||
"xo": "^0.24.0"
|
||||
},
|
||||
"types": "index.d.ts",
|
||||
"xo": {
|
||||
"ignores": [
|
||||
"test/_flow.js"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue