@rr0/cms
Version:
RR0 Content Management System (CMS)
19 lines (18 loc) • 696 B
JavaScript
import { CsvMapper } from "../CsvMapper.js";
import { CsvFileSource } from "../CsvFileSource.js";
import { RR0Datasource } from "./RR0Datasource.js";
export class RR0FileDatasource extends RR0Datasource {
constructor(mapper) {
super();
this.mapper = mapper;
this.file = new CsvFileSource();
}
save(context, fetched, fetchTime) {
return this.file.write(context, fetched, fetchTime, this);
}
async readCases(context) {
const fileMapper = new CsvMapper();
const file = await this.file.read(context, this);
return fileMapper.parse(file.contents).map(csvCase => this.mapper.map(context, csvCase, file.lastModified));
}
}