| 'use strict'; |
| |
| const stringReplaceAll = (string, substring, replacer) => { |
| let index = string.indexOf(substring); |
| if (index === -1) { |
| return string; |
| } |
| |
| const substringLength = substring.length; |
| let endIndex = 0; |
| let returnValue = ''; |
| do { |
| returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; |
| endIndex = index + substringLength; |
| index = string.indexOf(substring, endIndex); |
| } while (index !== -1); |
| |
| returnValue += string.substr(endIndex); |
| return returnValue; |
| }; |
| |
| const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { |
| let endIndex = 0; |
| let returnValue = ''; |
| do { |
| const gotCR = string[index - 1] === '\r'; |
| returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix; |
| endIndex = index + 1; |
| index = string.indexOf('\n', endIndex); |
| } while (index !== -1); |
| |
| returnValue += string.substr(endIndex); |
| return returnValue; |
| }; |
| |
| module.exports = { |
| stringReplaceAll, |
| stringEncaseCRLFWithFirstIndex |
| }; |