UNPKG

@aradox/multi-orm

Version:

Type-safe ORM with multi-datasource support, row-level security, and Prisma-like API for PostgreSQL, SQL Server, and HTTP APIs

89 lines 2.16 kB
/** * Schema Validation Layer * * Validates DSL schema structure and conventions BEFORE IR generation. * Catches errors like: * - Invalid naming conventions (PascalCase models, camelCase fields) * - Missing bidirectional relations * - Circular dependencies * - Missing required attributes (@datasource, @id) * - Invalid relation configurations * * These validations happen at parse time and produce errors with source locations. */ /** * Validation error with schema context */ export interface SchemaValidationError { message: string; location: { file: string; line: number; column: number; length: number; }; suggestion?: string; code: string; severity: 'error' | 'warning'; } /** * Schema element being validated */ export interface SchemaModel { name: string; datasource?: string; line: number; fields: SchemaField[]; } export interface SchemaField { name: string; type: string; line: number; isOptional: boolean; isList: boolean; isId?: boolean; map?: string; relation?: SchemaRelation; } export interface SchemaEnum { name: string; values: string[]; line: number; } export interface SchemaRelation { model: string; fields: string[]; references: string[]; strategy?: string; } export interface SchemaDatasource { name: string; provider: string; line: number; } /** * Complete schema context for validation */ export interface SchemaContext { filePath: string; models: Map<string, SchemaModel>; datasources: Map<string, SchemaDatasource>; enums?: Map<string, SchemaEnum>; } /** * Validation result */ export interface SchemaValidationResult { valid: boolean; errors: SchemaValidationError[]; warnings: SchemaValidationError[]; } /** * Main validation function - validates entire schema */ export declare function validateSchema(context: SchemaContext): SchemaValidationResult; /** * Format validation errors for display */ export declare function formatSchemaValidationErrors(result: SchemaValidationResult): string; //# sourceMappingURL=schema-validator.d.ts.map