module.exports = function parseCsv(input) { const rows = []; let row = []; let field = ""; let quoted = false; for (let index = 0; index < input.length; index += 1) { const character = input[index]; const nextCharacter = input[index + 1]; if (character === '"' && quoted && nextCharacter === '"') { field += '"'; index += 1; } else if (character === '"') { quoted = !quoted; } else if (character === "," && !quoted) { row.push(field); field = ""; } else if ((character === "\n" || character === "\r") && !quoted) { if (character === "\r" && nextCharacter === "\n") index += 1; row.push(field); if (row.some(value => value.trim() !== "")) rows.push(row); row = []; field = ""; } else { field += character; } } if (quoted) throw new Error("CSV bevat een niet afgesloten tekstveld."); row.push(field); if (row.some(value => value.trim() !== "")) rows.push(row); return rows; };