(data, delimiter = "|")
| 1 | function convertToScrollset(data, delimiter = "|") { |
| 2 | const lines = data.trim().split("\n") |
| 3 | const headers = lines[0].split(delimiter) |
| 4 | |
| 5 | let scrollset = "" |
| 6 | |
| 7 | // Create parser definitions |
| 8 | headers.forEach((header, index) => { |
| 9 | const parserId = header.toLowerCase() + "Parser" |
| 10 | scrollset += `${parserId}\n` |
| 11 | scrollset += ` extends abstract${capitalizeFirstLetter(getParserType(header))}Parser\n` |
| 12 | scrollset += ` float sortIndex ${1 + (index + 1) / 10}\n\n` |
| 13 | }) |
| 14 | |
| 15 | // Create entries |
| 16 | for (let i = 1; i < lines.length; i++) { |
| 17 | const values = lines[i].split(delimiter) |
| 18 | if (values.length !== headers.length) continue |
| 19 | |
| 20 | for (let j = 0; j < headers.length; j++) { |
| 21 | const header = headers[j].toLowerCase() |
| 22 | const value = values[j].trim() |
| 23 | if (value) { |
| 24 | scrollset += `${header} ${value}\n` |
| 25 | } |
| 26 | } |
| 27 | |
| 28 | scrollset += "\n" |
| 29 | } |
| 30 | |
| 31 | return scrollset |
| 32 | } |
| 33 | |
| 34 | function capitalizeFirstLetter(string) { |
| 35 | return string.charAt(0).toUpperCase() + string.slice(1) |
nothing calls this directly
no test coverage detected