@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
TypeScript
/**
* 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>;