All files / src between.ts

100% Statements 11/11
100% Branches 0/0
100% Functions 2/2
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  2x               2x 12x 12x 12x   96x 96x     12x    
import { Duration, DateInput } from './types';
import { ZERO, UNITS_META } from './lib/units';
 
/**
 * Gets the difference between two dates, expressed as a duration object.
 *
 * @example
 * between('2022-01-01', '2020-01-01') // { years: -2, months: 0, weeks: 0, ... }
 */
export const between = (date1: DateInput, date2: DateInput): Duration => {
	const a = new Date(date1);
	const b = new Date(date2);
	const output: Duration = { ...ZERO };
 
	UNITS_META.forEach(({ unit, dateGetter }) => {
		output[unit] = dateGetter(b) - dateGetter(a);
	});
 
	return output;
};