import Dinero from 'dinero.js'; import { Currency } from './types'; import { CURRENCY_CONFIGS } from './constants'; /** * Format money amount for display * * @param amount Amount to format (as number or Dinero object) * @param currency Currency to use for formatting * @param locale Locale for formatting (optional, defaults to currency's default locale) * @returns Formatted string */ export const formatMoney = ( amount: number | Dinero.Dinero, currency: Currency, locale?: string ): string => { const config = CURRENCY_CONFIGS[currency]; const formatLocale = locale || config.locale; let numericAmount: number; if (typeof amount === 'number') { numericAmount = amount; } else { numericAmount = amount.getAmount(); } return new Intl.NumberFormat(formatLocale, { style: 'currency', currency: currency, minimumFractionDigits: 0, maximumFractionDigits: 0, }).format(numericAmount); };