ServiceSearchQuery toServiceQuery()

in app/lib/search/search_form.dart [153:193]


  ServiceSearchQuery toServiceQuery() {
    final prohibitLegacy = !context.includeAll &&
        !parsedQuery.tagsPredicate.anyTag((tag) =>
            tag == PackageVersionTags.isLegacy ||
            tag == PackageVersionTags.showLegacy ||
            tag == PackageTags.showHidden);
    final prohibitDiscontinued = !context.includeAll &&
        !includeDiscontinued &&
        !parsedQuery.tagsPredicate.anyTag((tag) =>
            tag == PackageTags.isDiscontinued ||
            tag == PackageTags.showDiscontinued ||
            tag == PackageTags.showHidden);
    final prohibitUnlisted = !context.includeAll &&
        !includeUnlisted &&
        !parsedQuery.tagsPredicate.anyTag((tag) =>
            tag == PackageTags.isUnlisted ||
            tag == PackageTags.showUnlisted ||
            tag == PackageTags.showHidden);
    final tagsPredicate = TagsPredicate(
      requiredTags: [
        if (nullSafe) PackageVersionTags.isNullSafe,
        if (context.isFlutterFavorites) PackageTags.isFlutterFavorite,
        if (SdkTagValue.isNotAny(context.sdk)) 'sdk:${context.sdk}',
        ...runtimes.map((v) => 'runtime:$v'),
        ...platforms.map((v) => 'platform:$v'),
      ],
      prohibitedTags: [
        if (prohibitDiscontinued) PackageTags.isDiscontinued,
        if (prohibitUnlisted) PackageTags.isUnlisted,
        if (prohibitLegacy) PackageVersionTags.isLegacy,
      ],
    );
    return ServiceSearchQuery.parse(
      query: query,
      tagsPredicate: tagsPredicate,
      publisherId: context.publisherId,
      offset: offset,
      limit: pageSize,
      order: order,
    );
  }