npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

colorfy

v2.4.0

Published

Colorfy colorize your console with pretty ansi color codes. It has static color methods and supports a chained colorization of your tty console output.

Downloads

1,198

Readme

Colorfy

Build Status

Colorfy your console output with pretty ANSI colors.

Supports:

  • Zero dependencies
  • 256 ANSI color codes
  • Pluralization
  • Text indention
  • Static color methods

Colorfy in action

Installation

npm i colorfy --save

Usage

import {colorfy} from 'colorfy'

const cf = colorfy()
console.log(cf.red('Hello').green('colorful').blue('World!').colorfy())

// or let colorfy print it out

cf.red('Hello').green('colorful').blue('World!').print()

// static methods
import {colorize} from 'colorfy'
const green = colorize.green('Green text')
const red = colorize.red('Red text')

Methods

The initial colorfy() call in the example above returns a colorfy instance. All colorize methods are chainable. Pass colorfy() as last method to a chain to get a pretty colorful string. Since version v2.0.0, colofy returns all color methods as static methods too.

red(text, [styles]) Draws red text
yellow(text, [styles]) Draws yellow text
green(text, [styles]) Draws green text
blue(text, [styles]) Draws blue text
fire(text, [styles]) Draws fire red text
orange(text, [styles]) Draws orange text
azure(text, [styles]) Draws azure blue text
lime(text, [styles]) Draws lime text
pink(text, [styles]) Draws pink text
plum(text, [styles]) Draws plum text
turq(text, [styles]) Draws turquoise text
ored(text, [styles]) Draws orangered text
dred(text, [styles]) Draws dark red text
dgreen(text, [styles]) Draws dark green text
dblue(text, [styles]) Draws dark blue text
grey(text, [styles]) Draws grey text
dgrey(text, [styles]) Draws dark grey text
ddgrey(text, [styles]) Draws dark dark grey text
lgrey(text, [styles]) Draws light grey text
llgrey(text, [styles]) Draws light light grey text
lbrown(text, [styles]) Draws light brown text
black(text, [styles]) Draws black text
white(text, [styles]) Draws white text
txt(text, [styles]) Draws text in default color. Without any styling
ansi(color, text, [styles]) Draws text in any ansi color. Must be a number between 0 and 255
auto(text, [styles]) Calculates a cross number between 0 and 99 of the input and uses a color based on this cross number. This feature could be useful for logging of hash values.

Run node examples/colorfy.js to see colorfy in action. It gives you a list of all ansi color codes.

The styles argument is optional and defines the text style.

bold Draws bold text
italic Draws italic text
underline Draws underlined text
blink Draws a flashing text
trim Trims your text on both sides (See trim section below)
rtrim Trims your text on its right side (See trim section below)
ltrim Trims your text on its left (See trim section below) bgred Draws red background
bgyellow Draws yellow background
bggreen Draws green background
bgblue Draws blue background
bgfire Draws fire red background
bgorange Draws orange background
bgazure Draws azure blue background
bglime Draws lime background
bgpink Draws pink background
bgplum Draws plum background
bgturq Draws turquoise background
bgored Draws orangered background
bgdred Draws dark red background
bgdgreen Draws dark green background
bgdblue Draws dark blue background
bggrey Draws grey background
bgdgrey Draws dark grey background
bgddgrey Draws dark dark grey background
bglgrey Draws light grey background
bgllgrey Draws light light grey background
bglbrown Draws light brown background

Seperate stylings by a space cf.red('foo', 'bold underline')

Background colors

Background colors can be set as a style. See list above with all supported background styles

cf.black('Black text on yellow background', 'bgyellow');

Joining

Since v2.0.0, auto joining was disabled by default. To enable joining of text blocks by a space, set the autoJoin flag to true. All texts getting joined by a space character if joining is enabled. The trim parameter can be used to avoid joining for a certain text block.

const cf = colorfy({ autoJoin: true })
cf.grey('(').green('20ms').grey(')').colorfy();

returns ( 20ms )

const cf = colorfy({ autoJoin: true })
cf.grey('(').green('20ms', 'trim').grey(')').colorfy();

returns (20ms) (No space around the number)

Output

The colorfy() method returns a colorfied string of the colorfy chain. Colorization can be skiped by passing false as first argument to colorfy()

cf.red('All colors are beautiful').colorfy();      //Returns a colofied string
cf.red('All colors are beautiful').colorfy(false); //Returns a plain string

print([bool colorize])

The print method prints a colorfy chain to stdout. The comands below are the same

console.log(cf.red('All colors are beautiful').colorfy());
cf.red('All colors are beautiful').print();

write([bool colorize])

The write method writes a colorfy chain to stdout. It doesn't insert a trailing newline

cf.red('All colors ').write();
cf.green('are beautiful').write();

indent(num size)

Colorfy supports text indention. Indentions itself are always uncolorized. The indent method sets the indention for the next lines. It expects the indention size as its onliest argument. The size argument increase the current indention size.

indent(number)

const cf = colorfy()
cf.txt(' '.repeat(10)).white('WARNING!', 'bgred').nl()
cf.txt(' '.repeat(10)).white('The server is down!', 'bgred')

The code with usage of indent() is quite smarter.

const cf = colorfy()
cf.indent(10)
cf.white('WARNING!', 'bgred').nl()
cf.white('The server is down!', 'bgred')

Please note, a call of indent() inserts a line break.

reset()

Reset the indention and inserts a line break.

json(obj data, [num depth])

Colorizes a data construct. Dept is the maximum nesting depth, default value = 5.

const cf = colorfy()
cf.txt('JSON: ').json({
  one: 'One'
  two: 2,
  three [
    'Banana',
    'Coconut'
  ]
}).print()

Pluralization

Texts can be pluralized. Add an [singular, plural, number] array as a text block and colorfy returns the singular version if number === 1 otherwise the plural.

const cf = colorfy()
const passedTests = 35;
const failedTests = 1;
cf.green(passedTests).txt(['test passed', 'tests passed', passedTests]).print());
cf.red(failedTests).txt(['test failed', 'tests failed', failedTests]).print());

This example would render a red block

Config

Preset configurations can be changed by using the config() method.

const cf = colorfy()
cf.config({
  trim: true
})

cf.txt('(').green('13ms').txt(')') // Returns (13ms)

Preset configurations:

| Property | Description | | ----------- | ----------------------------------------------------------------- | | trim | Enable word trimming ( Disabled by default ) | | indention | Set the default indention for the indent() method. Default: 0 | | autoJoin | Joins text blocks by a space. Default: false |

Author

(c) 2016 by Andi Heinkelein
Licensed under MIT license.