Skip to content

SQL parser for JavaScript and TypeScript, powered by datafusion-sqlparser-rs via WASM

License

Notifications You must be signed in to change notification settings

guan404ming/sqlparser-ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sqlparser-ts

npm version npm downloads License WebAssembly sqlparser

SQL parser for JavaScript and TypeScript, powered by datafusion-sqlparser-rs via WebAssembly.

Features

  • Parse SQL into a detailed AST with full TypeScript types
  • Support 14 SQL dialects (PostgreSQL, MySQL, SQLite, BigQuery, and more)
  • Run in Node.js and browsers
  • Stay small (~600KB gzipped) and fast (Rust + WebAssembly)
  • Ship zero native dependencies

Installation

npm install @guanmingchiu/sqlparser-ts

Usage

import { parse, format, validate } from '@guanmingchiu/sqlparser-ts';

// Parse SQL into AST
const ast = parse('SELECT * FROM users');

// With specific dialect
const ast = parse('SELECT * FROM users WHERE id = $1', 'postgresql');

// Format SQL
const sql = format('select   *   from   users');
// "SELECT * FROM users"

// Validate SQL (throws on invalid)
validate('SELECT * FROM users'); // ok

Working with AST

// Parse and inspect
const ast = parse('SELECT id, name FROM users WHERE active = true');
console.log(JSON.stringify(ast, null, 2));

// Multiple statements
const statements = parse(`
  SELECT * FROM users;
  SELECT * FROM orders;
`);
console.log(statements.length); // 2

// Modify AST and convert back to SQL
const ast = parse('SELECT * FROM users')[0];
// ... modify ast ...
const sql = format(JSON.stringify([ast]));

Error Handling

try {
  parse('SELEC * FORM users');
} catch (e) {
  console.error(e.message); // Parse error details
}

Supported Dialects

generic, ansi, mysql, postgresql, sqlite, snowflake, redshift, mssql, clickhouse, bigquery, duckdb, databricks, hive, oracle

Versioning

Follows Semantic Versioning with upstream tracking:

Example: 0.60.4 = upstream 0.60 + 4 sqlparser-ts releases

License

Apache-2.0

About

SQL parser for JavaScript and TypeScript, powered by datafusion-sqlparser-rs via WASM

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •