mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-09 22:28:21 +00:00
feat(backend-api): Add allPackageReleases query
This commit is contained in:
@@ -417,6 +417,7 @@ type PackageVersion implements Node & PackageReleaseInterface & PackageInstance
|
|||||||
deletedAt: DateTime
|
deletedAt: DateTime
|
||||||
package: Package!
|
package: Package!
|
||||||
webc: WebcImage
|
webc: WebcImage
|
||||||
|
webcV3: WebcImage
|
||||||
|
|
||||||
"""List of direct dependencies of this package version"""
|
"""List of direct dependencies of this package version"""
|
||||||
dependencies(offset: Int, before: String, after: String, first: Int, last: Int): PackageVersionConnection!
|
dependencies(offset: Int, before: String, after: String, first: Int, last: Int): PackageVersionConnection!
|
||||||
@@ -457,7 +458,7 @@ type PackageVersion implements Node & PackageReleaseInterface & PackageInstance
|
|||||||
piritaFile: String @deprecated(reason: "Please use distribution.piritaDownloadUrl instead.")
|
piritaFile: String @deprecated(reason: "Please use distribution.piritaDownloadUrl instead.")
|
||||||
piritaFileSize: Int @deprecated(reason: "Please use distribution.piritaSize instead.")
|
piritaFileSize: Int @deprecated(reason: "Please use distribution.piritaSize instead.")
|
||||||
pirita256hash: String @deprecated(reason: "Please use distribution.piritaSha256Hash instead.")
|
pirita256hash: String @deprecated(reason: "Please use distribution.piritaSha256Hash instead.")
|
||||||
distribution: PackageDistribution!
|
distribution(version: WebcVersion): PackageDistribution!
|
||||||
filesystem: [PackageVersionFilesystem]!
|
filesystem: [PackageVersionFilesystem]!
|
||||||
isLastVersion: Boolean!
|
isLastVersion: Boolean!
|
||||||
witFile: String
|
witFile: String
|
||||||
@@ -1040,6 +1041,11 @@ type PackageDistribution {
|
|||||||
webcSha256Hash: String
|
webcSha256Hash: String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum WebcVersion {
|
||||||
|
V2
|
||||||
|
V3
|
||||||
|
}
|
||||||
|
|
||||||
type PackageVersionFilesystem {
|
type PackageVersionFilesystem {
|
||||||
wasm: String!
|
wasm: String!
|
||||||
host: String!
|
host: String!
|
||||||
@@ -1218,7 +1224,7 @@ type PackageWebcEdge {
|
|||||||
cursor: String!
|
cursor: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
type PackageWebc implements Node & PackageReleaseInterface {
|
type PackageWebc implements Node & PackageReleaseInterface & PackageInstance {
|
||||||
"""The ID of the object"""
|
"""The ID of the object"""
|
||||||
id: ID!
|
id: ID!
|
||||||
createdAt: DateTime!
|
createdAt: DateTime!
|
||||||
@@ -2284,7 +2290,7 @@ type Query {
|
|||||||
getCommands(names: [String!]!): [Command]
|
getCommands(names: [String!]!): [Command]
|
||||||
getCollections(before: String, after: String, first: Int, last: Int): CollectionConnection
|
getCollections(before: String, after: String, first: Int, last: Int): CollectionConnection
|
||||||
getSignedUrlForPackageUpload(name: String!, version: String = "latest", expiresAfterSeconds: Int = 60): SignedUrl
|
getSignedUrlForPackageUpload(name: String!, version: String = "latest", expiresAfterSeconds: Int = 60): SignedUrl
|
||||||
getPackageHash(hash: String!): PackageWebc
|
getPackageHash(name: String, hash: String!): PackageWebc
|
||||||
getPackageRelease(hash: String!): PackageWebc
|
getPackageRelease(hash: String!): PackageWebc
|
||||||
categories(offset: Int, before: String, after: String, first: Int, last: Int): CategoryConnection!
|
categories(offset: Int, before: String, after: String, first: Int, last: Int): CategoryConnection!
|
||||||
blogposts(tags: [String!], before: String, after: String, first: Int, last: Int): BlogPostConnection!
|
blogposts(tags: [String!], before: String, after: String, first: Int, last: Int): BlogPostConnection!
|
||||||
|
|||||||
@@ -628,6 +628,16 @@ pub async fn get_package_release(
|
|||||||
.map(|x| x.get_package_release)
|
.map(|x| x.get_package_release)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn get_package_releases(
|
||||||
|
client: &WasmerClient,
|
||||||
|
vars: types::AllPackageReleasesVars,
|
||||||
|
) -> Result<types::PackageWebcConnection, anyhow::Error> {
|
||||||
|
let res = client
|
||||||
|
.run_graphql(types::GetAllPackageReleases::build(vars))
|
||||||
|
.await?;
|
||||||
|
Ok(res.all_package_releases)
|
||||||
|
}
|
||||||
|
|
||||||
/// Retrieve all versions of a package as a stream that auto-paginates.
|
/// Retrieve all versions of a package as a stream that auto-paginates.
|
||||||
pub fn get_package_versions_stream(
|
pub fn get_package_versions_stream(
|
||||||
client: &WasmerClient,
|
client: &WasmerClient,
|
||||||
|
|||||||
@@ -187,6 +187,47 @@ mod queries {
|
|||||||
pub all_package_versions: PackageVersionConnection,
|
pub all_package_versions: PackageVersionConnection,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(cynic::QueryVariables, Debug, Clone, Default)]
|
||||||
|
pub struct AllPackageReleasesVars {
|
||||||
|
pub offset: Option<i32>,
|
||||||
|
pub before: Option<String>,
|
||||||
|
pub after: Option<String>,
|
||||||
|
pub first: Option<i32>,
|
||||||
|
pub last: Option<i32>,
|
||||||
|
|
||||||
|
pub created_after: Option<DateTime>,
|
||||||
|
pub updated_after: Option<DateTime>,
|
||||||
|
pub sort_by: Option<PackageVersionSortBy>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(cynic::QueryFragment, Debug)]
|
||||||
|
#[cynic(graphql_type = "Query", variables = "AllPackageReleasesVars")]
|
||||||
|
pub struct GetAllPackageReleases {
|
||||||
|
pub all_package_releases: PackageWebcConnection,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl GetAllPackageReleases {
|
||||||
|
pub fn into_packages(self) -> Vec<PackageWebc> {
|
||||||
|
self.all_package_releases
|
||||||
|
.edges
|
||||||
|
.into_iter()
|
||||||
|
.filter_map(|x| x)
|
||||||
|
.filter_map(|x| x.node)
|
||||||
|
.collect()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(cynic::QueryFragment, Debug)]
|
||||||
|
pub struct PackageWebcConnection {
|
||||||
|
pub page_info: PageInfo,
|
||||||
|
pub edges: Vec<Option<PackageWebcEdge>>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(cynic::QueryFragment, Debug)]
|
||||||
|
pub struct PackageWebcEdge {
|
||||||
|
pub node: Option<PackageWebc>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(cynic::QueryFragment, Debug)]
|
#[derive(cynic::QueryFragment, Debug)]
|
||||||
pub struct PackageVersionConnection {
|
pub struct PackageVersionConnection {
|
||||||
pub page_info: PageInfo,
|
pub page_info: PageInfo,
|
||||||
|
|||||||
Reference in New Issue
Block a user