0.1.0 • Published 1 year ago

@t-ski/pretty-log v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Pretty Log

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

npm install t-ski/pretty-log

Example Log

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
BLACK0, 0, 0
GRAY128, 128, 128
WHITE255, 255, 255
RED255, 0, 0
ORANGE255, 128, 0
YELLOW255, 255, 0
LIME0, 255, 0
GREEN0, 255, 128
CYAN0, 255, 255
BLUE0, 0, 255
PURPLE128, 0, 255
PINK255, 0, 255

Example

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

Format

prettyLog.<Format>
<Format>Description
BOLDBold, i.e. higher intensity
FAINTFaint, i.e. lower intensity
ITALICItalic
UNDERLINEUnderlined
DOUBLY_UNDERLINEDoubly underlined
BLINKBlink effect
INVERTInvert coloring (fgbg)
STRIKEStrike 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
UPUp one line (row) (same as .cursor(0, 1))
DOWNDown one line (same as .cursor(0, -1))
LEFTLeft one space (column) (same as .cursor(-1, 0))
RIGHTRight one space (same as .cursor(1, 0))
CLEARClear current line
ERASEClear the last completed line (\n)
STOREStore the current cursor position
RESTORERestore 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

0.1.0

1 year ago