All files / converters/jsontocsv/src json-to-csv.ts

100% Statements 7/7
100% Branches 5/5
100% Functions 3/3
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11  1x 1x   4x       32x   1x
/* eslint-disable @typescript-eslint/no-explicit-any */
export const jsonToCsv = (arr: any[], columns: string[], delimiter = ","): string =>
    [
        columns.join(delimiter),
        ...arr.map((obj) =>
            // eslint-disable-next-line security/detect-object-injection
            columns.reduce((acc, key) => `${acc}${!acc.length ? "" : delimiter}"${!obj[key] ? "" : obj[key]}"`, ""),
        ),
    ].join("\n");
/* eslint-enable @typescript-eslint/no-explicit-any */