Skip to main content
Glama
module.ts2.21 kB
import type { DefaultSharedCoreModuleContext, LangiumCoreServices, LangiumSharedCoreServices, Module, PartialLangiumCoreServices, } from 'langium'; import { EmptyFileSystem, createDefaultCoreModule, createDefaultSharedCoreModule, inject, } from 'langium'; import { CommonValueConverter } from '../common/valueConverter.js'; import { MermaidGeneratedSharedModule, RadarGeneratedModule } from '../generated/module.js'; import { RadarTokenBuilder } from './tokenBuilder.js'; /** * Declaration of `Radar` services. */ interface RadarAddedServices { parser: { TokenBuilder: RadarTokenBuilder; ValueConverter: CommonValueConverter; }; } /** * Union of Langium default services and `Radar` services. */ export type RadarServices = LangiumCoreServices & RadarAddedServices; /** * Dependency injection module that overrides Langium default services and * contributes the declared `Radar` services. */ export const RadarModule: Module<RadarServices, PartialLangiumCoreServices & RadarAddedServices> = { parser: { TokenBuilder: () => new RadarTokenBuilder(), ValueConverter: () => new CommonValueConverter(), }, }; /** * Create the full set of services required by Langium. * * First inject the shared services by merging two modules: * - Langium default shared services * - Services generated by langium-cli * * Then inject the language-specific services by merging three modules: * - Langium default language-specific services * - Services generated by langium-cli * - Services specified in this file * @param context - Optional module context with the LSP connection * @returns An object wrapping the shared services and the language-specific services */ export function createRadarServices(context: DefaultSharedCoreModuleContext = EmptyFileSystem): { shared: LangiumSharedCoreServices; Radar: RadarServices; } { const shared: LangiumSharedCoreServices = inject( createDefaultSharedCoreModule(context), MermaidGeneratedSharedModule ); const Radar: RadarServices = inject( createDefaultCoreModule({ shared }), RadarGeneratedModule, RadarModule ); shared.ServiceRegistry.register(Radar); return { shared, Radar }; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ai-of-mine/fast-mermaid-validator-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server