@rr0/cms
Version:
RR0 Content Management System (CMS)
28 lines (27 loc) • 949 B
JavaScript
import { UfoSearchDatasource } from "./UfoSearchDatasource.js";
import { JsonMapper } from "../JsonMapper.js";
import { FileContents } from "@javarome/fileutil";
class FileMapper extends JsonMapper {
constructor(mapper) {
super();
this.mapper = mapper;
}
parse(context, data) {
const allData = super.parse(context, data);
return allData["Majestic Timeline"].map((line) => this.mapper.map(context, line, context.file.lastModified));
}
}
export class UfoSearchFileDatasource extends UfoSearchDatasource {
constructor(fileName, mapper) {
super();
this.fileName = fileName;
this.fileMapper = new FileMapper(mapper);
}
async readCases(context) {
const file = FileContents.read(this.fileName, "utf-8");
return this.fileMapper.parse(context, file.contents);
}
save(context, fetched, fetchTime) {
throw new Error("Not implemented");
}
}