apollo-language-server 0.6.0

A GraphQL language server with first-class support for Apollo Federation
Documentation
use serde::{Deserialize, Serialize};

pub struct ApolloConfigureAutoCompositionNotification {}
impl lsp::notification::Notification for ApolloConfigureAutoCompositionNotification {
    type Params = ApolloConfigureAutoCompositionParams;
    const METHOD: &'static str = "apollo/configureAutoComposition";
}

#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
pub struct ApolloConfigureAutoCompositionParams {
    pub enabled: bool,
}

pub struct ApolloComposeServicesRequest {}
impl lsp::request::Request for ApolloComposeServicesRequest {
    type Params = ApolloComposeServicesParams;
    type Result = ApolloComposeServicesResponse;
    const METHOD: &'static str = "apollo/composeServices";
}

#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
pub struct ApolloComposeServicesParams {}

// { id: number, didCompose: true } | { id: undefined, didCompose: false }
#[derive(Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApolloComposeServicesResponse {
    pub did_compose: bool,
}

pub const APOLLO_COMPOSITION_PROGRESS_TOKEN: &str = "apollo/composition";

#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ApolloCanComposeNotificationParams {
    pub can_compose: bool,
    pub subgraphs_with_errors: Vec<String>,
}

pub struct ApolloCanComposeNotification {}
impl lsp::notification::Notification for ApolloCanComposeNotification {
    type Params = ApolloCanComposeNotificationParams;
    const METHOD: &'static str = "apollo/canCompose";
}