text: import { getLocale } from './getLocale.js';
  import { normalizeDate } from './normalizeDate.js';
  
  /**
   * Formats date based on locale and options
   *
   * @param date
   * @param options
   * @returns {*}
   */
  export function formatDate(date, options) {
    if (!(date instanceof Date)) {
      return '';
    }
    const formatOptions = options || {};
    // make sure months and days are always 2-digits
    if (!options) {
      formatOptions.year = 'numeric';
      formatOptions.month = '2-digit';
      formatOptions.day = '2-digit';
    }
    if (options && !(options && options.year)) {
      formatOptions.year = 'numeric';
    }
    if (options && !(options && options.month)) {
      formatOptions.month = '2-digit';
    }
    if (options && !(options && options.day)) {
      formatOptions.day = '2-digit';
    }
  
    const computedLocale = getLocale(formatOptions && formatOptions.locale);
    let formattedDate = '';
    try {
      formattedDate = new Intl.DateTimeFormat(computedLocale, formatOptions).format(date);
    } catch (e) {
      formattedDate = '';
    }
    return normalizeDate(formattedDate);
  }
  