Lowercase the csv options

This commit is contained in:
2025-11-15 15:56:03 +01:00
parent ce28b948d0
commit 4311533445

View File

@@ -50,8 +50,8 @@ end
--- @class ParserOptions
--- @field delimiter string? The field delimiter (default: ",").
--- @field hasHeaders boolean? If true, first non-comment row is treated as headers (default: false).
--- @field hasComments boolean? If true, lines starting with '#' are skipped (default: false).
--- @field hasheader boolean? If true, first non-comment row is treated as headers (default: false).
--- @field hascomments boolean? If true, lines starting with '#' are skipped (default: false).
--- Parses CSV text into rows and fields using a minimal RFC 4180 state machine.
---
@@ -74,8 +74,8 @@ end
function fromCSV(csv, options)
if options == nil then options = {} end
local delimiter = options.delimiter or ","
local hasHeaders = options.hasHeaders or false
local hasComments = options.hasComments or false
local hasheader = options.hasheader or false
local hascomments = options.hascomments or false
local allRows = {}
local fields = {}
@@ -104,7 +104,7 @@ function fromCSV(csv, options)
table.insert(fields, table.concat(field))
field = {}
local shouldAdd = true
if hasComments and #fields > 0 then
if hascomments and #fields > 0 then
local firstField = fields[1]
local trimmed = string.gsub(firstField, "^%s*(.-)%s*$", "%1")
if string.sub(trimmed, 1, 1) == "#" then shouldAdd = false end
@@ -142,7 +142,7 @@ function fromCSV(csv, options)
table.insert(fields, table.concat(field))
field = {}
local shouldAdd = true
if hasComments and #fields > 0 then
if hascomments and #fields > 0 then
local firstField = fields[1]
local trimmed = string.gsub(firstField, "^%s*(.-)%s*$", "%1")
if string.sub(trimmed, 1, 1) == "#" then shouldAdd = false end
@@ -165,7 +165,7 @@ function fromCSV(csv, options)
if #field > 0 or #fields > 0 then
table.insert(fields, table.concat(field))
local shouldAdd = true
if hasComments and #fields > 0 then
if hascomments and #fields > 0 then
local firstField = fields[1]
local trimmed = string.gsub(firstField, "^%s*(.-)%s*$", "%1")
if string.sub(trimmed, 1, 1) == "#" then shouldAdd = false end
@@ -173,12 +173,12 @@ function fromCSV(csv, options)
if shouldAdd then table.insert(allRows, fields) end
end
if hasHeaders and #allRows > 0 then
if hasheader and #allRows > 0 then
local headers = allRows[1]
local rows = {}
for i = 2, #allRows do
for ii = 2, #allRows do
local row = {}
local dataRow = allRows[i]
local dataRow = allRows[ii]
for j = 1, #dataRow do
row[j] = dataRow[j]
if headers[j] ~= nil and headers[j] ~= "" then row[headers[j]] = dataRow[j] end