UNPKG

apollo-language-server

Version:

A language server for Apollo GraphQL projects

61 lines (52 loc) 1.43 kB
import { GraphQLProject } from "./base"; import { LoadingHandler } from "../loadingHandler"; import { FileSet } from "../fileSet"; import { ServiceConfig } from "../config"; import { ClientIdentity } from "../engine"; import URI from "vscode-uri"; export function isServiceProject( project: GraphQLProject ): project is GraphQLServiceProject { return project instanceof GraphQLServiceProject; } export interface GraphQLServiceProjectConfig { clientIdentity?: ClientIdentity; config: ServiceConfig; rootURI: URI; loadingHandler: LoadingHandler; } export class GraphQLServiceProject extends GraphQLProject { constructor({ clientIdentity, config, rootURI, loadingHandler, }: GraphQLServiceProjectConfig) { const fileSet = new FileSet({ rootURI: config.configDirURI || rootURI, includes: [ ...config.service.includes, ".env", "apollo.config.js", "apollo.config.cjs", ], excludes: config.service.excludes, configURI: config.configURI, }); super({ config, fileSet, loadingHandler, clientIdentity }); this.config = config; } get displayName() { return this.config.graph || "Unnamed Project"; } initialize() { return []; } validate() {} getProjectStats() { return { loaded: true, type: "service" }; } resolveFederationInfo() { return this.schemaProvider.resolveFederatedServiceSDL(); } }