import type { LintDiagnostic } from './diagnostic.js' import type { DomainProject } from './project.js' import type { AnalyzerRule } from './rules/project-rule.js' import { coreIsPure } from './rules/core-is-pure.js' import { oneRemoteDefinitionPerFile } from './rules/one-remote-definition-per-file.js' import { thinSchemaCompositionRoot } from './rules/thin-schema-composition-root.js' export const analyzerRules: readonly AnalyzerRule[] = [ thinSchemaCompositionRoot, oneRemoteDefinitionPerFile, coreIsPure, ] export function analyzeProject(project: DomainProject): LintDiagnostic[] { return analyzerRules.flatMap((rule) => rule.analyze(project)) }