console-toolkit
Version:
Toolkit to produce a fancy console output (boxes, tables, charts, colors).
100 lines (65 loc) • 2.81 kB
Markdown
# console-toolkit [![NPM version][npm-img]][npm-url]
[npm-img]: https://img.shields.io/npm/v/console-toolkit.svg
[npm-url]: https://npmjs.org/package/console-toolkit
`console-toolkit` is a set of tools to create rich CLI-based applications. It provides:
* Styles based on [ANSI escape sequences](https://en.wikipedia.org/wiki/ANSI_escape_code):
* [SGR](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR): colors and text styles
* [CSI](https://en.wikipedia.org/wiki/ANSI_escape_code#CSIsection): cursor and screen control
* Bitmap graphics
* Vector graphics based on [Turtle graphics](https://en.wikipedia.org/wiki/Turtle_graphics)
* Curated sets of Unicode symbols
* Tables with themes
* Bar and column charts with themes
* Various helpers and examples
## Visual examples
### Memory watcher

### Waveform

### Table + chart

### Turtle graphics

## Code example
```js
import style, {c} from 'console-toolkit/style.js';
import drawChart from 'console-toolkit/charts/bars/plain.js';
import lineTheme from 'console-toolkit/themes/lines/unicode-rounded.js';
import makeTable from 'console-toolkit/table';
// styles
console.log(style.bold + 'Hello, ' + style.bright.cyan + 'world!' + style.reset.all);
console.log(style.bold.text('Hello, ') + style.bright.cyan.bold.text('world!'));
const redBg = style.bg.red;
console.log(redBg.bold.text('Hello, ') + redBg.bright.cyan.bold.text('world!'));
console.log(c`{{bold}}Hello, {{bright.cyan}}world!`);
// chart
const chart = drawChart([[2, 1, 2], [5, 1, 4], [1, 1], [3, 1, 3]], 50);
for (const line of chart) console.log(line);
// table
const tableData = [
['Name', 'Value'],
['Bill', 33],
['Jill', 42]
];
const table = makeTable(tableData, lineTheme);
for (const line of table.toStrings()) console.log(line);
```
The output of the code is:

## Installation
```bash
npm install --save console-toolkit
```
## Documentation
See [wiki](https://github.com/uhop/console-toolkit/wiki) for more details.
## License
BSD 3-Clause License
## Release history
* 1.2.4 *Updated deps.*
* 1.2.3 *Updated deps + more tests.*
* 1.2.2 *Updated deps.*
* 1.2.1 *Added support for `Bun.stringWidth()`.*
* 1.2.0 *Refactored `strings`.*
* 1.1.1 *Minor bugfixes in `Table`, some improvements, updated deps.*
* 1.1.0 *Minor improvements, enhanced `Writer` and `Updater`.*
* 1.0.0 *Initial release.*