getVersionInfo method
Get detailed information for a specific version of a package.
GET /api/packages/{package}/versions/{version}
Returns {version, pubspec, archive_url, ...}. Returns null on
failure.
Implementation
Future<Map<String, dynamic>?> getVersionInfo(
String packageName,
String version,
) async {
final cacheKey = 'pub_version_${packageName}_$version';
final cached = await _cache.get(cacheKey);
if (cached != null) return cached;
try {
Logger.debug('Fetching version info for $packageName@$version');
final response = await _http.get(
'$_baseUrl/packages/$packageName/versions/$version',
);
if (!response.isSuccess) {
Logger.warn(
'Failed to fetch version info for $packageName@$version: '
'HTTP ${response.statusCode}',
);
return null;
}
final data = response.json;
// Version-specific data is immutable once published, so we can cache it
// for a long time.
await _cache.set(cacheKey, data, CacheManager.versionDetailsTtl);
return data;
} catch (e, stack) {
Logger.error(
'Error fetching version info for $packageName@$version',
e,
stack,
);
return null;
}
}