@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-printImport
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(rows: Array)Prints a composed ANSI-formatted line to stdout.
Rules:
textmust be a stringcolor,background, andstylesare optionalstylesis 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.GRAYCustom 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.WHITECustom 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.STRIKETHROUGHMultiple 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
