npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@guanmingchiu/sqlparser-ts

v0.61.1

Published

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

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 { init, parse, format, validate } from '@guanmingchiu/sqlparser-ts';

// Initialize WASM module (must be called once before using any parser functions)
await init();

// 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

Vite Configuration

WASM packages must be excluded from Vite's dev server dependency pre-bundling. This only affects the dev server. Production builds use Rollup instead of esbuild and handle WASM files correctly.

// vite.config.ts
export default defineConfig({
  optimizeDeps: {
    exclude: ['@guanmingchiu/sqlparser-ts'],
  },
});

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