Formats whitespace in a SQL query to make it more readable
npm install @baurine/sql-formatter-plusWhy this fork exist: see PR - work with esbuild and adjust tidb sql.
---
A fork of SQL Formatter with some extra bug fixes and features.
Fixes:
- Fixed formatting issue with unicode characters
- Fixed comment formatting for non-unix line endings
- Fixed null reference on input tokenization
- Fixed indentation of multiple statements
New Features:
- Convert keywords to uppercase with the uppercase config option
- Configurable number of line breaks between queries with the linesBetweenQueries config option
SQL Formatter is a JavaScript library for pretty-printing SQL queries.
It started as a port of a [PHP Library][], but has since considerably diverged.
It supports [Standard SQL][], [Couchbase N1QL][], [IBM DB2][] and [Oracle PL/SQL][] dialects.
Get the latest version from NPM:
``shell`
npm install @baurine/sql-formatter-plus
`javascript
import sqlFormatter from '@baurine/sql-formatter-plus';
console.log(sqlFormatter.format('SELECT * FROM table1'));
`
This will output:
`sql`
SELECT
*
FROM
table1
You can also pass in configuration options:
`javascript`
sqlFormatter.format('SELECT *', {
language: 'n1ql', // Defaults to "sql"
indent: ' ', // Defaults to two spaces,
uppercase: true, // Defaults to false
linesBetweenQueries: 2 // Defaults to 1
});
Currently just four SQL dialects are supported:
- sql - [Standard SQL][]
- n1ql - [Couchbase N1QL][]
- db2 - [IBM DB2][]
- pl/sql - [Oracle PL/SQL][]
`javascript
// Named placeholders
sqlFormatter.format("SELECT * FROM tbl WHERE foo = @foo", {
params: {foo: "'bar'"}
}));
// Indexed placeholders
sqlFormatter.format("SELECT * FROM tbl WHERE foo = ?", {
params: ["'bar'"]
}));
`
Both result in:
`sql`
SELECT
*
FROM
tbl
WHERE
foo = 'bar'
If you don't use a module bundler, clone the repository, run npm install and grab a file from /dist directory to use inside a