Skip to content

Commit

Permalink
Do not set JSON prop if value is undefined
Browse files Browse the repository at this point in the history
  • Loading branch information
koresar committed Mar 19, 2021
1 parent 45a8176 commit 71e39a9
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
6 changes: 4 additions & 2 deletions src/lil-csv.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,10 @@ export function parse(str, { header = true, escapeChar = "\\" } = {}) {
const parse = dataHeader.parse || dataHeader;
if (isFunction(parse)) value = parse(value, entry);

let propName = dataHeader.newName || (isString(dataHeader) ? dataHeader : dataHeaderName);
setDeep(processedEntry, propName, value);
if (value !== undefined) {
let propName = dataHeader.newName || (isString(dataHeader) ? dataHeader : dataHeaderName);
setDeep(processedEntry, propName, value);
}
}
return processedEntry;
});
Expand Down
5 changes: 3 additions & 2 deletions test/lil-csv.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,15 @@ describe("parse", () => {
});

it("should parse headers", () => {
const text = `skip me,asIs,stringColumn,boolean column, number column \r\nskipping this data,"as is",bla bla,false,123.123
const text = `missing data,skip me,asIs,stringColumn,boolean column, number column \r\n,skipping this data,"as is",bla bla,false,123.123
`;
const rows = parse(text, {
header: {
asIs: true,
stringColumn: String,
"boolean column": { parse: (v) => Boolean(v && v !== "false"), newName: "booleanColumn" },
" number column ": { parse: (v) => (v && !Number.isNaN(Number(v)) ? Number(v) : "") },
" number column ": (v) => (v && !Number.isNaN(Number(v)) ? Number(v) : ""),
"missing data": (v) => v || undefined,
},
});
assert.deepStrictEqual(rows, [
Expand Down

0 comments on commit 71e39a9

Please sign in to comment.