import { toDate } from "./toDate.mjs"; /** * @name max * @category Common Helpers * @summary Return the latest of the given dates. * * @description * Return the latest of the given dates. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). * * @param dates - The dates to compare * * @returns The latest of the dates * * @example * // Which of these dates is the latest? * const result = max([ * new Date(1989, 6, 10), * new Date(1987, 1, 11), * new Date(1995, 6, 2), * new Date(1990, 0, 1) * ]) * //=> Sun Jul 02 1995 00:00:00 */ export function max(dates) { let result; dates.forEach(function (dirtyDate) { const currentDate = toDate(dirtyDate); if ( result === undefined || result < currentDate || isNaN(Number(currentDate)) ) { result = currentDate; } }); return result || new Date(NaN); } // Fallback for modularized imports: export default max;