Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/t-ski/pretty-log
Pretty log messages with color, format, and cursor manipulation.
https://github.com/t-ski/pretty-log
color console cursor format
Last synced: about 10 hours ago
JSON representation
Pretty log messages with color, format, and cursor manipulation.
- Host: GitHub
- URL: https://github.com/t-ski/pretty-log
- Owner: t-ski
- License: mit
- Created: 2024-05-17T20:20:09.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-01T20:15:09.000Z (5 months ago)
- Last Synced: 2024-11-11T21:52:23.568Z (5 days ago)
- Topics: color, console, cursor, format
- Language: JavaScript
- Homepage:
- Size: 116 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Pretty Log
![NPM Version](https://img.shields.io/npm/v/%40t-ski%2Fpretty-log?logo=npm)
![GitHub License](https://img.shields.io/github/license/t-ski/pretty-log)Pretty log messages with color, format, and cursor manipulation.
``` cli
npm install @t-ski/pretty-log
```**Example Log**
**Example Source**
``` js
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.
``` ts
import prettyLog from "t-ski/pretty-log";prettyLog.[]+(targetString: string): string;
```> Pretty log styled strings are nestable, i.e. can be embedded within styled strings themselves.
## Style Expressions
### Color
``` ts
prettyLog..
// OR
prettyLog..color(r: number, g: number, b: number)
prettyLog..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.
| `` | 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
``` js
prettyLog.bg.RED.fg.color(245, 245, 245)("Example");
```### Format
``` ts
prettyLog.
```| `` | 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 (`fg` ⇄ `bg`) |
| `STRIKE` | Strike through, i.e. crossed out |> Whether and how styles are displayed depends on the console application.
#### Example
``` js
prettyLog.BOLD.UNDERLINE("Example");
```### Cursor
``` ts
prettyLog.
// OR
prettyLog.cursor(x: number, y: number)
```| `` | 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
``` js
prettyLog.CLEAR(".".repeat((++iteration % 3) + 1));
```## Macros
Assigning frequently used style chains to reusable macro variables might be helpful:
``` js
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