Skip to content

Pretty log messages with color, format, and cursor manipulation.

License

Notifications You must be signed in to change notification settings

t-ski/pretty-log

Repository files navigation

Pretty Log

NPM Version GitHub License

Pretty log messages with color, format, and cursor manipulation.

npm install @t-ski/pretty-log

Example Log

Pretty log example

Example Source

prettyLog.BOLD.fg.WHITE.bg.color(128, 128, 255)(
  ` ${prettyLog.UNDERLINE("Example")} `
)

Synopsis

Pretty Log has a simple API: Provide an arbitrary chain of style expressions that are finally applied to a target string.

import prettyLog from "t-ski/pretty-log";

prettyLog.[<style-expression>]+(targetString: string): string;

Pretty log styled strings are nestable, i.e. can be embedded within styled strings themselves.

Style Expressions

Color

prettyLog.<fg|bg>.<Color>
// OR
prettyLog.<fg|bg>.color(r: number, g: number, b: number)
prettyLog.<fg|bg>.color(hex: string)

Color styles must be prepended by a color channel. fg indicates the foreground color channel, whereas bg is for the complementary background color channel.

<Color> RGB
BLACK 0, 0, 0
GRAY 128, 128, 128
WHITE 255, 255, 255
RED 255, 0, 0
ORANGE 255, 128, 0
YELLOW 255, 255, 0
LIME 0, 255, 0
GREEN 0, 255, 128
CYAN 0, 255, 255
BLUE 0, 0, 255
PURPLE 128, 0, 255
PINK 255, 0, 255

Example

prettyLog.bg.RED.fg.color(245, 245, 245)("Example");

Format

prettyLog.<Format>
<Format> Description
BOLD Bold, i.e. higher intensity
FAINT Faint, i.e. lower intensity
ITALIC Italic
UNDERLINE Underlined
DOUBLY_UNDERLINE Doubly underlined
BLINK Blink effect
INVERT Invert coloring (fgbg)
STRIKE Strike through, i.e. crossed out

Whether and how styles are displayed depends on the console application.

Example

prettyLog.BOLD.UNDERLINE("Example");

Cursor

prettyLog.<Cursor>
// OR
prettyLog.cursor(x: number, y: number)
<Cursor> Description
UP Up one line (row) (same as .cursor(0, 1))
DOWN Down one line (same as .cursor(0, -1))
LEFT Left one space (column) (same as .cursor(-1, 0))
RIGHT Right one space (same as .cursor(1, 0))
CLEAR Clear current line
ERASE Clear the last completed line (\n)
STORE Store the current cursor position
RESTORE Restore the current cursor position

Example

prettyLog.CLEAR(".".repeat((++iteration % 3) + 1));

Macros

Assigning frequently used style chains to reusable macro variables might be helpful:

const CODE = prettyLog.BOLD.fg.ORANGE;
console.log(CODE(".method()"));

function badge(message) {
  console.log(
    prettyLog.BOLD.fg.WHITE.bg.color(128, 128, 255)(
      ` ${prettyLog.UNDERLINE(message.toUpperCase())} `
    )
  );
}
badge("Results");

© Thassilo Martin Schiepanski

About

Pretty log messages with color, format, and cursor manipulation.

Topics

Resources

License

Stars

Watchers

Forks