@rr0/cms
Version:
RR0 Content Management System (CMS)
24 lines (23 loc) • 818 B
JavaScript
import { CsvMapper } from "./CsvMapper.js";
import { FileSource } from "./FileSource.js";
export class CsvFileSource extends FileSource {
constructor(encoding = "utf-8", separator = ",") {
super(encoding);
this.mapper = new CsvMapper(separator);
}
/**
* Get the file name to read/write data from an external datasource.
*
* @param context
* @param datasource
* @protected
*/
fileName(context, datasource) {
return super.fileName(context, datasource) + ".csv";
}
write(context, datasourceCases, fetchTime, datasource) {
const csvContents = this.mapper.mapAll(context, datasourceCases, fetchTime);
return super.writeContents(context, csvContents, datasource);
}
}
CsvFileSource.specialChars = /[ \-?!&*#().:\/\\;=°',]/g;