Socket
Socket
Sign inDemoInstall

@poppinss/colors

Package Overview
Dependencies
1
Maintainers
3
Versions
35
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @poppinss/colors

A wrapper on top of kleur with ability to write test against the color functions


Version published
Weekly downloads
39K
decreased by-5.46%
Maintainers
3
Install size
46.4 kB
Created
Weekly downloads
 

Readme

Source

@poppinss/colors

Wrapper over kleur with better support for testing

gh-workflow-image typescript-image npm-image license-image

Why this package exists?

This package is a wrapper over kleur with additional implementations to make testing easier and work seamlessly with terminals/stdout streams that do not support colors.

Usage

Install the package from the npm registry as follows.

npm i @poppinss/colors

And use it as follows. The ansi method returns an instance of the kleur package.

import useColors from '@poppinss/colors'
const colors = useColors.ansi()

console.log(colors.red('this is an error'))
console.log(colors.cyan('hello world'))

Chaining methods

const colors = useColors.ansi()
console.log(colors.red().bgBlack('this is an error'))

Raw implementation

The raw implementation is ideal for testing. Instead of outputting ANSI escape codes, we wrap the string with transformation names. For example:

import useColors from '@poppinss/colors'
const colors = useColors.raw()

console.log(colors.red('hello world'))
// OUTPUT: red(hello world)

console.log(colors.bgBlack().red('hello world'))
// OUTPUT: bgBlack(red(hello world))

As you can notice, the output is a plain text value, so it is easier to write assertions against it.

assert.equal(colors.red('hello world'), 'red(hello world)')

Silent output

The silent mode does not perform any transformations on the string and returns the value. This is helpful when the output terminal or stdout stream does not support colors.

import useColors from '@poppinss/colors'
const colors = useColors.silent()

console.log(colors.red('hello world'))
// OUTPUT: hello world

console.log(colors.bgBlack().red('hello world'))
// OUTPUT: hello world

Pick based on the runtime environment

Ideally, you will use one of the available implementations based on some runtime environment. For example:

import useColors from '@poppinss/colors'
import supportsColor from 'supports-color'

const isTestEnv = process.env.NODE_ENV === 'test'

const colors = isTestEnv
  ? useColors.raw() // use raw in test environment
  : supportsColor.stdout
    ? useColors.ansi() // use kleur when stdout has colors
    : useColors.silent() // use silent mode 

export default colors

Keywords

FAQs

Last updated on 28 Mar 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc