const splitBy = (text, trimWhitespaces = false, delimiter = ',', escape = '"') => {
const entries = [];
const chars = [...text];
const length = chars.length;
let entry = '';
let isEscaped = false;
let isSequence = false;
let isWillDelimiter = false;
let needResetEscaped = false;
for (let index = 0; index < length; index++) {
const char = chars[index];
const isChar = char !== delimiter || (char === delimiter && isSequence);
if (isWillDelimiter && isChar) {
throw new Error(`Unexpected char. Required delimite by ${delimiter} char.`);
}
isWillDelimiter = false;
if (char === "\\") {
isEscaped = true
}
if (char === escape && !isEscaped) {
isSequence = !isSequence;
if (!isSequence) {
isWillDelimiter = true;
}
}
if (needResetEscaped) {
isEscaped = false;
needResetEscaped = false;
}
if (isChar) {
if (isEscaped) {
entry += '\\';
needResetEscaped = true;
}
entry += char;
}
if (!isChar || index === length - 1) {
const preparedEntry = trimWhitespaces ? entry.trim() : entry;
entries.push(preparedEntry);
entry = '';
}
if (isSequence && index === length - 1) {
throw new Error(`Unexpected string end. Required close sequence by ${escape} char.`);
}
}
return entries;
};
npm run build
, или подобной. После чего собранное приложение уже разместить на сервере.