Require Node.js 12 and move to ESM
This commit is contained in:
parent
4dab5e1fb6
commit
fa16f4ec37
22 changed files with 362 additions and 412 deletions
3
.github/workflows/main.yml
vendored
3
.github/workflows/main.yml
vendored
|
|
@ -12,10 +12,9 @@ jobs:
|
|||
node-version:
|
||||
- 14
|
||||
- 12
|
||||
- 10
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- run: npm install
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
/* globals suite, bench */
|
||||
'use strict';
|
||||
const chalk = require('.');
|
||||
import chalk from './index.js';
|
||||
|
||||
suite('chalk', () => {
|
||||
const chalkRed = chalk.red;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
'use strict';
|
||||
const chalk = require('..');
|
||||
import chalk from '../index.js';
|
||||
|
||||
const ignoreChars = /[^!-~]/g;
|
||||
|
||||
|
|
@ -17,7 +16,7 @@ function rainbow(string, offset) {
|
|||
let hue = offset % 360;
|
||||
const characters = [];
|
||||
for (const character of string) {
|
||||
if (character.match(ignoreChars)) {
|
||||
if (ignoreChars.test(character)) {
|
||||
characters.push(character);
|
||||
} else {
|
||||
characters.push(chalk.hsl(hue, 100, 50)(character));
|
||||
|
|
@ -30,8 +29,8 @@ function rainbow(string, offset) {
|
|||
|
||||
async function animateString(string) {
|
||||
console.log();
|
||||
for (let i = 0; i < 360 * 5; i++) {
|
||||
console.log('\u001B[1F\u001B[G', rainbow(string, i));
|
||||
for (let index = 0; index < 360 * 5; index++) {
|
||||
console.log('\u001B[1F\u001B[G', rainbow(string, index));
|
||||
await delay(2); // eslint-disable-line no-await-in-loop
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
'use strict';
|
||||
const styles = require('ansi-styles');
|
||||
const chalk = require('..');
|
||||
import styles from 'ansi-styles';
|
||||
import chalk from '../index.js';
|
||||
|
||||
// Generates screenshot
|
||||
for (const key of Object.keys(styles)) {
|
||||
|
|
|
|||
56
index.d.ts
vendored
56
index.d.ts
vendored
|
|
@ -3,7 +3,7 @@ Basic foreground colors.
|
|||
|
||||
[More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
|
||||
*/
|
||||
declare type ForegroundColor =
|
||||
export type ForegroundColor =
|
||||
| 'black'
|
||||
| 'red'
|
||||
| 'green'
|
||||
|
|
@ -28,7 +28,7 @@ Basic background colors.
|
|||
|
||||
[More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
|
||||
*/
|
||||
declare type BackgroundColor =
|
||||
export type BackgroundColor =
|
||||
| 'bgBlack'
|
||||
| 'bgRed'
|
||||
| 'bgGreen'
|
||||
|
|
@ -53,9 +53,9 @@ Basic colors.
|
|||
|
||||
[More colors here.](https://github.com/chalk/chalk/blob/main/readme.md#256-and-truecolor-color-support)
|
||||
*/
|
||||
declare type Color = ForegroundColor | BackgroundColor;
|
||||
export type Color = ForegroundColor | BackgroundColor;
|
||||
|
||||
declare type Modifiers =
|
||||
export type Modifiers =
|
||||
| 'reset'
|
||||
| 'bold'
|
||||
| 'dim'
|
||||
|
|
@ -66,7 +66,6 @@ declare type Modifiers =
|
|||
| 'strikethrough'
|
||||
| 'visible';
|
||||
|
||||
declare namespace chalk {
|
||||
/**
|
||||
Levels:
|
||||
- `0` - All colors disabled.
|
||||
|
|
@ -74,9 +73,9 @@ declare namespace chalk {
|
|||
- `2` - ANSI 256 colors support.
|
||||
- `3` - Truecolor 16 million colors support.
|
||||
*/
|
||||
type Level = 0 | 1 | 2 | 3;
|
||||
export type ColorSupportLevel = 0 | 1 | 2 | 3;
|
||||
|
||||
interface Options {
|
||||
export interface Options {
|
||||
/**
|
||||
Specify the color support for Chalk.
|
||||
|
||||
|
|
@ -88,22 +87,22 @@ declare namespace chalk {
|
|||
- `2` - ANSI 256 colors support.
|
||||
- `3` - Truecolor 16 million colors support.
|
||||
*/
|
||||
level?: Level;
|
||||
readonly level?: ColorSupportLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
Return a new Chalk instance.
|
||||
*/
|
||||
type Instance = new (options?: Options) => Chalk;
|
||||
export type ChalkInstance = new (options?: Options) => Chalk;
|
||||
|
||||
/**
|
||||
Detect whether the terminal supports color.
|
||||
*/
|
||||
interface ColorSupport {
|
||||
export interface ColorSupport {
|
||||
/**
|
||||
The color level used by Chalk.
|
||||
*/
|
||||
level: Level;
|
||||
level: ColorSupportLevel;
|
||||
|
||||
/**
|
||||
Return whether Chalk supports basic 16 colors.
|
||||
|
|
@ -129,7 +128,7 @@ declare namespace chalk {
|
|||
|
||||
@example
|
||||
```
|
||||
import chalk = require('chalk');
|
||||
import chalk from 'chalk';
|
||||
|
||||
log(chalk`
|
||||
CPU: {red ${cpu.totalPercent}%}
|
||||
|
|
@ -140,7 +139,7 @@ declare namespace chalk {
|
|||
|
||||
@example
|
||||
```
|
||||
import chalk = require('chalk');
|
||||
import chalk from 'chalk';
|
||||
|
||||
log(chalk.red.bgBlack`2 + 3 = {bold ${2 + 3}}`)
|
||||
```
|
||||
|
|
@ -150,11 +149,11 @@ declare namespace chalk {
|
|||
(...text: unknown[]): string;
|
||||
}
|
||||
|
||||
interface Chalk extends ChalkFunction {
|
||||
export interface Chalk extends ChalkFunction {
|
||||
/**
|
||||
Return a new Chalk instance.
|
||||
*/
|
||||
Instance: Instance;
|
||||
Instance: ChalkInstance;
|
||||
|
||||
/**
|
||||
The color support for Chalk.
|
||||
|
|
@ -167,7 +166,7 @@ declare namespace chalk {
|
|||
- `2` - ANSI 256 colors support.
|
||||
- `3` - Truecolor 16 million colors support.
|
||||
*/
|
||||
level: Level;
|
||||
level: ColorSupportLevel;
|
||||
|
||||
/**
|
||||
Use HEX value to set text color.
|
||||
|
|
@ -176,7 +175,7 @@ declare namespace chalk {
|
|||
|
||||
@example
|
||||
```
|
||||
import chalk = require('chalk');
|
||||
import chalk from 'chalk';
|
||||
|
||||
chalk.hex('#DEADED');
|
||||
```
|
||||
|
|
@ -190,7 +189,7 @@ declare namespace chalk {
|
|||
|
||||
@example
|
||||
```
|
||||
import chalk = require('chalk');
|
||||
import chalk from 'chalk';
|
||||
|
||||
chalk.keyword('orange');
|
||||
```
|
||||
|
|
@ -237,7 +236,7 @@ declare namespace chalk {
|
|||
|
||||
@example
|
||||
```
|
||||
import chalk = require('chalk');
|
||||
import chalk from 'chalk';
|
||||
|
||||
chalk.bgHex('#DEADED');
|
||||
```
|
||||
|
|
@ -251,7 +250,7 @@ declare namespace chalk {
|
|||
|
||||
@example
|
||||
```
|
||||
import chalk = require('chalk');
|
||||
import chalk from 'chalk';
|
||||
|
||||
chalk.bgKeyword('orange');
|
||||
```
|
||||
|
|
@ -394,22 +393,19 @@ declare namespace chalk {
|
|||
readonly bgCyanBright: Chalk;
|
||||
readonly bgWhiteBright: Chalk;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
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 & chalk.ChalkFunction & {
|
||||
supportsColor: chalk.ColorSupport | false;
|
||||
Level: chalk.Level;
|
||||
Color: Color;
|
||||
ForegroundColor: ForegroundColor;
|
||||
BackgroundColor: BackgroundColor;
|
||||
Modifiers: Modifiers;
|
||||
stderr: chalk.Chalk & {supportsColor: chalk.ColorSupport | false};
|
||||
declare const chalk: Chalk & ChalkFunction & {
|
||||
supportsColor: ColorSupport | false;
|
||||
stderr: Chalk & {supportsColor: ColorSupport | false};
|
||||
};
|
||||
|
||||
export = chalk;
|
||||
export default chalk;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import {expectType, expectAssignable, expectError} from 'tsd';
|
||||
import chalk = require('.');
|
||||
import chalk, {Chalk, Color, ColorSupport, ColorSupportLevel} from './index.js';
|
||||
|
||||
// - Helpers -
|
||||
type colorReturn = chalk.Chalk & {supportsColor?: never};
|
||||
type colorReturn = Chalk & {supportsColor?: never};
|
||||
|
||||
// - supportsColor -
|
||||
expectType<chalk.ColorSupport | false>(chalk.supportsColor);
|
||||
expectType<ColorSupport | false>(chalk.supportsColor);
|
||||
if (chalk.supportsColor) {
|
||||
expectType<boolean>(chalk.supportsColor.hasBasic);
|
||||
expectType<boolean>(chalk.supportsColor.has256);
|
||||
|
|
@ -13,8 +13,8 @@ if (chalk.supportsColor) {
|
|||
}
|
||||
|
||||
// - stderr -
|
||||
expectAssignable<chalk.Chalk>(chalk.stderr);
|
||||
expectType<chalk.ColorSupport | false>(chalk.stderr.supportsColor);
|
||||
expectAssignable<Chalk>(chalk.stderr);
|
||||
expectType<ColorSupport | false>(chalk.stderr.supportsColor);
|
||||
if (chalk.stderr.supportsColor) {
|
||||
expectType<boolean>(chalk.stderr.supportsColor.hasBasic);
|
||||
expectType<boolean>(chalk.stderr.supportsColor.has256);
|
||||
|
|
@ -29,10 +29,10 @@ expectError(chalk.reset.supportsColor);
|
|||
|
||||
// - Chalk -
|
||||
// -- Instance --
|
||||
expectType<chalk.Chalk>(new chalk.Instance({level: 1}));
|
||||
expectType<Chalk>(new chalk.Instance({level: 1}));
|
||||
|
||||
// -- Properties --
|
||||
expectType<chalk.Level>(chalk.level);
|
||||
expectType<ColorSupportLevel>(chalk.level);
|
||||
|
||||
// -- Template literal --
|
||||
expectType<string>(chalk``);
|
||||
|
|
@ -158,5 +158,5 @@ expectType<string>(chalk.red.bgGreen.bold`Hello {italic.blue ${name}}`);
|
|||
expectType<string>(chalk.strikethrough.cyanBright.bgBlack`Works with {reset {bold numbers}} {bold.red ${1}}`);
|
||||
|
||||
// -- Color types ==
|
||||
expectAssignable<typeof chalk.Color>('red');
|
||||
expectError<typeof chalk.Color>('hotpink');
|
||||
expectAssignable<Color>('red');
|
||||
expectError<Color>('hotpink');
|
||||
|
|
|
|||
2
license
2
license
|
|
@ -1,6 +1,6 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
|
|
|
|||
21
package.json
21
package.json
|
|
@ -5,9 +5,10 @@
|
|||
"license": "MIT",
|
||||
"repository": "chalk/chalk",
|
||||
"funding": "https://github.com/chalk/chalk?sponsor=1",
|
||||
"main": "source",
|
||||
"type": "module",
|
||||
"exports": "./source/index.js",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
"node": ">=12"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "xo && nyc ava && tsd",
|
||||
|
|
@ -42,26 +43,20 @@
|
|||
],
|
||||
"dependencies": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
"supports-color": "^9.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"ava": "^2.4.0",
|
||||
"ava": "^3.15.0",
|
||||
"coveralls": "^3.1.0",
|
||||
"execa": "^4.0.3",
|
||||
"import-fresh": "^3.2.1",
|
||||
"execa": "^5.0.0",
|
||||
"matcha": "^0.7.0",
|
||||
"nyc": "^15.1.0",
|
||||
"resolve-from": "^5.0.0",
|
||||
"tsd": "^0.13.1",
|
||||
"xo": "^0.33.1"
|
||||
"tsd": "^0.14.0",
|
||||
"xo": "^0.38.2"
|
||||
},
|
||||
"xo": {
|
||||
"rules": {
|
||||
"unicorn/prefer-string-slice": "off",
|
||||
"unicorn/prefer-includes": "off",
|
||||
"@typescript-eslint/member-ordering": "off",
|
||||
"no-redeclare": "off",
|
||||
"unicorn/string-content": "off",
|
||||
"unicorn/better-regex": "off"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
17
readme.md
17
readme.md
|
|
@ -79,7 +79,7 @@ $ npm install chalk
|
|||
## Usage
|
||||
|
||||
```js
|
||||
const chalk = require('chalk');
|
||||
import chalk from 'chalk';
|
||||
|
||||
console.log(chalk.blue('Hello world!'));
|
||||
```
|
||||
|
|
@ -87,7 +87,8 @@ console.log(chalk.blue('Hello world!'));
|
|||
Chalk comes with an easy to use composable API where you just chain and nest the styles you want.
|
||||
|
||||
```js
|
||||
const chalk = require('chalk');
|
||||
import chalk from 'chalk';
|
||||
|
||||
const log = console.log;
|
||||
|
||||
// Combine styled and normal strings
|
||||
|
|
@ -132,7 +133,7 @@ log(chalk.hex('#DEADED').bold('Bold gray!'));
|
|||
Easily define your own themes:
|
||||
|
||||
```js
|
||||
const chalk = require('chalk');
|
||||
import chalk from 'chalk';
|
||||
|
||||
const error = chalk.bold.red;
|
||||
const warning = chalk.keyword('orange');
|
||||
|
|
@ -144,6 +145,8 @@ console.log(warning('Warning!'));
|
|||
Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args):
|
||||
|
||||
```js
|
||||
import chalk from 'chalk';
|
||||
|
||||
const name = 'Sindre';
|
||||
console.log(chalk.green('Hello %s'), name);
|
||||
//=> 'Hello Sindre'
|
||||
|
|
@ -168,7 +171,9 @@ Color support is automatically detected, but you can override it by setting the
|
|||
If you need to change this in a reusable module, create a new instance:
|
||||
|
||||
```js
|
||||
const ctx = new chalk.Instance({level: 0});
|
||||
import chalk from 'chalk';
|
||||
|
||||
const customChalk = new chalk.Instance({level: 0});
|
||||
```
|
||||
|
||||
| Level | Description |
|
||||
|
|
@ -247,7 +252,7 @@ Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=
|
|||
Chalk can be used as a [tagged template literal](https://exploringjs.com/es6/ch_template-literals.html#_tagged-template-literals).
|
||||
|
||||
```js
|
||||
const chalk = require('chalk');
|
||||
import chalk from 'chalk';
|
||||
|
||||
const miles = 18;
|
||||
const calculateFeet = miles => miles * 5280;
|
||||
|
|
@ -263,6 +268,8 @@ Blocks are delimited by an opening curly brace (`{`), a style, some content, and
|
|||
Template styles are chained exactly like normal Chalk styles. The following three statements are equivalent:
|
||||
|
||||
```js
|
||||
import chalk from 'chalk';
|
||||
|
||||
console.log(chalk.bold.rgb(10, 100, 200)('Hello!'));
|
||||
console.log(chalk.bold.rgb(10, 100, 200)`Hello!`);
|
||||
console.log(chalk`{bold.rgb(10,100,200) Hello!}`);
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
'use strict';
|
||||
const ansiStyles = require('ansi-styles');
|
||||
const {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');
|
||||
const {
|
||||
import ansiStyles from 'ansi-styles';
|
||||
import supportsColor from 'supports-color';
|
||||
import {
|
||||
stringReplaceAll,
|
||||
stringEncaseCRLFWithFirstIndex
|
||||
} = require('./util');
|
||||
} from './util.js';
|
||||
import template from './templates.js';
|
||||
|
||||
const {stdout: stdoutColor, stderr: stderrColor} = supportsColor;
|
||||
const {isArray} = Array;
|
||||
|
||||
// `supportsColor.level` → `ansiStyles.color[name]` mapping
|
||||
|
|
@ -168,7 +169,7 @@ const applyStyle = (self, string) => {
|
|||
}
|
||||
|
||||
const {openAll, closeAll} = styler;
|
||||
if (string.indexOf('\u001B') !== -1) {
|
||||
if (string.includes('\u001B')) {
|
||||
while (styler !== undefined) {
|
||||
// Replace any instances already present with a re-opening code
|
||||
// otherwise only the part of the string until said closing code
|
||||
|
|
@ -190,7 +191,6 @@ const applyStyle = (self, string) => {
|
|||
return openAll + string + closeAll;
|
||||
};
|
||||
|
||||
let template;
|
||||
const chalkTag = (chalk, ...strings) => {
|
||||
const [firstString] = strings;
|
||||
|
||||
|
|
@ -210,10 +210,6 @@ const chalkTag = (chalk, ...strings) => {
|
|||
);
|
||||
}
|
||||
|
||||
if (template === undefined) {
|
||||
template = require('./templates');
|
||||
}
|
||||
|
||||
return template(chalk, parts.join(''));
|
||||
};
|
||||
|
||||
|
|
@ -224,4 +220,4 @@ chalk.supportsColor = stdoutColor;
|
|||
chalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap
|
||||
chalk.stderr.supportsColor = stderrColor;
|
||||
|
||||
module.exports = chalk;
|
||||
export default chalk;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
'use strict';
|
||||
const TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
|
||||
const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
|
||||
const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
|
||||
|
|
@ -62,7 +61,7 @@ function parseStyle(style) {
|
|||
|
||||
if (matches[2]) {
|
||||
const args = parseArguments(name, matches[2]);
|
||||
results.push([name].concat(args));
|
||||
results.push([name, ...args]);
|
||||
} else {
|
||||
results.push([name]);
|
||||
}
|
||||
|
|
@ -96,7 +95,7 @@ function buildStyle(chalk, styles) {
|
|||
return current;
|
||||
}
|
||||
|
||||
module.exports = (chalk, temporary) => {
|
||||
export default function template(chalk, temporary) {
|
||||
const styles = [];
|
||||
const chunks = [];
|
||||
let chunk = [];
|
||||
|
|
@ -126,9 +125,9 @@ module.exports = (chalk, temporary) => {
|
|||
chunks.push(chunk.join(''));
|
||||
|
||||
if (styles.length > 0) {
|
||||
const errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`;
|
||||
throw new Error(errMessage);
|
||||
const errorMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`;
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
|
||||
return chunks.join('');
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
'use strict';
|
||||
|
||||
const stringReplaceAll = (string, substring, replacer) => {
|
||||
export function stringReplaceAll(string, substring, replacer) {
|
||||
let index = string.indexOf(substring);
|
||||
if (index === -1) {
|
||||
return string;
|
||||
|
|
@ -15,11 +13,11 @@ const stringReplaceAll = (string, substring, replacer) => {
|
|||
index = string.indexOf(substring, endIndex);
|
||||
} while (index !== -1);
|
||||
|
||||
returnValue += string.substr(endIndex);
|
||||
returnValue += string.slice(endIndex);
|
||||
return returnValue;
|
||||
};
|
||||
}
|
||||
|
||||
const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {
|
||||
export function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
|
||||
let endIndex = 0;
|
||||
let returnValue = '';
|
||||
do {
|
||||
|
|
@ -29,11 +27,6 @@ const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {
|
|||
index = string.indexOf('\n', endIndex);
|
||||
} while (index !== -1);
|
||||
|
||||
returnValue += string.substr(endIndex);
|
||||
returnValue += string.slice(endIndex);
|
||||
return returnValue;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
stringReplaceAll,
|
||||
stringEncaseCRLFWithFirstIndex
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
'use strict';
|
||||
const chalk = require('../source');
|
||||
import chalk from '../source/index.js';
|
||||
|
||||
console.log(`${chalk.hex('#ff6159')('testout')} ${chalk.stderr.hex('#ff6159')('testerr')}`);
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
'use strict';
|
||||
const resolveFrom = require('resolve-from');
|
||||
|
||||
const DEFAULT = {
|
||||
stdout: {
|
||||
level: 3,
|
||||
hasBasic: true,
|
||||
has256: true,
|
||||
has16m: true
|
||||
},
|
||||
stderr: {
|
||||
level: 3,
|
||||
hasBasic: true,
|
||||
has256: true,
|
||||
has16m: true
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = (dir, override) => {
|
||||
require.cache[resolveFrom(dir, 'supports-color')] = {exports: override || DEFAULT};
|
||||
};
|
||||
|
|
@ -1,9 +1,8 @@
|
|||
import test from 'ava';
|
||||
import chalk from '../source/index.js';
|
||||
|
||||
// Spoof supports-color
|
||||
require('./_supports-color')(__dirname);
|
||||
|
||||
const chalk = require('../source');
|
||||
chalk.level = 3;
|
||||
chalk.stderr.level = 3;
|
||||
|
||||
console.log('TERM:', process.env.TERM || '[none]');
|
||||
console.log('platform:', process.platform || '[unknown]');
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import test from 'ava';
|
||||
|
||||
const chalk = require('../source');
|
||||
import chalk from '../source/index.js';
|
||||
|
||||
test('Chalk.constructor should throw an expected error', t => {
|
||||
const expectedError = t.throws(() => {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
import test from 'ava';
|
||||
import chalk from '../source/index.js';
|
||||
|
||||
// Spoof supports-color
|
||||
require('./_supports-color')(__dirname);
|
||||
|
||||
const chalk = require('../source');
|
||||
chalk.level = 1;
|
||||
|
||||
test('create an isolated context where colors can be disabled (by level)', t => {
|
||||
const instance = new chalk.Instance({level: 0});
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
import path from 'path';
|
||||
import {fileURLToPath} from 'url';
|
||||
import test from 'ava';
|
||||
import execa from 'execa';
|
||||
import chalk from '../source/index.js';
|
||||
|
||||
// Spoof supports-color
|
||||
require('./_supports-color')(__dirname);
|
||||
|
||||
const chalk = require('../source');
|
||||
chalk.level = 1;
|
||||
|
||||
test('don\'t output colors when manually disabled', t => {
|
||||
const oldLevel = chalk.level;
|
||||
|
|
@ -40,6 +38,6 @@ test('propagate enable/disable changes from child colors', t => {
|
|||
});
|
||||
|
||||
test('disable colors if they are not supported', async t => {
|
||||
const {stdout} = await execa.node(path.join(__dirname, '_fixture'));
|
||||
const {stdout} = await execa.node(fileURLToPath(new URL('./_fixture.js', import.meta.url)));
|
||||
t.is(stdout, 'testout testerr');
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,22 +1,22 @@
|
|||
import test from 'ava';
|
||||
import chalk from '../source/index.js';
|
||||
|
||||
// TODO: Do this when ESM supports loader hooks
|
||||
// Spoof supports-color
|
||||
require('./_supports-color')(__dirname, {
|
||||
stdout: {
|
||||
level: 0,
|
||||
hasBasic: false,
|
||||
has256: false,
|
||||
has16m: false
|
||||
},
|
||||
stderr: {
|
||||
level: 0,
|
||||
hasBasic: false,
|
||||
has256: false,
|
||||
has16m: false
|
||||
}
|
||||
});
|
||||
|
||||
const chalk = require('../source');
|
||||
// require('./_supports-color')(__dirname, {
|
||||
// stdout: {
|
||||
// level: 0,
|
||||
// hasBasic: false,
|
||||
// has256: false,
|
||||
// has16m: false
|
||||
// },
|
||||
// stderr: {
|
||||
// level: 0,
|
||||
// hasBasic: false,
|
||||
// has256: false,
|
||||
// has16m: false
|
||||
// }
|
||||
// });
|
||||
|
||||
test('colors can be forced by using chalk.level', t => {
|
||||
chalk.level = 1;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
/* eslint-disable unicorn/no-hex-escape */
|
||||
import test from 'ava';
|
||||
import chalk from '../source/index.js';
|
||||
|
||||
// Spoof supports-color
|
||||
require('./_supports-color')(__dirname);
|
||||
|
||||
const chalk = require('../source');
|
||||
chalk.level = 1;
|
||||
|
||||
test('return an empty string for an empty literal', t => {
|
||||
const instance = new chalk.Instance();
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
import test from 'ava';
|
||||
import chalk from '../source/index.js';
|
||||
|
||||
// Spoof supports-color
|
||||
require('./_supports-color')(__dirname);
|
||||
|
||||
const chalk = require('../source');
|
||||
chalk.level = 1;
|
||||
|
||||
test('visible: normal output when level > 0', t => {
|
||||
const instance = new chalk.Instance({level: 3});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue