You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

27 lines
801 B

var defaults = require('./defaults');
var isUndef = require('./isUndef');
exports = function(txt, width) {
var options =
arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
defaults(options, defOptions);
var ellipsis = options.ellipsis,
separator = options.separator;
var len = txt.length;
if (width > len) return txt;
var end = width - ellipsis.length;
if (end < 1) return ellipsis;
var ret = txt.slice(0, end);
if (isUndef(separator)) return ret + ellipsis;
if (txt.indexOf(separator, end) !== end) {
var idx = ret.lastIndexOf(separator);
if (idx > -1) {
ret = ret.slice(0, idx);
}
}
return ret + ellipsis;
};
var defOptions = {
ellipsis: '...'
};
module.exports = exports;