UNPKG

@openinc/parse-server-opendash

Version:
60 lines (59 loc) 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.eventToSchedule = eventToSchedule; function eventToSchedule(event) { const recurrence = event?.recurrence; if (!recurrence) return undefined; const pattern = recurrence.pattern; const range = recurrence.range; if (!pattern || !range || !pattern.type) return undefined; let unit; switch (pattern.type) { case "daily": unit = "days"; break; case "weekly": unit = "weeks"; break; case "absoluteMonthly": case "relativeMonthly": unit = "months"; break; default: // unsupported recurrence type return undefined; } const interval = typeof pattern.interval === "number" && pattern.interval > 0 ? pattern.interval : 1; // Prefer explicit range.startDate, fallback to event.start.dateTime let startData; if (range?.startDate) { // range.startDate is YYYY-MM-DD startData = new Date(range.startDate + "T00:00:00Z"); } else if (event.start?.dateTime) { startData = new Date(event.start.dateTime); } // For end, prefer range.endDate. If range.type === 'noEnd' leave undefined. let endData; if (range?.type === "endDate" && range?.endDate) { endData = new Date(range.endDate + "T00:00:00Z"); } else if (event.end?.dateTime) { endData = new Date(event.end.dateTime); } if (!startData) return undefined; return { schedule_type: "timestamp", timestamp: { startData, endData, number: interval, unit, }, }; }