pretty-ansi
Version:
Convert ANSI escape sequences to human readable text
58 lines (38 loc) • 1.98 kB
Markdown
# pretty-ansi
[![version][version-badge]][version-url]
[![license][license-badge]][license-url]
[![packagephobia][packagephobia-badge]][packagephobia-url]
[![coverage][coverage-badge]][coverage-url]
Convert ANSI escape sequences to human readable text.
---
This utility converts [ANSI escape sequences](https://en.wikipedia.org/wiki/ANSI_escape_code) to human readable text. It supports color, style and cursor control escapes and works with vanilla sequences as well as the output from libraries like `chalk`, `colors`, `ansi-escapes`, `ansi-styles` or `terminal-kit`.
## Install
```bash
npm add -D pretty-ansi
```
## Usage
For example, it can be useful to test the output of a command line tool:
```js
import assert from "node:assert";
import test from "node:test";
import prettyAnsi from "pretty-ansi";
test("command output", () => {
const commandOutput = "\u001b[3;32mSuccess!\u001b[0m";
assert.strictEqual(prettyAnsi(commandOutput), "<italic, green>Success!</>");
});
```
## Notes
Currently only 16 colors are all supported.
Keep in mind that the escape sequences are not validated. Unrecognized sequence will print as `<ESC>[a1b2c3`, or as `<?>` in case this is a color or style sequence.
## Related
[`jest-serializer-ansi-escapes`](https://github.com/mrazauskas/jest-serializer-ansi-escapes) — Jest snapshot serializer for ANSI escape sequences.
## License
[MIT][license-url]
[version-badge]: https://badgen.net/npm/v/pretty-ansi
[version-url]: https://npmjs.com/package/pretty-ansi
[license-badge]: https://badgen.net/github/license/mrazauskas/pretty-ansi
[license-url]: https://github.com/mrazauskas/pretty-ansi/blob/main/LICENSE.md
[packagephobia-badge]: https://badgen.net/packagephobia/install/pretty-ansi
[packagephobia-url]: https://packagephobia.com/result?p=pretty-ansi
[coverage-badge]: https://badgen.net/codacy/coverage/3a26cda9352643b589953c686f921c40
[coverage-url]: https://app.codacy.com/gh/mrazauskas/pretty-ansi/coverage/dashboard