@alba-cars/common-modules
Version:
A package containing DTOs, validation classes and common modules and interfaces for Alba Cars
40 lines (39 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatCurrency = void 0;
/**
* Formats a number as UAE Dirham (AED) currency with proper comma separation
* @param amount The numeric value to be formatted
* @param options Optional configuration for formatting
* @returns Formatted currency string
*/
const formatCurrency = (amount, options = {}) => {
// If amount is null or undefined, return 'N/A'
if (amount == null)
return 'N/A';
// Default options
const { currency = 'AED', minimumFractionDigits = 0, maximumFractionDigits = 0 } = options;
try {
// Use English locale to ensure consistent formatting
const formatter = new Intl.NumberFormat('en-US', {
minimumFractionDigits,
maximumFractionDigits,
useGrouping: true
});
// Format the number with comma separation
const formattedAmount = formatter.format(amount);
// Prepend AED to the formatted amount
return `AED ${formattedAmount}`;
}
catch (error) {
// Fallback formatting if Intl.NumberFormat fails
console.warn('Currency formatting failed, using basic formatting', error);
// Basic fallback formatting
const baseFormatted = amount.toLocaleString('en-US', {
minimumFractionDigits,
maximumFractionDigits
});
return `AED ${baseFormatted}`;
}
};
exports.formatCurrency = formatCurrency;