UNPKG

rpg-calendar

Version:

Low level library for working with RPG/Fantasy dates

80 lines (79 loc) 2 kB
import { MonthTypes } from './monthTypes'; export interface RPGCalendarConfig { name: string; leapYearInterval?: number; hasYear0?: boolean; weekdays: RPGCalendarWeekday[]; months: RPGCalendarMonth[]; seasons: RPGCalendarSeason[]; yearNameMap?: Record<string, string>; hoursInDay?: number; minutesInHour?: number; secondsInMinutes?: number; monthStartOnWeekStart: boolean; } export interface RPGCalendarExtraDay { name: string; onlyInLeapYear?: boolean; } export interface RPGCalendarSeason { name: string; dayOfMonth: number; monthOfYear: number; } export interface RPGCalendarMonth { name: string; daysInMonth: number; monthInYear: number; type?: MonthTypes; extraDays?: RPGCalendarExtraDay[]; } export interface RPGCalendarMoonPhase { icon?: string; name?: string; value?: string; } export interface RPGCalendarWeekday { name: string; } export interface RPGCalendarTime { hour?: number; minute?: number; second?: number; } export interface RPGCalendarDate { dayName?: string; dayOfMonth?: number; dayOfWeek?: number; dayOfYear?: number; epochDay?: number; epochDayTime?: string; inLeapYear?: boolean; monthName?: string; monthOfYear?: number; moonPhase?: RPGCalendarMoonPhase; season?: string; time?: RPGCalendarTime; year?: number; yearName?: string; extraDay?: RPGCalendarExtraDay; } export interface RPGCalendarMonthQuery { month: number; year: number; } export interface RPGCalendarMonthDisplay extends RPGCalendarMonth { year: number; monthOfYear: number; yearName?: string; weeks: RPGCalendarDate[][]; weekdays: RPGCalendarWeekday[]; nextMonthQuery: RPGCalendarMonthQuery; prevMonthQuery: RPGCalendarMonthQuery; nextYearQuery: RPGCalendarMonthQuery; prevYearQuery: RPGCalendarMonthQuery; } export interface RPGDateSpan { start: RPGCalendarDate; end: RPGCalendarDate; }