function fractionDigits(currency: string): number {
    try {
        return (
            new Intl.NumberFormat('fr-FR', {
                style: 'currency',
                currency,
            }).resolvedOptions().maximumFractionDigits ?? 2
        );
    } catch {
        return 2;
    }
}

export function formatMinor(
    amount: number | string | null | undefined,
    currency = 'EUR',
): string {
    const minor = Number(amount ?? 0);
    const digits = fractionDigits(currency);

    return new Intl.NumberFormat('fr-FR', {
        style: 'currency',
        currency,
    }).format(minor / 10 ** digits);
}
