@blue-impact-engine/blue-impact-engine-client
Version:
Blue Impact Engine API Client
76 lines • 2.47 kB
JavaScript
/**
* Formatting utilities
*/
export const formatting = {
/**
* Format date to ISO string
* @param date - Date to format
* @returns string - ISO formatted date
*/
formatDate(date) {
if (typeof date === "string") {
return new Date(date).toISOString();
}
return date.toISOString();
},
/**
* Format currency amount
* @param amount - Amount to format
* @param currency - Currency code (default: USD)
* @param locale - Locale (default: en-US)
* @returns string - Formatted currency
*/
formatCurrency(amount, currency = "USD", locale = "en-US") {
return new Intl.NumberFormat(locale, {
style: "currency",
currency,
}).format(amount);
},
/**
* Format file size in human readable format
* @param bytes - Size in bytes
* @returns string - Formatted size
*/
formatFileSize(bytes) {
const sizes = ["Bytes", "KB", "MB", "GB", "TB"];
if (bytes === 0)
return "0 Bytes";
const i = Math.floor(Math.log(bytes) / Math.log(1024));
return Math.round((bytes / Math.pow(1024, i)) * 100) / 100 + " " + sizes[i];
},
/**
* Format duration in human readable format
* @param milliseconds - Duration in milliseconds
* @returns string - Formatted duration
*/
formatDuration(milliseconds) {
const seconds = Math.floor(milliseconds / 1000);
const minutes = Math.floor(seconds / 60);
const hours = Math.floor(minutes / 60);
const days = Math.floor(hours / 24);
if (days > 0)
return `${days}d ${hours % 24}h`;
if (hours > 0)
return `${hours}h ${minutes % 60}m`;
if (minutes > 0)
return `${minutes}m ${seconds % 60}s`;
return `${seconds}s`;
},
/**
* Format phone number
* @param phone - Phone number to format
* @param country - Country code (default: US)
* @returns string - Formatted phone number
*/
formatPhoneNumber(phone, country = "US") {
// Simple US phone number formatting
if (country === "US") {
const cleaned = phone.replace(/\D/g, "");
if (cleaned.length === 10) {
return `(${cleaned.slice(0, 3)}) ${cleaned.slice(3, 6)}-${cleaned.slice(6)}`;
}
}
return phone;
},
};
//# sourceMappingURL=formattingUtils.js.map