0.4.0 • Published 5 months ago
@sqlsmith/core v0.4.0
@sqlsmith/core
Core SQL schema merging engine with dependency resolution.
Installation
npm install @sqlsmith/coreUsage
import { SqlMerger } from '@sqlsmith/core';
const merger = new SqlMerger();
// Parse SQL files from directory
const sqlFiles = merger.parseSqlFiles('./schemas', 'postgresql');
// Merge files with options
const merged = merger.mergeFiles(sqlFiles, {
addComments: true,
includeHeader: true,
separateStatements: true,
outputPath: 'merged.sql' // Optional: write to file
});
console.log(merged); // Merged SQL contentFeatures
- ✅ Smart dependency detection - Analyzes FOREIGN KEY constraints
- ✅ Topological sorting - Safe execution order using Kahn's algorithm
- ✅ Circular dependency detection - Prevents invalid schemas
- ✅ Multi-dialect support - PostgreSQL, MySQL, SQLite, BigQuery
- ✅ Sequences & Views - Handles CREATE SEQUENCE and CREATE VIEW statements
- ✅ TypeScript support - Full type safety and IntelliSense
API
SqlMerger
Main class for SQL merging operations.
Processors
CreateTableProcessor- Handles CREATE TABLE statementsCreateSequenceProcessor- Handles CREATE SEQUENCE statementsCreateViewProcessor- Handles CREATE VIEW statements
Services
DependencyAnalyzer- Analyzes statement dependenciesTopologicalSorter- Sorts statements by dependenciesSqlFileParser- Parses SQL files and extracts statements
License
MIT