import type { CalendarDay, CalendarMonth } from "../classes/index.js"; /** * Returns all the days belonging to the calendar by merging the days in the * weeks for each month. * * @param calendarMonths The array of calendar months. * @returns An array of `CalendarDay` objects representing all the days in the * calendar. */ export function getDays(calendarMonths: CalendarMonth[]) { const initialDays: CalendarDay[] = []; return calendarMonths.reduce((days, month) => { const weekDays: CalendarDay[] = month.weeks.reduce((weekDays, week) => { return weekDays.concat(week.days.slice()); }, initialDays.slice()); return days.concat(weekDays.slice()); }, initialDays.slice()); }