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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@monixlite/console-print

v1.1.0

Published

Scene middleware for grammY with step-based navigation

Readme

@monixlite/console-print

A small Node.js utility for building colored and styled console output using ANSI escape sequences. It is designed for simple, explicit composition of console messages without external dependencies.

The library focuses on:

  • Explicit control over text, foreground color, background color, and styles
  • Predictable ANSI behavior
  • Minimal API surface

Installation

Copy the source into your project or install it as a local dependency.

npm install @monixlite/console-print

Import

const { Print, Color, Background, Style } = require("@monixlite/console-print");

or

const print = require("@monixlite/console-print");

// print([...])
// print.color[...]
// print.background[...]
// print.style[...]

Core Concept

Output is built from an array of "rows". Each row is either:

  • An empty array [] - inserts a single space separator
  • An array describing a text segment:
[
    text: string,
    color?: Color,
    background?: Background,
    styles?: Style[]
]

All rows are concatenated into a single line and printed with console.log.

Print

Print(rows: Array)

Prints a composed ANSI-formatted line to stdout.

Rules:

  • text must be a string
  • color, background, and styles are optional
  • styles is applied in order and closed in reverse order
  • Invalid or empty rows are ignored

Colors

Foreground colors

Color.BLACK
Color.RED
Color.GREEN
Color.YELLOW
Color.BLUE
Color.MAGENTA
Color.CYAN
Color.WHITE
Color.GRAY

Custom foreground color (24-bit RGB)

Color.CUSTOM(r, g, b)

Backgrounds

Background colors

Background.BLACK
Background.RED
Background.GREEN
Background.YELLOW
Background.BLUE
Background.MAGENTA
Background.CYAN
Background.WHITE

Custom background color (24-bit RGB)

Background.CUSTOM(r, g, b)

Styles

Style.RESET
Style.BOLD
Style.DIM
Style.ITALIC
Style.UNDERLINE
Style.DOUBLE_UNDERLINE
Style.INVERSE
Style.HIDDEN
Style.STRIKETHROUGH

Multiple styles can be combined by passing an array.

Example

const { Print, Color, Background, Style } = require("@monixlite/console-print");


Print([]);


Print([
    [
        " ERROR ",
        Color.WHITE,
        Background.RED,
        [
            Style.BOLD,
        ],
    ],
    [],
    [
        "File not found:",
        Color.RED,
    ],
    [],
    [
        "dog.png",
    ],
]);

Print([
    [
        " SUCCESS ",
        Color.BLACK,
        Background.GREEN,
        [
            Style.BOLD,
        ],
    ],
    [],
    [
        "File loaded:",
        Color.GREEN,
    ],
    [],
    [
        "cat.png",
    ],
]);


Print([]);


Print([
    [
        " MonixLITE: ",
        Color.CUSTOM(128, 128, 255),
        Background.CUSTOM(16, 16, 16),
        [
            Style.BOLD,
            Style.ITALIC,
        ],
    ],
    [],
    [
        "Hi, friend!",
        Color.CUSTOM(255, 255, 255),
    ],
]);


Print([]);

Notes

  • ANSI support depends on the terminal
  • Designed for Node.js environments
  • No automatic line wrapping or layout logic

License

MIT