csv-writer
Version:
Convert objects/arrays into a CSV string or write them into a CSV file
34 lines (27 loc) • 1.21 kB
text/typescript
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: ArrayCsvStringifierParams) {
const fieldStringifier = createFieldStringifier(params.fieldDelimiter, params.alwaysQuote);
return new ArrayCsvStringifier(fieldStringifier, params.recordDelimiter, params.header);
}
createObjectCsvStringifier(params: ObjectCsvStringifierParams) {
const fieldStringifier = createFieldStringifier(params.fieldDelimiter, params.alwaysQuote);
return new ObjectCsvStringifier(fieldStringifier, params.header, params.recordDelimiter, params.headerIdDelimiter);
}
}