public suspend fun searchProjects()

in http/client/src/commonMain/kotlin/org/jetbrains/packagesearch/api/v3/http/PackageSearchApiClient.kt [414:438]


    public suspend fun searchProjects(
        request: SearchProjectRequest,
        requestBuilder: (HttpRequestBuilder.() -> Unit)?,
    ): List<ApiProject> {

        val apiProjectsCache = apiProjectCacheCollection.await()

        apiProjectsCache.find(selector = SearchCacheEntry::key.name, value = request)
            .firstOrNull()?.also { if (!it.isExpired(cacheDuration)) return it.value }

        return defaultRequest<_, List<ApiProject>>(
            method = HttpMethod.Post,
            url = endpoints.searchPackages,
            body = request,
            requestBuilder = requestBuilder,
        ).also {
            apiProjectsCache.updateWhere(
                fieldSelector = ApiProjectCacheEntry::key.name,
                fieldValue = request,
                upsert = true,
                update = ApiProjectCacheEntry(request, it)
            )
        }

    }