UNPKG

sugar

Version:

A Javascript utility library for working with native objects.

32 lines (28 loc) 1.04 kB
'use strict'; var isUndefined = require('../../common/internal/isUndefined'), mathAliases = require('../../common/var/mathAliases'), truncateOnWord = require('./truncateOnWord'); var ceil = mathAliases.ceil, floor = mathAliases.floor; function truncateString(str, length, from, ellipsis, split) { var str1, str2, len1, len2; if (str.length <= length) { return str.toString(); } ellipsis = isUndefined(ellipsis) ? '...' : ellipsis; switch(from) { case 'left': str2 = split ? truncateOnWord(str, length, true) : str.slice(str.length - length); return ellipsis + str2; case 'middle': len1 = ceil(length / 2); len2 = floor(length / 2); str1 = split ? truncateOnWord(str, len1) : str.slice(0, len1); str2 = split ? truncateOnWord(str, len2, true) : str.slice(str.length - len2); return str1 + ellipsis + str2; default: str1 = split ? truncateOnWord(str, length) : str.slice(0, length); return str1 + ellipsis; } } module.exports = truncateString;