@date-vir/duration
Version:
Durations units an utils for date-vir.
80 lines (79 loc) • 2.34 kB
JavaScript
import { DateUnit } from './date-unit.js';
/**
* All duration units supported by date-vir.
*
* @category Unit
*/
export var DurationUnit;
(function (DurationUnit) {
DurationUnit["Years"] = "years";
DurationUnit["Months"] = "months";
DurationUnit["Weeks"] = "weeks";
DurationUnit["Days"] = "days";
DurationUnit["Hours"] = "hours";
DurationUnit["Minutes"] = "minutes";
DurationUnit["Seconds"] = "seconds";
DurationUnit["Milliseconds"] = "milliseconds";
})(DurationUnit || (DurationUnit = {}));
/**
* 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.Years,
];
/**
* The maximum value, exclusive, for each duration unit before it should roll-over into the next
* duration unit.
*
* @category Internal
*/
export const maxDurations = {
[]: 1000,
[]: 60,
[]: 60,
[]: 24,
[]: 30,
[]: 4,
[]: 12,
[]: Infinity,
};
/**
* A mapping from {@link DurationUnit} to {@link DateUnit}.
*
* @category Unit
*/
export const durationUnitToDateUnit = {
[]: DateUnit.Year,
[]: DateUnit.Month,
[]: DateUnit.Week,
[]: DateUnit.Day,
[]: DateUnit.Hour,
[]: DateUnit.Minute,
[]: DateUnit.Second,
[]: DateUnit.Millisecond,
};
/**
* A mapping from {@link DateUnit} to {@link DurationUnit}.
*
* @category Unit
*/
export const dateUnitToDurationUnit = {
[]: DurationUnit.Years,
[]: DurationUnit.Months,
[]: DurationUnit.Weeks,
[]: DurationUnit.Days,
[]: DurationUnit.Hours,
[]: DurationUnit.Minutes,
[]: DurationUnit.Seconds,
[]: DurationUnit.Milliseconds,
};