Socket
Socket
Sign inDemoInstall

wrap-ansi

Package Overview
Dependencies
6
Maintainers
3
Versions
20
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

wrap-ansi

Wordwrap a string with ANSI escape codes


Version published
Maintainers
3
Weekly downloads
109,185,551
decreased by-9.67%

Weekly downloads

Package description

What is wrap-ansi?

The wrap-ansi npm package is used to wrap words to a specified column width without breaking ANSI escape codes. This is particularly useful for formatting command-line output that includes color or other special styles.

What are wrap-ansi's main functionalities?

Word wrapping

This feature allows you to wrap a string to a specified width. In the code sample, the input string is wrapped so that each line does not exceed 20 characters.

const wrapAnsi = require('wrap-ansi');
const input = 'The quick brown fox jumps over the lazy dog';
const output = wrapAnsi(input, 20);
console.log(output);

Respecting ANSI escape codes

This feature ensures that ANSI escape codes are not broken when the text is wrapped. The code sample demonstrates wrapping text that includes ANSI escape codes for red text.

const wrapAnsi = require('wrap-ansi');
const input = '\u001B[31mThe quick brown fox\u001B[39m jumps over the lazy dog';
const output = wrapAnsi(input, 20);
console.log(output);

Hard wrapping

This feature allows for hard wrapping, which ensures that line breaks are inserted at exactly the specified column, even if it means breaking a word. The code sample shows how to use the 'hard' option to enforce strict column width.

const wrapAnsi = require('wrap-ansi');
const input = 'The quick brown \nfox jumps over the lazy dog';
const output = wrapAnsi(input, 20, { hard: true });
console.log(output);

Other packages similar to wrap-ansi

Readme

Source

wrap-ansi

Wordwrap a string with ANSI escape codes

Install

$ npm install wrap-ansi

Usage

import chalk from 'chalk';
import wrapAnsi from '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.

  • 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


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.

Keywords

FAQs

Last updated on 13 Sep 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc