Skip to content

Commit

Permalink
Get ready for ESM
Browse files Browse the repository at this point in the history
  • Loading branch information
LitoMore committed Jan 25, 2021
1 parent 5bff0f8 commit 4e33315
Show file tree
Hide file tree
Showing 6 changed files with 212 additions and 76 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
language: node_js

node_js:
- 'node'
- '14'
- '12'
- '10'

after_success:
- './node_modules/.bin/nyc report --reporter=text-lcov | ./node_modules/.bin/coveralls'
6 changes: 2 additions & 4 deletions example.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
'use strict';

const chalk = require('chalk');
const chalkPipe = require('.');
import chalk from 'chalk';
import chalkPipe from './index.js';

const fakeChalk = new chalk.constructor({enabled: false});

Expand Down
44 changes: 17 additions & 27 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,27 @@
'use strict';
import chalk from 'chalk';
import {modifiers, normalColors, cssColorNames} from './styles.js';

const chalk = require('chalk');
const cssColorNames = require('css-color-names');

const {modifiers, normalColors} = require('./styles');

function isBackground(style) {
const isBackground = style => {
return Boolean(style.match(/^bg.+$/));
}
};

function isNormalColor(style) {
const isNormalColor = style => {
return Boolean(style.match(`^(${normalColors.join('|')})$`));
}
};

function isModifier(style) {
const isModifier = style => {
return Boolean(style.match(`^(${modifiers.join('|')})$`));
}
};

