UNPKG

@rr0/data

Version:
31 lines (30 loc) 1.09 kB
import { TypedDataFactory } from "../TypedDataFactory.js"; import { NamedPlace } from "@rr0/place"; import { Level2Date as EdtfDate } from "@rr0/time"; /** * A RR0Data factory which can read either <someType>.json files of index.json with a "type": "<someType>" property. */ export class EventDataFactory extends TypedDataFactory { constructor(eventFactory, eventTypes, fileNames = eventTypes) { super(eventFactory, "event", fileNames); this.eventTypes = eventTypes; this.fileNames = fileNames; } parse(dataJson) { const data = super.parse(dataJson); Object.assign(data, { eventType: dataJson.eventType, time: EdtfDate.fromString(dataJson.time), place: new NamedPlace(dataJson.place) }); return data; } createFromFile(file) { const event = super.createFromFile(file); let eventData; if (this.eventTypes.includes(event === null || event === void 0 ? void 0 : event.eventType)) { eventData = event; } return eventData; } }