diff options
Diffstat (limited to 'webAO/iniParse.js')
| -rw-r--r-- | webAO/iniParse.js | 61 |
1 files changed, 31 insertions, 30 deletions
diff --git a/webAO/iniParse.js b/webAO/iniParse.js index d3a9a90..62eeab0 100644 --- a/webAO/iniParse.js +++ b/webAO/iniParse.js @@ -1,42 +1,43 @@ const regexPatterns = { - section: /^\s*\[\s*([^\]]*)\s*\]\s*$/, - param: /^\s*([\w.\-_]+)\s*=\s*(.*?)\s*$/, - comment: /^\s*;.*$/, + section: /^\s*\[\s*([^\]]*)\s*\]\s*$/, + param: /^\s*([\w.\-_]+)\s*=\s*(.*?)\s*$/, + comment: /^\s*;.*$/, }; -const valueHandler = (matchKey, matchValue) => (matchKey === 'showname' ? matchValue : matchValue.toLowerCase()); +const valueHandler = (matchKey, matchValue) => + matchKey === "showname" ? matchValue : matchValue.toLowerCase(); const lineFilter = (value) => { - const isEmpty = value.length === 0; - const isComment = regexPatterns.comment.test(value); - if (isComment || isEmpty) { - return false; - } - return true; + const isEmpty = value.length === 0; + const isComment = regexPatterns.comment.test(value); + if (isComment || isEmpty) { + return false; + } + return true; }; const iniParse = (data) => { - const parsedIni = {}; - const lines = data.split(/\r\n|\r|\n/); - const filteredLines = lines.filter(lineFilter); + const parsedIni = {}; + const lines = data.split(/\r\n|\r|\n/); + const filteredLines = lines.filter(lineFilter); - let currentSection; - filteredLines.forEach((line) => { - const isParameter = regexPatterns.param.test(line); - const isSection = regexPatterns.section.test(line); - if (isParameter && currentSection) { - const match = line.match(regexPatterns.param); - const matchKey = match[1].toLowerCase(); - const matchValue = match[2]; - parsedIni[currentSection][matchKey] = valueHandler(matchKey, matchValue); - } else if (isSection) { - const match = line.match(regexPatterns.section); - const matchKey = match[1].toLowerCase(); - parsedIni[matchKey] = {}; - currentSection = matchKey; - } - }); - return parsedIni; + let currentSection; + filteredLines.forEach((line) => { + const isParameter = regexPatterns.param.test(line); + const isSection = regexPatterns.section.test(line); + if (isParameter && currentSection) { + const match = line.match(regexPatterns.param); + const matchKey = match[1].toLowerCase(); + const matchValue = match[2]; + parsedIni[currentSection][matchKey] = valueHandler(matchKey, matchValue); + } else if (isSection) { + const match = line.match(regexPatterns.section); + const matchKey = match[1].toLowerCase(); + parsedIni[matchKey] = {}; + currentSection = matchKey; + } + }); + return parsedIni; }; export default iniParse; |
