ext/isValidDate.ts

/** @module Extra */

/**
 * Checks is passed in date is a valid date.
 * @example
 * isValidDate(new Date())
 * // Returns true
 * @example
 * isValidDate(new Date().toString())
 * // Returns true
 * @example
 * isValidDate('12345678')
 * // Returns false
 * @function
 * @param { Date|String } date - value to check
 * @return {Boolean} T/F - if passed in date is a valid date
 */
export const isValidDate = <T = Date>(date: any): date is T =>
  !isNaN(((date instanceof Date && date) || new Date(date)).getTime())