import { Settlement } from "../Settlement" import { Agent } from "./Agent" import * as column from "./column" import { Complete } from "./Complete" import { convert } from "./convert" import { CostPlus } from "./CostPlus" import { Master } from "./Master" import { Merchant } from "./Merchant" export function toCsv( settlements: Settlement[] | Complete.Csv | Agent.Csv | CostPlus.Csv | Merchant.Csv | Master.Csv, role?: "merchant" | "agent" | "master", costPlus?: true ): string { const csv = "header" in settlements ? settlements : convert(settlements, role ? role : undefined, costPlus ? costPlus : undefined) return [ csv.header.join(), ...csv.data.map((line: Settlement | Complete | Agent | CostPlus | Merchant | Master) => Object.values(line) .map((value, index) => `"${value != undefined ? value : column.defaultValues[csv.header[index]]}"`) .join() ), ].join(`\r\n`) }