ramda-adjunct
Version:
Ramda Adjunct is the most popular and most comprehensive set of utilities for use with Ramda, providing a variety of useful, well tested functions with excellent documentation.
26 lines (20 loc) • 816 B
JavaScript
import isFunction from '../../isFunction';
import isNotUndefined from '../../isNotUndefined';
import repeat from './String.repeat';
const padEndPolyfill = (padString, targetLength, value) => {
// eslint-disable-next-line no-bitwise
let finalLength = targetLength >> 0;
let finalPadString = String(isNotUndefined(padString) ? padString : ' ');
if (value.length > finalLength) {
return String(value);
}
finalLength -= value.length;
if (finalLength > finalPadString.length) {
const remainingLength = finalLength / finalPadString.length;
finalPadString += isFunction(String.prototype.repeat)
? finalPadString.repeat(remainingLength)
: repeat(finalPadString, remainingLength);
}
return String(value) + finalPadString.slice(0, finalLength);
};
export default padEndPolyfill;