Logion allows you to output beautiful logs to a console (TTY) - from different parts of the program - use separators, indents, spinners and style your text.
Install via yarn add logion
| npm install logion
.
Create instance:
import Logion from 'logion';
const logger = new Logion(opts);
Logion comes with an easy to use composable API that supports chaining:
logger
.text('Hello World!')
.newline(2)
.text('Good job', 'success')
.separate()
.line('One liner')
.spinner('oh', 'Beatifull spinner');
- logion
- module.exports ⏏
- static
- .Logion
- new exports.Logion(options)
- .width ⇒
number
- .height ⇒
number
- .disabled ⇒
boolean
- .paused ⇒
boolean
- .styleNames ⇒
object
- .newline([num], [force], [identifier]) ⇒
Instance
- .indent([num], [identifier]) ⇒
Instance
- .separate([color], [char], [identifier]) ⇒
Instance
- .text([string], styles, [identifier]) ⇒
Instance
- .style(string, styles, [identifier]) ⇒
string
- .styleReset(string) ⇒
string
- .line([string], [styles], [indt]) ⇒
Instance
- .clear() ⇒
Instance
- .spinner(identifier, [text], [config]) ⇒
Instance
- .spinnerDone(identifier, [config]) ⇒
Instance
- .spinnerDoneAll([config]) ⇒
Instance
- .beep() ⇒
Instance
- .waitInteraction([text], [config]) ⇒
Promise.<Instance>
- .log(string, [identifier]) ⇒
Instance
- .removeLog(identifier) ⇒
Instance
- .enable() ⇒
Instance
- .disable() ⇒
Instance
- .resume() ⇒
Instance
- .pause() ⇒
Instance
- .Logion
- inner
- ~Instance :
object
- ~styleName :
"success"
|"error"
|"info"
|"bold"
|"underline"
|"italic"
|"strikethrough"
- ~color :
"black"
|"red"
|"green"
|"yellow"
|"blue"
|"magenta"
|"cyan"
|"white"
|"gray"
|"blackBright"
|"redBright"
|"greenBright"
|"yellowBright"
|"blueBright"
|"magentaBright"
|"cyanBright"
|"whiteBright"
- ~spinnerFormatDone ⇒
string
- ~Instance :
- static
- module.exports ⏏
Class representing a logger.
Class representing a logger.
Kind: static class of module.exports
- .Logion
- new exports.Logion(options)
- .width ⇒
number
- .height ⇒
number
- .disabled ⇒
boolean
- .paused ⇒
boolean
- .styleNames ⇒
object
- .newline([num], [force], [identifier]) ⇒
Instance
- .indent([num], [identifier]) ⇒
Instance
- .separate([color], [char], [identifier]) ⇒
Instance
- .text([string], styles, [identifier]) ⇒
Instance
- .style(string, styles, [identifier]) ⇒
string
- .styleReset(string) ⇒
string
- .line([string], [styles], [indt]) ⇒
Instance
- .clear() ⇒
Instance
- .spinner(identifier, [text], [config]) ⇒
Instance
- .spinnerDone(identifier, [config]) ⇒
Instance
- .spinnerDoneAll([config]) ⇒
Instance
- .beep() ⇒
Instance
- .waitInteraction([text], [config]) ⇒
Promise.<Instance>
- .log(string, [identifier]) ⇒
Instance
- .removeLog(identifier) ⇒
Instance
- .enable() ⇒
Instance
- .disable() ⇒
Instance
- .resume() ⇒
Instance
- .pause() ⇒
Instance
Create a logger.
Returns: Instance
- a logger instance.
Param | Type | Default | Description |
---|---|---|---|
options | object |
Options object. | |
[options.streamIn] | object |
process.stdin |
Input stream (for scrolling and shortcuts). |
[options.streamOut] | object |
process.stdout |
Output stream. |
[options.disabled] | boolean |
auto |
Is logger disabled (no logging). By default, disabled if not ran in TTY. |
[options.paused] | boolean |
false |
Is logger paused (not outputting to console and not listening for key presses, but still collecting logs). |
[options.renderInterval] | number |
80 |
Render interval in ms to update spinners. |
[options.spinnerColor] | color |
white |
Spinner char color. |
[options.spinnerIndent] | number |
0 |
Spinner indent length in text chars. |
[options.spinnerFrames] | Array.<string> |
["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"] |
Spinner frames characters. |
[options.spinnerDoneChar] | string |
"✱" |
Char to replace spinner after it is done (when calling spinnerDone). |
[options.spinnerDoneAllChar] | string |
"✸" |
Char to replace active spinners after they are done (when calling spinnerDoneAll). |
[options.spinnerFormatDone] | function |
(str) => str |
Call this function to format the spinner text after it is done, see spinnerFormatDone. |
Width of a console.
Kind: instance property of Logion
Returns: number
- width in chars.
Read only: true
Height of a console.
Kind: instance property of Logion
Returns: number
- height in chars.
Read only: true
Returns true if a logger is disabled.
Kind: instance property of Logion
Returns: boolean
- is disabled.
Read only: true
Returns true if a logger is paused.
Kind: instance property of Logion
Returns: boolean
- is paused.
Read only: true
Shortening style names enum. See Available style names
Kind: instance property of Logion
Returns: object
- style names enum.
Read only: true
Output a newline(s). Accommodates if line breaks have been used before.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Param | Type | Default | Description |
---|---|---|---|
[num] | number |
1 |
Number of new lines to output. |
[force] | boolean |
false |
Do not accommodate for previous lines. |
[identifier] | string |
"$random" |
Identifier for this log message (should be unique). |
Output spaces. Can be used in the middle of a line.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Param | Type | Default | Description |
---|---|---|---|
[num] | number |
2 |
Number of spaces to output. |
[identifier] | string |
"$random" |
Identifier for this log message (should be unique). |
Output a separator on a new line. It fills all the available width.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Param | Type | Default | Description |
---|---|---|---|
[color] | color |
grey |
A separator character's color. |
[char] | string |
"-" |
Character that make up the separator. |
[identifier] | string |
"$random" |
Identifier for this log message (should be unique). |
Output a text with stlies applied. Does not add a new line.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Param | Type | Default | Description |
---|---|---|---|
[string] | string |
"$space" |
Text to output. |
styles | object | styleName |
Style object or styleName string. | |
[styles.color] | color |
Text color (uses Chalk module color). | |
[styles.bgColor] | color |
Background color (uses Chalk color). | |
[styles.bold] | boolean |
false |
Output as bold. |
[styles.underline] | boolean |
false |
Output as underlined. |
[styles.italic] | boolean |
false |
Output as italic. |
[styles.strikethrough] | boolean |
false |
Output as strike-through. |
[identifier] | string |
"$random" |
Identifier for this log message (should be unique). |
Style a text string. Shortening names could be one of: "success", "error", "info", "bold", "underline", "italic", "strikethrough".
Kind: instance method of Logion
Returns: string
- a styled string (with escape codes).
Param | Type | Default | Description |
---|---|---|---|
string | string |
Text to style. | |
styles | object | styleName |
Style object or styleName string. | |
[styles.color] | color |
Text color (uses Chalk module color). | |
[styles.bgColor] | color |
Background color (uses Chalk color). | |
[styles.bold] | boolean |
false |
Output as bold. |
[styles.underline] | boolean |
false |
Output as underlined. |
[styles.italic] | boolean |
false |
Output as italic. |
[styles.strikethrough] | boolean |
false |
Output as strike-through. |
[identifier] | string |
"$random" |
Identifier for this log message (should be unique). |
Reset all styles for a string.
Kind: instance method of Logion
Returns: string
- an unstyled string.
Param | Type | Description |
---|---|---|
string | string |
String with styled text. |
Output a line of a text with an indent.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Param | Type | Default | Description |
---|---|---|---|
[string] | string |
"$space" |
Your text. |
[styles] | object | string |
Style object or shortening name (as string), same as style. | |
[styles.color] | color |
Text color (uses Chalk module color). | |
[styles.bgColor] | color |
Background color (uses Chalk color). | |
[styles.bold] | boolean |
false |
Output as bold. |
[styles.underline] | boolean |
false |
Output as underlined. |
[styles.italic] | boolean |
false |
Output as italic. |
[styles.strikethrough] | boolean |
false |
Output as strike-through. |
[indt] | number |
0 |
Line indentation, a number of spaces to output before the text. |
Clear all the output.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Create a spinner on a new line. You can mark a spinner as done using its identifier with spinnerDone.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Param | Type | Default | Description |
---|---|---|---|
identifier | string |
Identifier for this spinner (required, should be unique). | |
[text] | string |
Text to output after this spinner (on the same line). | |
[config] | object |
An object for configuring this spinner. | |
[config.color] | color |
white |
Spinner char color (uses Chalk module color). |
[config.indent] | number |
0 |
Amount of spaces to output before this spinner. |
Mark the spinner as done. If text is not provided, uses spinnerFormatDone to format the original text.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Param | Type | Default | Description |
---|---|---|---|
identifier | string |
Identifier for the spinner (previously used to create the spinner in spinner). | |
[config] | object |
An object for configuring this spinner. | |
[config.text] | string |
A new text for this spinner (if empty, leaves the original text). | |
[config.color] | color |
A new spinner char color (if empty, uses the original color). | |
[config.char] | string |
"✱" |
A character which replaces the spinner. |
Mark all spinners that are not already done as done. Uses spinnerFormatDone to format the original text.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Param | Type | Default | Description |
---|---|---|---|
[config] | object |
An object for configuring this spinner. | |
[config.color] | color |
A new spinner char color (if empty, uses the original color). | |
[config.char] | string |
"✸" |
A character which replaces the spinner. |
Make a beep sound. May not be played in some consoles.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Output a special spinner and waits for a user interaction. Removes the spinner after interaction and resolves a Promise.
Kind: instance method of Logion
Returns: Promise.<Instance>
- a promise which resolves after user interaction (resolver returns a logger instance).
Param | Type | Default | Description |
---|---|---|---|
[text] | string |
"Press any key to continue" |
Text for the spinner |
[config] | object |
An object for configuring the spinner, see spinner. |
Log a row string. Other methods use this under the hood.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Param | Type | Default | Description |
---|---|---|---|
string | string |
String to output. | |
[identifier] | string |
"$random" |
Identifier for this log message (should be unique). |
Remove a log message with the corresponding identifier.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Param | Type | Description |
---|---|---|
identifier | string |
Identifier for the log message (used to create it in other methods). |
Enable a logger.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Disable a logger. When disabled, it removes all listeners, resets screen buffer, and clears all logs.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Update the console with the last messages, resume spinners and listen for user interactions. Use this after pause.
Kind: instance method of Logion
Returns: Instance
- a logger instance.
Pause all logging, remove all listeners. Use this to temporary output something outside a logger instance, or to release a process from events listening (by logion).
Kind: instance method of Logion
Returns: Instance
- a logger instance.
A logger instance.
Kind: inner typedef of module.exports
module.exports~styleName : "success"
| "error"
| "info"
| "bold"
| "underline"
| "italic"
| "strikethrough"
Available style names.
Kind: inner typedef of module.exports
module.exports~color : "black"
| "red"
| "green"
| "yellow"
| "blue"
| "magenta"
| "cyan"
| "white"
| "gray"
| "blackBright"
| "redBright"
| "greenBright"
| "yellowBright"
| "blueBright"
| "magentaBright"
| "cyanBright"
| "whiteBright"
Supported color names.
Kind: inner typedef of module.exports
Format the spinner text when it is marked as done.
Kind: inner typedef of module.exports
Returns: string
- a formated spinner text.
Type | Description |
---|---|
string |
Current spinner text. |
- Add more tests.
- Add a help message for scrolling and document it.
- Add more text style (colors) variants.
- Fix flickering and rerender screen only if needed.