import { modelChecks } from './model.js'; import { domainChecks } from './domain.js'; import { boundedContextChecks } from './bounded-context.js'; import { metadataChecks } from './metadata.js'; import { contextMapChecks, domainMapChecks } from './maps.js'; import { relationshipChecks } from './relationships.js'; import { createImportChecks } from './import.js'; import type { ValidationChecks } from 'langium'; import type { DomainLangAstType } from '../generated/ast.js'; import { DomainLangServices } from '../domain-lang-module.js'; export function registerValidationChecks(services: DomainLangServices): void { const registry = services.validation.ValidationRegistry; // Get import checks const importChecks = createImportChecks(services); // Compose the pipeline for each type const pipeline: ValidationChecks = { Model: modelChecks, Domain: domainChecks, BoundedContext: boundedContextChecks, ContextMap: contextMapChecks, DomainMap: domainMapChecks, Metadata: metadataChecks, ImportStatement: importChecks.ImportStatement, Relationship: relationshipChecks, }; registry.register(pipeline); }