source: node_modules/ramda-adjunct/src/internal/ponyfills/String.padStart.js@ b78c0c1

main
Last change on this file since b78c0c1 was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1011 bytes
Line 
1import isFunction from '../../isFunction';
2import isNotUndefined from '../../isNotUndefined';
3import repeat from './String.repeat';
4
5const padStartPonyfill = (padString, targetLength, value) => {
6 // eslint-disable-next-line no-bitwise
7 let finalLength = targetLength >> 0; // truncate if number, or convert non-number to 0;
8 let finalPadString = String(isNotUndefined(padString) ? padString : ' ');
9
10 // return the original string, if targeted length is less than original strings length
11 if (value.length >= finalLength) {
12 return String(value);
13 }
14
15 finalLength -= value.length;
16 if (finalLength > finalPadString.length) {
17 const lenghtToPad = finalLength / finalPadString.length;
18 // append to original to ensure we are longer than needed
19 finalPadString += isFunction(String.prototype.repeat)
20 ? finalPadString.repeat(lenghtToPad)
21 : repeat(finalPadString, lenghtToPad);
22 }
23
24 return finalPadString.slice(0, finalLength) + String(value);
25};
26
27export default padStartPonyfill;
Note: See TracBrowser for help on using the repository browser.