getPublishedPackage method

Future<PubHostedPackage?> getPublishedPackage({
  1. MelosLogger? logger,
  2. RetryNoticeCallback? onRetry,
  3. RetryBackoff backoff = const RetryBackoff(),
  4. 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,
  );
}