wrap-ansi

> Wordwrap a string with ANSI escape codes

# Install

$ npm install wrap-ansi

# Usage

const chalk = require('chalk');
const wrapAnsi = require('wrap-ansi');
const input = 'The quick brown ' + chalk.red('fox jumped over ') +
'the lazy ' + chalk.green('dog and then ran away with the unicorn.');
console.log(wrapAnsi(input, 20));

# API

## wrapAnsi(string, columns, options?)

Wrap words to the specified column width.

### string

Type: `string`

String with ANSI escape codes. Like one styled by `chalk`. Newline characters will be normalized to `\n`.

### columns

Type: `number`

Number of columns to wrap the text to.

### options

Type: `object`

#### hard

Type: `boolean`
Default: `false`

By default the wrap is soft, meaning long words may extend past the column width. Setting this to `true` will make it hard wrap at the column width.

#### wordWrap

Type: `boolean`
Default: `true`

By default, an attempt is made to split words at spaces, ensuring that they don't extend past the configured columns. If wordWrap is `false`, each column will instead be completely filled splitting words as necessary.

#### trim

Type: `boolean`
Default: `true`

Whitespace on all lines is removed by default. Set this option to `false` if you don't want to trim.

# Related

- slice-ansi - Slice a string with ANSI escape codes
- cli-truncate - Truncate a string to a specific width in the terminal
- chalk - Terminal string styling done right
- jsesc - Generate ASCII-only output from Unicode strings. Useful for creating test fixtures.

# Maintainers

- Sindre Sorhus
- Josh Junon
- Benjamin Coe

Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.