1# wrap-ansi [![Build Status](https://travis-ci.org/chalk/wrap-ansi.svg?branch=master)](https://travis-ci.org/chalk/wrap-ansi) [![Coverage Status](https://coveralls.io/repos/github/chalk/wrap-ansi/badge.svg?branch=master)](https://coveralls.io/github/chalk/wrap-ansi?branch=master) 2 3> Wordwrap a string with [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) 4 5 6## Install 7 8``` 9$ npm install wrap-ansi 10``` 11 12 13## Usage 14 15```js 16const chalk = require('chalk'); 17const wrapAnsi = require('wrap-ansi'); 18 19const input = 'The quick brown ' + chalk.red('fox jumped over ') + 20 'the lazy ' + chalk.green('dog and then ran away with the unicorn.'); 21 22console.log(wrapAnsi(input, 20)); 23``` 24 25<img width="331" src="screenshot.png"> 26 27--- 28 29<div align="center"> 30 <b> 31 <a href="https://tidelift.com/subscription/pkg/npm-wrap_ansi?utm_source=npm-wrap-ansi&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a> 32 </b> 33 <br> 34 <sub> 35 Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies. 36 </sub> 37</div> 38 39--- 40 41 42## API 43 44### wrapAnsi(input, columns, [options]) 45 46Wrap words to the specified column width. 47 48#### input 49 50Type: `string` 51 52String with ANSI escape codes. Like one styled by [`chalk`](https://github.com/chalk/chalk). 53 54#### columns 55 56Type: `number` 57 58Number of columns to wrap the text to. 59 60#### options 61 62Type: `Object` 63 64##### hard 65 66Type: `boolean`<br> 67Default: `false` 68 69By 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. 70 71##### wordWrap 72 73Type: `boolean`<br> 74Default: `true` 75 76By 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. 77 78##### trim 79 80Type: `boolean`<br> 81Default: `true` 82 83Whitespace on all lines is removed by default. Set this option to `false` if you don't want to trim. 84 85 86## Related 87 88- [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes 89- [cli-truncate](https://github.com/sindresorhus/cli-truncate) - Truncate a string to a specific width in the terminal 90- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right 91- [jsesc](https://github.com/mathiasbynens/jsesc) - Generate ASCII-only output from Unicode strings. Useful for creating test fixtures. 92 93 94## Maintainers 95 96- [Sindre Sorhus](https://github.com/sindresorhus) 97- [Josh Junon](https://github.com/qix-) 98- [Benjamin Coe](https://github.com/bcoe) 99 100 101## Security 102 103To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. 104 105 106## License 107 108MIT 109