@date-vir/duration
Version:
Durations units an utils for date-vir.
27 lines (26 loc) • 836 B
JavaScript
import { convertDuration } from './convert-duration.js';
import { orderedDurationUnits } from './units/duration-unit.js';
/**
* Set each selected duration unit to the full value of the full given duration.
*
* @category Duration
* @example
*
* ```ts
* import {equalizeDuration} from 'date-vir';
*
* equalizeDuration({seconds: 5_356_800}, {weeks: true, seconds: true});
* // `{weeks: 8, seconds: 518_400}`
* ```
*/
export function equalizeDuration(duration,
/** Select which duration units to equalize to. */
units, options) {
const equalizedDurations = {};
orderedDurationUnits.forEach((durationUnit) => {
if (units[durationUnit]) {
equalizedDurations[durationUnit] = convertDuration(duration, { [durationUnit]: true }, options)[durationUnit];
}
});
return equalizedDurations;
}