tryParse static method

Future<PhoneParseResult?> tryParse(
  1. String phone, {
  2. FxCountry? country,
  3. String? region,
})

Parses phone and returns structured fields, or null if invalid.

Implementation

static Future<PhoneParseResult?> tryParse(
  String phone, {
  FxCountry? country,
  String? region,
}) async {
  final trimmed = phone.trim();
  if (trimmed.isEmpty) return null;

  try {
    final parsed = await parse(
      trimmed,
      region: country?.code ?? region,
    );

    final fullNumber = parsed['e164'] as String?;
    final formattedNumber = parsed['international'] as String?;
    if (fullNumber == null || formattedNumber == null) return null;

    return PhoneParseResult(
      fullNumber: fullNumber,
      formattedNumber: formattedNumber,
      national: parsed['national'] as String?,
      type: parsed['type'] as String?,
    );
  } catch (_) {
    return null;
  }
}