A TypeScript wrapper for Python's sqlglot SQL transpiler. Provides deterministic, verifiable SQL dialect conversion via a managed local Python FastAPI microservice.
127.0.0.1 with auto-assigned portpip install -r requirements.txt
Dependencies (sqlglot, fastapi, uvicorn, pydantic) are pinned in requirements.txt so conversion output is reproducible. See the comments in that file for the upgrade procedure.
import { SqlGlotClient } from '@memberjunction/sqlglot-ts';
const client = new SqlGlotClient();
await client.start();
// Transpile T-SQL to PostgreSQL
const result = await client.transpile(
"SELECT ISNULL(col, 0) FROM [dbo].[MyTable]",
{ fromDialect: 'tsql', toDialect: 'postgres' }
);
console.log(result.sql);
// Output: SELECT COALESCE(col, 0) FROM "dbo"."MyTable";
// Statement-by-statement mode
const stmtResult = await client.transpileStatements(
"SELECT TOP 10 * FROM Users; SELECT GETDATE();",
{ fromDialect: 'tsql', toDialect: 'postgres' }
);
console.log(stmtResult.statements);
// Parse SQL to AST
const ast = await client.parse(
"SELECT 1",
{ dialect: 'postgres' }
);
// List supported dialects
const dialects = await client.getDialects();
// Health check
const health = await client.health();
await client.stop();
SqlGlotClient| Option | Type | Default | Description |
|---|---|---|---|
pythonPath |
string |
'python3' |
Path to Python executable |
serverPath |
string |
auto-detected | Path to server.py |
startupTimeoutMs |
number |
30000 |
Max ms to wait for server startup |
requestTimeoutMs |
number |
60000 |
Max ms per HTTP request |
start() — Start the Python microservicestop() — Stop the Python microservicetranspile(sql, options) — Transpile SQL between dialects (batch)transpileStatements(sql, options) — Transpile statement-by-statementparse(sql, options) — Parse SQL to AST (JSON)getDialects() — List all supported dialectshealth() — Server health checkThis package wraps the excellent sqlglot Python library by Toby Mao and contributors. sqlglot provides a comprehensive SQL parser, transpiler, and optimizer supporting 31 SQL dialects with 8,900+ stars and 7,000+ commits.
ISC