UNPKG

@date-vir/duration

Version:

Durations units an utils for date-vir.

84 lines (83 loc) 2.42 kB
/** * All duration units supported by date-vir. * * @category Unit */ export var DurationUnit; (function (DurationUnit) { DurationUnit["Years"] = "years"; DurationUnit["Quarters"] = "quarters"; DurationUnit["Months"] = "months"; DurationUnit["Weeks"] = "weeks"; DurationUnit["Days"] = "days"; DurationUnit["Hours"] = "hours"; DurationUnit["Minutes"] = "minutes"; DurationUnit["Seconds"] = "seconds"; DurationUnit["Milliseconds"] = "milliseconds"; })(DurationUnit || (DurationUnit = {})); /** * A mapping of {@link DurationUnit} to to all of its values' singular duration names in English. * * @category Internal */ export const singularDurationUnitNames = { [DurationUnit.Years]: 'year', [DurationUnit.Quarters]: 'quarter', [DurationUnit.Months]: 'month', [DurationUnit.Weeks]: 'week', [DurationUnit.Days]: 'day', [DurationUnit.Hours]: 'hour', [DurationUnit.Minutes]: 'minute', [DurationUnit.Seconds]: 'second', [DurationUnit.Milliseconds]: 'millisecond', }; /** * A mapping of {@link DurationUnit} to to all of its values' abbreviations in English. * * @category Internal */ export const durationUnitNameAbbreviations = { [DurationUnit.Years]: 'yr', [DurationUnit.Quarters]: 'q', [DurationUnit.Months]: 'mo', [DurationUnit.Weeks]: 'wk', [DurationUnit.Days]: 'd', [DurationUnit.Hours]: 'hr', [DurationUnit.Minutes]: 'min', [DurationUnit.Seconds]: 'sec', [DurationUnit.Milliseconds]: 'ms', }; /** * Array of sorted {@link DurationUnit} possibilities: from smallest unit (milliseconds at index 0) * to longest unit (years). * * @category Internal */ export const orderedDurationUnits = [ DurationUnit.Milliseconds, DurationUnit.Seconds, DurationUnit.Minutes, DurationUnit.Hours, DurationUnit.Days, DurationUnit.Weeks, DurationUnit.Months, DurationUnit.Quarters, DurationUnit.Years, ]; /** * The maximum value, exclusive, for each duration unit before it should roll-over into the next * duration unit. * * @category Internal */ export const maxDurations = { [DurationUnit.Milliseconds]: 1000, [DurationUnit.Seconds]: 60, [DurationUnit.Minutes]: 60, [DurationUnit.Hours]: 24, [DurationUnit.Days]: 30, [DurationUnit.Weeks]: 4, [DurationUnit.Months]: 12, [DurationUnit.Quarters]: 4, [DurationUnit.Years]: Infinity, };