JSPM

@guanmingchiu/sqlparser-ts

0.61.0-rc1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 38567
  • Score
    100M100P100Q153473F
  • License Apache-2.0

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

Package Exports

  • @guanmingchiu/sqlparser-ts

Readme

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