Skip to content

danielvigaru/truncate-text-between-words

Repository files navigation

Truncates the text at the last space found before the given length. Adds "..." to indicate that the text is truncated.

CI npm npm bundle size Ko-fi

Usage

import {
    truncateText,
    getPositionOfLastSpaceBeforeIndex,
} from 'truncate-text-between-words';

Let's use this text as example:

// Lenght:        5    10   15   20   25
//                ↓    ↓    ↓    ↓    ↓
const TEXT = 'Lorem ipsum dolor sit amet.';

truncateText

Parameters:

type TruncateTextOptions = {
    hideIfNoWords?: boolean;
};

truncateText(text: string, maxLength: number, options?: TruncateTextOptions);
truncateText(TEXT, 3);
// Output: ...

truncateText(TEXT, 3, { hideIfNoWords: true });
// Output:

truncateText(TEXT, 6);
// Output: Lorem...

truncateText(TEXT, 15);
// Output: Lorem ipsum...

truncateText(TEXT, 50);
// Output: Lorem ipsum dolor sit amet.

getPositionOfLastSpaceBeforeIndex

getPositionOfLastSpaceBeforeIndex(text: string, index: number);
getPositionOfLastSpaceBeforeIndex(TEXT, 3);
// Output: -1

getPositionOfLastSpaceBeforeIndex(TEXT, 6);
// Output: 5

getPositionOfLastSpaceBeforeIndex(TEXT, 15);
// Output: 11

getPositionOfLastSpaceBeforeIndex(TEXT, 50);
// Output: 21