csvutil
Version:
45 lines (34 loc) • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.padOrTruncateMarkdown = exports.padOrTruncatePretty = exports.truncate = exports.repeatString = exports.isNilOrWhitespace = undefined;
var _ramda = require('ramda');
var _ramda2 = _interopRequireDefault(_ramda);
var _pad = require('pad');
var _pad2 = _interopRequireDefault(_pad);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var isNilOrWhitespace = exports.isNilOrWhitespace = function isNilOrWhitespace(str) {
return !str || !str.replace(/\s/g, '').length;
};
var repeatString = exports.repeatString = _ramda2.default.curry(function (str, repetitions) {
return _ramda2.default.repeat(str, repetitions).join('');
});
var ELIPSIS_LENGTH = 3;
var ELIPSIS = repeatString('.', ELIPSIS_LENGTH);
var truncate = exports.truncate = _ramda2.default.curry(function (length, s) {
var l = Math.max(length, ELIPSIS_LENGTH);
var substring = s.substring(0, l - ELIPSIS_LENGTH);
return '' + substring + ELIPSIS;
});
var padOrTruncatePretty = exports.padOrTruncatePretty = _ramda2.default.curry(function (length, str) {
var l = Math.max(length, ELIPSIS_LENGTH);
var s = String(str).replace(/(?:\r\n|\r|\n)/g, ' ');
return !s || s.length < l ? (0, _pad2.default)(l, s) : truncate(l, s);
});
var padOrTruncateMarkdown = exports.padOrTruncateMarkdown = _ramda2.default.curry(function (length, str) {
if (isNilOrWhitespace(str)) {
return repeatString(' ', length);
}
return "`" + padOrTruncatePretty(length - 2, str) + "`";
});