UNPKG

@msugiura/rawsql-prisma

Version:

Prisma integration for rawsql-ts - Dynamic SQL generation with type safety and hierarchical JSON serialization

83 lines (82 loc) 2.37 kB
/** * SQL Static Analysis Library * * Provides unified API for static analysis of SQL files, including: * - SQL file discovery and loading * - Schema validation using SqlSchemaValidator * - JSON mapping compatibility validation * - Comprehensive validation reports */ import { PrismaSchemaResolver } from './PrismaSchemaResolver'; export interface SqlFileInfo { filename: string; fullPath: string; baseName: string; content: string; relativePath?: string; } export interface SqlValidationResult { filename: string; isValid: boolean; errors: string[]; parseResult?: any; hasJsonMapping: boolean; jsonMappingValid?: boolean; jsonMappingErrors?: string[]; } export interface SqlStaticAnalysisReport { totalFiles: number; validFiles: number; invalidFiles: number; filesWithMapping: number; validMappings: number; invalidMappings: number; results: SqlValidationResult[]; summary: string; } export interface SqlStaticAnalyzerOptions { sqlDirectory: string; schemaResolver: PrismaSchemaResolver; debug?: boolean; } export declare class SqlStaticAnalyzer { private options; private tableColumnResolver; constructor(options: SqlStaticAnalyzerOptions); /** * Discover all SQL files in the configured directory */ discoverSqlFiles(): SqlFileInfo[]; /** * Validate a single SQL file */ validateSqlFile(sqlFile: SqlFileInfo): SqlValidationResult; /** * Validate JSON mapping for a SQL file */ private validateJsonMapping; /** * Validate all SQL files in the directory */ validateAllSqlFiles(): SqlValidationResult[]; /** * Generate comprehensive analysis report */ generateAnalysisReport(): SqlStaticAnalysisReport; /** * Validate schema availability and table information */ validateSchemaInfo(): { isValid: boolean; tableNames: string[]; errors: string[]; }; } /** * Convenience function for quick SQL static analysis */ export declare function analyzeSqlFiles(options: SqlStaticAnalyzerOptions): Promise<SqlStaticAnalysisReport>; /** * Convenience function for validating a single SQL file */ export declare function validateSqlFile(sqlFilePath: string, schemaResolver: PrismaSchemaResolver): Promise<SqlValidationResult>;