Improve performance greatly (#337)

This commit is contained in:
Yanis Benson 2019-07-12 09:40:23 +03:00 committed by Sindre Sorhus
parent 983094883c
commit c08417e88c
6 changed files with 159 additions and 60 deletions

37
lib/util.js Normal file
View file

@ -0,0 +1,37 @@
const stringReplaceAll = (string, substring, replacer) => {
let index = string.indexOf(substring);
if (index === -1) {
return string;
}
const subLen = substring.length;
let end = 0;
let res = '';
do {
res += string.substr(end, index - end) + replacer;
end = index + subLen;
index = string.indexOf(substring, end);
} while (index !== -1);
res += string.substr(end);
return res;
};
const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {
let end = 0;
let res = '';
do {
const gotCR = string[index - 1] === '\r';
res += string.substr(end, (gotCR ? index - 1 : index) - end) + prefix + (gotCR ? '\r\n' : '\n') + postfix;
end = index + 1;
index = string.indexOf('\n', end);
} while (index !== -1);
res += string.substr(end);
return res;
};
module.exports = {
stringReplaceAll,
stringEncaseCRLFWithFirstIndex
};