import { ArrayCsvStringifier } from './csv-stringifiers/array' ; import { createFieldStringifier } from './field-stringifier' ; import { ObjectCsvStringifier } from './csv-stringifiers/object' ; import { ObjectStringifierHeader } from './record' ; export interface ArrayCsvStringifierParams { header ? : string [ ] ; fieldDelimiter ? : string ; recordDelimiter ? : string ; alwaysQuote ? : boolean ; } export interface ObjectCsvStringifierParams { header : ObjectStringifierHeader ; fieldDelimiter ? : string ; recordDelimiter ? : string ; headerIdDelimiter ? : string ; alwaysQuote ? : boolean ; } export class CsvStringifierFactory { createArrayCsvStringifier ( params ) { const fieldStringifier = createFieldStringifier ( params . fieldDelimiter , params . alwaysQuote ) ; return new ArrayCsvStringifier ( fieldStringifier , params . recordDelimiter , params . header ) ; } createObjectCsvStringifier ( params ) { const fieldStringifier = createFieldStringifier ( params . fieldDelimiter , params . alwaysQuote ) ; return new ObjectCsvStringifier ( fieldStringifier , params . header , params . recordDelimiter , params . headerIdDelimiter ) ; } }