Package Exports
- @mongez/copper
- @mongez/copper/cjs/index.js
- @mongez/copper/esm/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@mongez/copper) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Copper
Copper is a package that is used to display variant CLI output messages.
Features
- Node.js v6+ & browsers support. Support for both CJS and ESM projects.
- TypeScript type declarations included.
NO_COLORfriendly.+20colors are supported in variant styles.
Installation
yarn add @mongez/copper
Or
npm i @mongez/copper
Using Colors
Colors are originally copied from picocolors but added many colors and styles for it.
Copper provides an object which includes a variety of text coloring and formatting functions
import { colors } from "@mongez/copper";The object includes following coloring functions: black, red, green, yellow, blue, magenta, cyan, white, gray.
console.log(
`I see a ${colors.red("red door")} and I want it painted ${colors.black(
"black"
)}`
);The object also includes following background color modifier functions: bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite.
console.log(
colors.bgBlack(
colors.white(
`Tom appeared on the sidewalk with a bucket of whitewash and a long-handled brush.`
)
)
);Besides colors, the object includes following formatting functions: dim, bold, hidden, italic, underline, strikethrough, reset, inverse.
for (let task of tasks) {
console.log(
`${colors.bold(task.name)} ${colors.dim(task.durationMs + "ms")}`
);
}The library provides additional utilities to ensure the best results for the task:
isColorSupported— boolean, explicitly tells whether or not the colors or formatting appear on the screenimport { colors } from "@mongez/copper"; if (colors.isColorSupported) { console.log("Yay! This script can use colors and formatters"); }
createColors(enabled)— a function that returns a new API object with manually defined color support configurationimport { colors } from "@mongez/copper"; let { red, bgWhite } = colors.createColors(options.enableColors);
Colors List
- Basic:
whitewhiteBrightblackBrightblackgray - Red:
redredBrightbgRedbgRedBright - Slate:
slateslateBrightbgSlatebgSlateBright - Blue:
blueblueBrightbgBluebgBlueBright - Green:
greengreenBrightbgGreenbgGreenBright - Lime:
limelimeBrightbgLimebgLimeBright - Teal:
tealtealBrightbgTealbgTealBright - Cyan:
cyancyanBrightbgCyanbgCyanBright - Yellow:
yellowyellowBrightbgYellowbgYellowBright - Brown:
brownbrownBrightbgBrownbgBrownBright - Chocolate:
chocolatechocolateBrightbgChocolatebgChocolateBright - Magenta:
magentamagentaBrightbgMagentabgMagentaBright - Pink:
pinkpinkBrightbgPinkbgPinkBright - Purple:
purplepurpleBrightbgPurplebgPurpleBright - Orange:
orangeorangeBrightbgOrangebgOrangeBright - Gold:
goldgoldBrightbgGoldbgGoldBright - Lavender:
lavenderlavenderBrightbgLavenderbgLavenderBright - Indigo:
indigoindigoBrightbgIndigobgIndigoBright
Replacing chalk
Replace package name in import:
- import chalk from 'chalk' + import { colors } from "@mongez/copper";Replace variable:
- chalk.red(text) + colors.red(text)Replace chains to nested calls:
- chalk.red.bold(text) + colors.red(colors.bold(text))You can use
colorize-templateto replace chalk’s tagged template literal.+ import { createColorize } from 'colorize-template' + let colorize = createColorize(colors) - chalk.red.bold`full {yellow ${"text"}}` + colorize`{red.bold full {yellow ${"text"}}}`