Skip to content
Permalink
ffd96b38fb
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Robert Brignull replace jest with ava
Latest commit 0347b72 May 4, 2020 History
0 contributors

Users who have contributed to this file

96 lines (73 sloc) 2.25 KB
declare namespace cliTruncate {
interface Options {
/**
Position to truncate the string.
@default 'end'
*/
readonly position?: 'start' | 'middle' | 'end';
/**
Add a space between the text and the ellipsis.
@default false
@example
```
cliTruncate('unicorns', 5, {position: 'end', space: true});
//=> 'uni …'
cliTruncate('unicorns', 5, {position: 'end', space: false});
//=> 'unic…'
cliTruncate('unicorns', 6, {position: 'start', space: true});
//=> '… orns'
cliTruncate('unicorns', 7, {position: 'middle', space: true});
//=> 'uni … s'
```
*/
readonly space?: boolean;
/**
Truncate the string from a whitespace if it is within 3 characters from the actual breaking point.
@default false
@example
```
cliTruncate('unicorns rainbow dragons', 20, {position: 'start', preferTruncationOnSpace: true});
//=> '…rainbow dragons'
cliTruncate('unicorns rainbow dragons', 20, {position: 'middle', preferTruncationOnSpace: true});
//=> 'unicorns…dragons'
cliTruncate('unicorns rainbow dragons', 6, {position: 'end', preferTruncationOnSpace: true});
//=> 'unico…'
````
*/
readonly preferTruncationOnSpace?: boolean;
}
}
/**
Truncate a string to a specific width in the terminal.
@param text - Text to truncate.
@param columns - Columns to occupy in the terminal.
@example
```
import cliTruncate = require('cli-truncate');
cliTruncate('unicorn', 4);
//=> 'uni…'
// Truncate at different positions
cliTruncate('unicorn', 4, {position: 'start'});
//=> '…orn'
cliTruncate('unicorn', 4, {position: 'middle'});
//=> 'un…n'
cliTruncate('\u001B[31municorn\u001B[39m', 4);
//=> '\u001B[31muni\u001B[39m…'
// Truncate Unicode surrogate pairs
cliTruncate('uni\uD83C\uDE00corn', 5);
//=> 'uni\uD83C\uDE00…'
// Truncate fullwidth characters
cliTruncate('안녕하세요', 3);
//=> '안…'
// Truncate the paragraph to the terminal width
const paragraph = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.';
cliTruncate(paragraph, process.stdout.columns));
//=> 'Lorem ipsum dolor sit amet, consectetuer adipiscing…'
```
*/
declare function cliTruncate(
text: string,
columns: number,
options?: cliTruncate.Options
): string;
export = cliTruncate;