Giter Site home page Giter Site logo

exquisitesteve1 / sql-formatter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sql-formatter-org/sql-formatter

0.0 0.0 0.0 2.92 MB

A whitespace formatter for different query languages

Home Page: https://sql-formatter-org.github.io/sql-formatter/

License: MIT License

JavaScript 1.99% TypeScript 95.76% CSS 0.32% HTML 1.92%

sql-formatter's Introduction

SQL Formatter NPM version Build status Coverage status VSCode

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 various SQL dialects: GCP BigQuery, IBM DB2, Apache Hive, MariaDB, MySQL, Couchbase N1QL, Oracle PL/SQL, PostgreSQL, Amazon Redshift, Spark, SQL Server Transact-SQL. See language option docs for more details.

It does not support:

  • Stored procedures.
  • Changing of the delimiter type to something else than ;.

โ†’ Try the demo.

Install

Get the latest version from NPM:

npm install sql-formatter

Also available with yarn:

yarn add sql-formatter

Usage

Usage as library

import { format } from 'sql-formatter';

console.log(format('SELECT * FROM tbl'));

This will output:

SELECT
  *
FROM
  tbl

You can also pass in configuration options:

format('SELECT * FROM tbl', {
  language: 'spark',
  tabWidth: 2,
  keywordCase: 'upper',
  linesBetweenQueries: 2,
});

Placeholders replacement

In addition to formatting, this library can also perform placeholder replacement in prepared SQL statements:

format('SELECT * FROM tbl WHERE foo = ?', {
  params: ["'bar'"],
});

Results in:

SELECT
  *
FROM
  tbl
WHERE
  foo = 'bar'

For more details see docs of params option.

Usage from command line

The CLI tool will be installed under sql-formatter and may be invoked via npx sql-formatter:

sql-formatter -h
usage: sql-formatter [-h] [-o OUTPUT] \
[-l {bigquery,db2,hive,mariadb,mysql,n1ql,plsql,postgresql,redshift,spark,sql,sqlite,tsql}] [-c CONFIG] [--version] [FILE]

SQL Formatter

positional arguments:
  FILE            Input SQL file (defaults to stdin)

optional arguments:
  -h, --help      show this help message and exit
  -o, --output    OUTPUT
                    File to write SQL output (defaults to stdout)
  -l, --language  {bigquery,db2,hive,mariadb,mysql,n1ql,plsql,postgresql,redshift,spark,sql,sqlite,tsql}
                    SQL dialect (defaults to standard sql)
  -c, --config    CONFIG
                    Path to config json file (will use default configs if unspecified)
  --version       show program's version number and exit

By default, the tool takes queries from stdin and processes them to stdout but one can also name an input file name or use the --output option.

echo 'select * from tbl where id = 3' | sql-formatter
select
  *
from
  tbl
where
  id = 3

The tool also accepts a JSON config file with the --config option that takes this form:

{
  "language": "spark",
  "tabWidth": 2,
  "keywordCase": "upper",
  "linesBetweenQueries": 2,
}

All fields are optional and all fields that are not specified will be filled with their default values.

Configuration options

Usage without NPM

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 <script> tag. This makes SQL Formatter available as a global variable window.sqlFormatter.

Usage in editors

Contributing

Please see CONTRIBUTING.md

You can read more about how the library works in DOC.md

License

MIT

sql-formatter's People

Contributors

nene avatar inferrinizzard avatar gwax avatar ukupat avatar kufii avatar mtxr avatar rahelest avatar dependabot[bot] avatar rafaelrpinto avatar mathsalmi avatar vallarj avatar htaketani avatar damon-davison avatar abacigil avatar iancamp avatar breglerj avatar martinnowak avatar nicoder avatar osv avatar olsender avatar bsideup avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.