A SQL-ish parser and formatter for syntax highlighting and pretty-printing.
pnpm add @sentry/sqlishFor React formatting support, also install React:
pnpm add reactimport { SQLishParser } from '@sentry/sqlish';
const parser = new SQLishParser();
const tokens = parser.parse('SELECT id, name FROM users WHERE id = 42');import { SQLishFormatter } from '@sentry/sqlish';
const formatter = new SQLishFormatter();
const formatted = formatter.toString('SELECT id, name FROM users WHERE id = 42');You can also use the low-level string formatter directly:
import { SQLishParser, string } from '@sentry/sqlish';
const parser = new SQLishParser();
const tokens = parser.parse('SELECT id, name FROM users WHERE id = 42');
const formatted = string(tokens, { maxLineLength: 80 });Requires react as a peer dependency.
import { SQLishParser } from '@sentry/sqlish';
import { simpleMarkup } from '@sentry/sqlish/react';
const parser = new SQLishParser();
const tokens = parser.parse('SELECT id, name FROM users WHERE id = 42');
const highlighted = simpleMarkup(tokens);
return <div>{highlighted}</div>;parse(sql: string): Token[]— Parses a SQL-ish string into tokens
toString(sql: string, options?): string— Parses and formats SQL as a pretty-printed string
string(tokens: Token[], options?): string— Formats tokens as a plain string (low-level)simpleMarkup(tokens: Token[]): React.ReactElement[]— Formats tokens as React elements with syntax highlighting (from@sentry/sqlish/react)
# Install dependencies
pnpm install
# Build the project
pnpm run build
# Run tests
pnpm testApache-2.0