function isHexColor(style) {
const isHexColor = style => {
return Boolean(style.match(/^#[\dA-Fa-f]{6}$/));
}
};

function isKeyword(style) {
const isKeyword = style => {
return Boolean(cssColorNames[style]);
}
};

module.exports = function (stylePipe, customChalk) {
const chalkPipe = (stylePipe, customChalk) => {
let paint = customChalk || chalk;

if (!stylePipe || stylePipe.length === 0) {
Expand All @@ -52,11 +48,7 @@ module.exports = function (stylePipe, customChalk) {

// Hex
if (isHexColor(style)) {
if (isBg) {
paint = paint.bgHex(style);
} else {
paint = paint.hex(style);
}
paint = isBg ? paint.bgHex(style) : paint.hex(style);

continue;
}
Expand All @@ -72,15 +64,13 @@ module.exports = function (stylePipe, customChalk) {

continue;
} else if (isKeyword(style)) {
if (isBg) {
paint = paint.bgKeyword(style);
} else {
paint = paint.keyword(style);
}
paint = isBg ? paint.bgKeyword(style) : paint.keyword(style);

continue;
}
}

return paint;
};

export default chalkPipe;
17 changes: 10 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
{
"name": "chalk-pipe",
"version": "4.0.0",
"description": "Apply a color scheme in a style pipe",
"main": "index.js",
"description": "Create chalk style schemes with simpler style strings",
"type": "module",
"exports": "./index.js",
"engines": {
"node": ">=12"
},
"scripts": {
"test": "xo && nyc ava"
},
Expand All @@ -17,13 +21,12 @@
},
"homepage": "https://github.com/LitoMore/chalk-pipe#readme",
"devDependencies": {
"ava": "^3.8.1",
"ava": "^3.15.0",
"coveralls": "^3.1.0",
"nyc": "^15.0.1",
"xo": "^0.30.0"
"nyc": "^15.1.0",
"xo": "^0.37.1"
},
"dependencies": {
"chalk": "^4.0.0",
"css-color-names": "^1.0.0"
"chalk": "^4.1.0"
}
}
207 changes: 178 additions & 29 deletions styles.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,180 @@
module.exports = {
modifiers: [
'reset',
'bold',
'dim',
'italic',
'underline',
'inverse',
'hidden',
'strikethrough'
],
export const modifiers = [
'reset',
'bold',
'dim',
'italic',
'underline',
'inverse',
'hidden',
'strikethrough'
];

normalColors: [
'black',
'red',
'green',
'yellow',
'blue',
'magenta',
'cyan',
'white',
'gray',
'redBright',
'greenBright',
'yellowBright',
'blueBright',
'magentaBright',
'cyanBright',
'whiteBright'
]
export const normalColors = [
'black',
'red',
'green',
'yellow',
'blue',
'magenta',
'cyan',
'white',
'gray',
'redBright',
'greenBright',
'yellowBright',
'blueBright',
'magentaBright',
'cyanBright',
'whiteBright'
];

export const cssColorNames = {
aliceblue: '#f0f8ff',
antiquewhite: '#faebd7',
aqua: '#00ffff',
aquamarine: '#7fffd4',
azure: '#f0ffff',
beige: '#f5f5dc',
bisque: '#ffe4c4',
black: '#000000',
blanchedalmond: '#ffebcd',
blue: '#0000ff',
blueviolet: '#8a2be2',
brown: '#a52a2a',
burlywood: '#deb887',
cadetblue: '#5f9ea0',
chartreuse: '#7fff00',
chocolate: '#d2691e',
coral: '#ff7f50',
cornflowerblue: '#6495ed',
cornsilk: '#fff8dc',
crimson: '#dc143c',
cyan: '#00ffff',
darkblue: '#00008b',
darkcyan: '#008b8b',
darkgoldenrod: '#b8860b',
darkgray: '#a9a9a9',
darkgreen: '#006400',
darkgrey: '#a9a9a9',
darkkhaki: '#bdb76b',
darkmagenta: '#8b008b',
darkolivegreen: '#556b2f',
darkorange: '#ff8c00',
darkorchid: '#9932cc',
darkred: '#8b0000',
darksalmon: '#e9967a',
darkseagreen: '#8fbc8f',
darkslateblue: '#483d8b',
darkslategray: '#2f4f4f',
darkslategrey: '#2f4f4f',
darkturquoise: '#00ced1',
darkviolet: '#9400d3',
deeppink: '#ff1493',
deepskyblue: '#00bfff',
dimgray: '#696969',
dimgrey: '#696969',
dodgerblue: '#1e90ff',
firebrick: '#b22222',
floralwhite: '#fffaf0',
forestgreen: '#228b22',
fuchsia: '#ff00ff',
gainsboro: '#dcdcdc',
ghostwhite: '#f8f8ff',
goldenrod: '#daa520',
gold: '#ffd700',
gray: '#808080',
green: '#008000',
greenyellow: '#adff2f',
grey: '#808080',
honeydew: '#f0fff0',
hotpink: '#ff69b4',
indianred: '#cd5c5c',
indigo: '#4b0082',
ivory: '#fffff0',
khaki: '#f0e68c',
lavenderblush: '#fff0f5',
lavender: '#e6e6fa',
lawngreen: '#7cfc00',
lemonchiffon: '#fffacd',
lightblue: '#add8e6',
lightcoral: '#f08080',
lightcyan: '#e0ffff',
lightgoldenrodyellow: '#fafad2',
lightgray: '#d3d3d3',
lightgreen: '#90ee90',
lightgrey: '#d3d3d3',
lightpink: '#ffb6c1',
lightsalmon: '#ffa07a',
lightseagreen: '#20b2aa',
lightskyblue: '#87cefa',
lightslategray: '#778899',
lightslategrey: '#778899',
lightsteelblue: '#b0c4de',
lightyellow: '#ffffe0',
lime: '#00ff00',
limegreen: '#32cd32',
linen: '#faf0e6',
magenta: '#ff00ff',
maroon: '#800000',
mediumaquamarine: '#66cdaa',
mediumblue: '#0000cd',
mediumorchid: '#ba55d3',
mediumpurple: '#9370db',
mediumseagreen: '#3cb371',
mediumslateblue: '#7b68ee',
mediumspringgreen: '#00fa9a',
mediumturquoise: '#48d1cc',
mediumvioletred: '#c71585',
midnightblue: '#191970',
mintcream: '#f5fffa',
mistyrose: '#ffe4e1',
moccasin: '#ffe4b5',
navajowhite: '#ffdead',
navy: '#000080',
oldlace: '#fdf5e6',
olive: '#808000',
olivedrab: '#6b8e23',
orange: '#ffa500',
orangered: '#ff4500',
orchid: '#da70d6',
palegoldenrod: '#eee8aa',
palegreen: '#98fb98',
paleturquoise: '#afeeee',
palevioletred: '#db7093',
papayawhip: '#ffefd5',
peachpuff: '#ffdab9',
peru: '#cd853f',
pink: '#ffc0cb',
plum: '#dda0dd',
powderblue: '#b0e0e6',
purple: '#800080',
rebeccapurple: '#663399',
red: '#ff0000',
rosybrown: '#bc8f8f',
royalblue: '#4169e1',
saddlebrown: '#8b4513',
salmon: '#fa8072',
sandybrown: '#f4a460',
seagreen: '#2e8b57',
seashell: '#fff5ee',
sienna: '#a0522d',
silver: '#c0c0c0',
skyblue: '#87ceeb',
slateblue: '#6a5acd',
slategray: '#708090',
slategrey: '#708090',
snow: '#fffafa',
springgreen: '#00ff7f',
steelblue: '#4682b4',
tan: '#d2b48c',
teal: '#008080',
thistle: '#d8bfd8',
tomato: '#ff6347',
turquoise: '#40e0d0',
violet: '#ee82ee',
wheat: '#f5deb3',
white: '#ffffff',
whitesmoke: '#f5f5f5',
yellow: '#ffff00',
yellowgreen: '#9acd32'
};
12 changes: 4 additions & 8 deletions test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
'use strict';

const test = require('ava');
const chalk = require('chalk');
const cssColorNames = require('css-color-names');

const {modifiers, normalColors} = require('./styles');
const chalkPipe = require('.');
import test from 'ava';
import chalk from 'chalk';
import {modifiers, normalColors, cssColorNames} from './styles.js';
import chalkPipe from './index.js';

chalk.enabled = true;

Expand Down

0 comments on commit 4e33315

Please sign in to comment.