@gouvfr-anct/timetable-to-osm-opening-hours
Version:
📚 Bibliothèque pour la transformation d'une série de plages horaires représentant un format emploi du temps vers le standard OSM pour les horaires d'ouverture.
15 lines (14 loc) • 972 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.fromTimetableOpeningHours = void 0;
const from_timetable_osm_opening_hours_1 = require("./from-timetable-osm-opening-hours");
const isOpenOn = (daySchedule) => daySchedule.am.isOpen || daySchedule.pm.isOpen;
const toOsmHours = (daySchedule) => [
...(daySchedule.am.isOpen ? [[daySchedule.am.startTime, daySchedule.am.endTime].join('-')] : []),
...(daySchedule.pm.isOpen ? [[daySchedule.pm.startTime, daySchedule.pm.endTime].join('-')] : [])
].join(',');
const toOsmOpeningHours = (osmOpeningHours, [day, daySchedule]) => isOpenOn(daySchedule)
? [...osmOpeningHours, { day: day, osmHours: toOsmHours(daySchedule) }]
: osmOpeningHours;
const fromTimetableOpeningHours = (schedule) => (0, from_timetable_osm_opening_hours_1.fromTimetableOsmOpeningHours)(Object.entries(schedule).reduce(toOsmOpeningHours, []));
exports.fromTimetableOpeningHours = fromTimetableOpeningHours;