getLatestVersionFromPackage static method

Future<String?> getLatestVersionFromPackage(
  1. String package
)

Implementation

static Future<String?> getLatestVersionFromPackage(String package) async {
  final languageCode = Platform.localeName.split('_')[0];
  final pubSite = languageCode == 'zh'
      ? 'https://pub.flutter-io.cn/api/packages/$package'
      : 'https://pub.dev/api/packages/$package';
  var uri = Uri.parse(pubSite);

  try {
    var response = await get(uri);

    // Handle different HTTP status codes
    if (response.statusCode == 200) {
      final version =
          json.decode(response.body)['latest']['version'] as String?;
      if (version != null) {
        return version;
      } else {
        _logError(LocaleKeys.error_package_not_found.trArgs([package]));
      }
    } else if (response.statusCode == 404) {
      _logPackageNotFound(package);
    } else {
      _logError('Unexpected status code: ${response.statusCode}');
    }
  } on Exception catch (err) {
    _logError('Exception occurred: $err');
  }
  return null;
}