sql-formatter
    TypeScript icon, indicating that this package has built-in type declarations

    9.1.0 • Public • Published

    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, SingleStoreDB, Spark, SQL Server Transact-SQL, Trino/Presto. 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,singlestoredb,spark,sql,sqlite,trino,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,singlestoredb,spark,sql,sqlite,trino,tsql}
                        SQL dialect (defaults to basic 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

    License

    MIT

    Install

    npm i sql-formatter

    DownloadsWeekly Downloads

    132,253

    Version

    9.1.0

    License

    MIT

    Unpacked Size

    1.78 MB

    Total Files

    269

    Last publish

    Collaborators

    • nene
    • inferrinizzard