UNPKG

icalendar-events

Version:

A RFC5545 compliant parser for iCalendar VEVENT with time zone support and accurate recurring events generation.

51 lines (50 loc) 2.39 kB
export function toSQL(dateTime) { if (dateTime.isDate) { return dateTime.toSQLDate(); } else { return dateTime.toSQL({ includeZone: true }); } } export function setSmallUnits(dateTime, origin, upTo) { switch (upTo) { case "millisecond": return dateTime.set({ millisecond: origin.millisecond }); case "second": return dateTime.set({ millisecond: origin.millisecond, second: origin.second }); case "minute": return dateTime.set({ millisecond: origin.millisecond, second: origin.second, minute: origin.minute }); case "hour": return dateTime.set({ millisecond: origin.millisecond, second: origin.second, minute: origin.minute, hour: origin.hour }); case "day": return dateTime.set({ millisecond: origin.millisecond, second: origin.second, minute: origin.minute, hour: origin.hour, day: origin.day }); case "week": return dateTime.set({ millisecond: origin.millisecond, second: origin.second, minute: origin.minute, hour: origin.hour, localWeekday: origin.localWeekday, localWeekNumber: origin.localWeekNumber }); case "month": return dateTime.set({ millisecond: origin.millisecond, second: origin.second, minute: origin.minute, hour: origin.hour, day: origin.day, month: origin.month }); case "year": return dateTime.set({ millisecond: origin.millisecond, second: origin.second, minute: origin.minute, hour: origin.hour, day: origin.day, month: origin.month, year: origin.year }); default: throw new Error(`DateTime setSmallUnits: invalid unit: ${upTo}`); } } export function plusUnit(dateTime, unit, interval) { switch (unit) { case "second": return dateTime.plus({ seconds: interval }); case "minute": return dateTime.plus({ minutes: interval }); case "hour": return dateTime.plus({ hours: interval }); case "day": return dateTime.plus({ days: interval }); case "week": return dateTime.plus({ weeks: interval }); case "month": return dateTime.plus({ months: interval }); case "year": return dateTime.plus({ years: interval }); default: throw new Error(`DateTime plusUnit: invalid unit: ${unit}`); } }