getPublishedPackage method
Future<PubHostedPackage?>
getPublishedPackage({
- MelosLogger? logger,
- RetryNoticeCallback? onRetry,
- RetryBackoff backoff = const RetryBackoff(),
- Duration? timeout,
Queries the pub registry for published versions of this package.
By default this uses the standard retry/backoff configuration; callers
can override backoff, timeout or onRetry (primarily in tests) and
optionally emit retry warnings through logger.
Implementation
Future<PubHostedPackage?> getPublishedPackage({
MelosLogger? logger,
RetryNoticeCallback? onRetry,
RetryBackoff backoff = const RetryBackoff(),
Duration? timeout,
}) async {
if (isPrivate) {
return null;
}
final retryNoticeHandler =
onRetry ??
(logger == null
? null
: (notice) {
final delayDescription = notice.delay.inSeconds >= 1
? '${notice.delay.inSeconds}s'
: '${notice.delay.inMilliseconds}ms';
logger.warning(
'Retrying ${notice.method} ${notice.url} '
'(${notice.attempt}/${notice.maxAttempts}) '
'in $delayDescription because ${notice.reason}.',
label: false,
);
});
final pubClient = pub.PubHostedClient.fromUri(pubHosted: publishTo);
return pubClient.fetchPackage(
name,
logger: logger,
onRetry: retryNoticeHandler,
backoff: backoff,
timeout: timeout,
);
}