@guojc1/sql-formatter-compact 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AUTHORS +75 -0
- package/LICENSE +23 -0
- package/README.md +318 -0
- package/bin/sql-formatter-cli.cjs +182 -0
- package/dist/cjs/FormatOptions.d.ts +27 -0
- package/dist/cjs/FormatOptions.js +3 -0
- package/dist/cjs/FormatOptions.js.map +1 -0
- package/dist/cjs/allDialects.d.ts +20 -0
- package/dist/cjs/allDialects.js +44 -0
- package/dist/cjs/allDialects.js.map +1 -0
- package/dist/cjs/dialect.d.ts +18 -0
- package/dist/cjs/dialect.js +35 -0
- package/dist/cjs/dialect.js.map +1 -0
- package/dist/cjs/expandPhrases.d.ts +29 -0
- package/dist/cjs/expandPhrases.js +132 -0
- package/dist/cjs/expandPhrases.js.map +1 -0
- package/dist/cjs/formatter/ExpressionFormatter.d.ts +78 -0
- package/dist/cjs/formatter/ExpressionFormatter.js +546 -0
- package/dist/cjs/formatter/ExpressionFormatter.js.map +1 -0
- package/dist/cjs/formatter/Formatter.d.ts +18 -0
- package/dist/cjs/formatter/Formatter.js +80 -0
- package/dist/cjs/formatter/Formatter.js.map +1 -0
- package/dist/cjs/formatter/Indentation.d.ts +43 -0
- package/dist/cjs/formatter/Indentation.js +70 -0
- package/dist/cjs/formatter/Indentation.js.map +1 -0
- package/dist/cjs/formatter/InlineLayout.d.ts +21 -0
- package/dist/cjs/formatter/InlineLayout.js +88 -0
- package/dist/cjs/formatter/InlineLayout.js.map +1 -0
- package/dist/cjs/formatter/Layout.d.ts +41 -0
- package/dist/cjs/formatter/Layout.js +122 -0
- package/dist/cjs/formatter/Layout.js.map +1 -0
- package/dist/cjs/formatter/Params.d.ts +26 -0
- package/dist/cjs/formatter/Params.js +37 -0
- package/dist/cjs/formatter/Params.js.map +1 -0
- package/dist/cjs/formatter/config.d.ts +9 -0
- package/dist/cjs/formatter/config.js +25 -0
- package/dist/cjs/formatter/config.js.map +1 -0
- package/dist/cjs/formatter/tabularStyle.d.ts +11 -0
- package/dist/cjs/formatter/tabularStyle.js +39 -0
- package/dist/cjs/formatter/tabularStyle.js.map +1 -0
- package/dist/cjs/index.d.ts +28 -0
- package/dist/cjs/index.js +53 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/languages/bigquery/bigquery.formatter.d.ts +2 -0
- package/dist/cjs/languages/bigquery/bigquery.formatter.js +259 -0
- package/dist/cjs/languages/bigquery/bigquery.formatter.js.map +1 -0
- package/dist/cjs/languages/bigquery/bigquery.functions.d.ts +1 -0
- package/dist/cjs/languages/bigquery/bigquery.functions.js +549 -0
- package/dist/cjs/languages/bigquery/bigquery.functions.js.map +1 -0
- package/dist/cjs/languages/bigquery/bigquery.keywords.d.ts +2 -0
- package/dist/cjs/languages/bigquery/bigquery.keywords.js +139 -0
- package/dist/cjs/languages/bigquery/bigquery.keywords.js.map +1 -0
- package/dist/cjs/languages/clickhouse/clickhouse.formatter.d.ts +2 -0
- package/dist/cjs/languages/clickhouse/clickhouse.formatter.js +323 -0
- package/dist/cjs/languages/clickhouse/clickhouse.formatter.js.map +1 -0
- package/dist/cjs/languages/clickhouse/clickhouse.functions.d.ts +1 -0
- package/dist/cjs/languages/clickhouse/clickhouse.functions.js +1756 -0
- package/dist/cjs/languages/clickhouse/clickhouse.functions.js.map +1 -0
- package/dist/cjs/languages/clickhouse/clickhouse.keywords.d.ts +2 -0
- package/dist/cjs/languages/clickhouse/clickhouse.keywords.js +550 -0
- package/dist/cjs/languages/clickhouse/clickhouse.keywords.js.map +1 -0
- package/dist/cjs/languages/db2/db2.formatter.d.ts +2 -0
- package/dist/cjs/languages/db2/db2.formatter.js +304 -0
- package/dist/cjs/languages/db2/db2.formatter.js.map +1 -0
- package/dist/cjs/languages/db2/db2.functions.d.ts +1 -0
- package/dist/cjs/languages/db2/db2.functions.js +325 -0
- package/dist/cjs/languages/db2/db2.functions.js.map +1 -0
- package/dist/cjs/languages/db2/db2.keywords.d.ts +2 -0
- package/dist/cjs/languages/db2/db2.keywords.js +449 -0
- package/dist/cjs/languages/db2/db2.keywords.js.map +1 -0
- package/dist/cjs/languages/db2i/db2i.formatter.d.ts +2 -0
- package/dist/cjs/languages/db2i/db2i.formatter.js +181 -0
- package/dist/cjs/languages/db2i/db2i.formatter.js.map +1 -0
- package/dist/cjs/languages/db2i/db2i.functions.d.ts +1 -0
- package/dist/cjs/languages/db2i/db2i.functions.js +339 -0
- package/dist/cjs/languages/db2i/db2i.functions.js.map +1 -0
- package/dist/cjs/languages/db2i/db2i.keywords.d.ts +2 -0
- package/dist/cjs/languages/db2i/db2i.keywords.js +538 -0
- package/dist/cjs/languages/db2i/db2i.keywords.js.map +1 -0
- package/dist/cjs/languages/duckdb/duckdb.formatter.d.ts +2 -0
- package/dist/cjs/languages/duckdb/duckdb.formatter.js +213 -0
- package/dist/cjs/languages/duckdb/duckdb.formatter.js.map +1 -0
- package/dist/cjs/languages/duckdb/duckdb.functions.d.ts +1 -0
- package/dist/cjs/languages/duckdb/duckdb.functions.js +668 -0
- package/dist/cjs/languages/duckdb/duckdb.functions.js.map +1 -0
- package/dist/cjs/languages/duckdb/duckdb.keywords.d.ts +2 -0
- package/dist/cjs/languages/duckdb/duckdb.keywords.js +168 -0
- package/dist/cjs/languages/duckdb/duckdb.keywords.js.map +1 -0
- package/dist/cjs/languages/hive/hive.formatter.d.ts +2 -0
- package/dist/cjs/languages/hive/hive.formatter.js +106 -0
- package/dist/cjs/languages/hive/hive.formatter.js.map +1 -0
- package/dist/cjs/languages/hive/hive.functions.d.ts +1 -0
- package/dist/cjs/languages/hive/hive.functions.js +213 -0
- package/dist/cjs/languages/hive/hive.functions.js.map +1 -0
- package/dist/cjs/languages/hive/hive.keywords.d.ts +2 -0
- package/dist/cjs/languages/hive/hive.keywords.js +342 -0
- package/dist/cjs/languages/hive/hive.keywords.js.map +1 -0
- package/dist/cjs/languages/mariadb/likeMariaDb.d.ts +2 -0
- package/dist/cjs/languages/mariadb/likeMariaDb.js +22 -0
- package/dist/cjs/languages/mariadb/likeMariaDb.js.map +1 -0
- package/dist/cjs/languages/mariadb/mariadb.formatter.d.ts +2 -0
- package/dist/cjs/languages/mariadb/mariadb.formatter.js +317 -0
- package/dist/cjs/languages/mariadb/mariadb.formatter.js.map +1 -0
- package/dist/cjs/languages/mariadb/mariadb.functions.d.ts +1 -0
- package/dist/cjs/languages/mariadb/mariadb.functions.js +243 -0
- package/dist/cjs/languages/mariadb/mariadb.functions.js.map +1 -0
- package/dist/cjs/languages/mariadb/mariadb.keywords.d.ts +2 -0
- package/dist/cjs/languages/mariadb/mariadb.keywords.js +274 -0
- package/dist/cjs/languages/mariadb/mariadb.keywords.js.map +1 -0
- package/dist/cjs/languages/mysql/mysql.formatter.d.ts +2 -0
- package/dist/cjs/languages/mysql/mysql.formatter.js +284 -0
- package/dist/cjs/languages/mysql/mysql.formatter.js.map +1 -0
- package/dist/cjs/languages/mysql/mysql.functions.d.ts +1 -0
- package/dist/cjs/languages/mysql/mysql.functions.js +428 -0
- package/dist/cjs/languages/mysql/mysql.functions.js.map +1 -0
- package/dist/cjs/languages/mysql/mysql.keywords.d.ts +2 -0
- package/dist/cjs/languages/mysql/mysql.keywords.js +288 -0
- package/dist/cjs/languages/mysql/mysql.keywords.js.map +1 -0
- package/dist/cjs/languages/n1ql/n1ql.formatter.d.ts +2 -0
- package/dist/cjs/languages/n1ql/n1ql.formatter.js +109 -0
- package/dist/cjs/languages/n1ql/n1ql.formatter.js.map +1 -0
- package/dist/cjs/languages/n1ql/n1ql.functions.d.ts +1 -0
- package/dist/cjs/languages/n1ql/n1ql.functions.js +235 -0
- package/dist/cjs/languages/n1ql/n1ql.functions.js.map +1 -0
- package/dist/cjs/languages/n1ql/n1ql.keywords.d.ts +2 -0
- package/dist/cjs/languages/n1ql/n1ql.keywords.js +221 -0
- package/dist/cjs/languages/n1ql/n1ql.keywords.js.map +1 -0
- package/dist/cjs/languages/plsql/plsql.formatter.d.ts +2 -0
- package/dist/cjs/languages/plsql/plsql.formatter.js +140 -0
- package/dist/cjs/languages/plsql/plsql.formatter.js.map +1 -0
- package/dist/cjs/languages/plsql/plsql.functions.d.ts +1 -0
- package/dist/cjs/languages/plsql/plsql.functions.js +270 -0
- package/dist/cjs/languages/plsql/plsql.functions.js.map +1 -0
- package/dist/cjs/languages/plsql/plsql.keywords.d.ts +2 -0
- package/dist/cjs/languages/plsql/plsql.keywords.js +349 -0
- package/dist/cjs/languages/plsql/plsql.keywords.js.map +1 -0
- package/dist/cjs/languages/postgresql/postgresql.formatter.d.ts +2 -0
- package/dist/cjs/languages/postgresql/postgresql.formatter.js +391 -0
- package/dist/cjs/languages/postgresql/postgresql.formatter.js.map +1 -0
- package/dist/cjs/languages/postgresql/postgresql.functions.d.ts +1 -0
- package/dist/cjs/languages/postgresql/postgresql.functions.js +693 -0
- package/dist/cjs/languages/postgresql/postgresql.functions.js.map +1 -0
- package/dist/cjs/languages/postgresql/postgresql.keywords.d.ts +2 -0
- package/dist/cjs/languages/postgresql/postgresql.keywords.js +158 -0
- package/dist/cjs/languages/postgresql/postgresql.keywords.js.map +1 -0
- package/dist/cjs/languages/redshift/redshift.formatter.d.ts +2 -0
- package/dist/cjs/languages/redshift/redshift.formatter.js +180 -0
- package/dist/cjs/languages/redshift/redshift.formatter.js.map +1 -0
- package/dist/cjs/languages/redshift/redshift.functions.d.ts +1 -0
- package/dist/cjs/languages/redshift/redshift.functions.js +351 -0
- package/dist/cjs/languages/redshift/redshift.functions.js.map +1 -0
- package/dist/cjs/languages/redshift/redshift.keywords.d.ts +2 -0
- package/dist/cjs/languages/redshift/redshift.keywords.js +216 -0
- package/dist/cjs/languages/redshift/redshift.keywords.js.map +1 -0
- package/dist/cjs/languages/singlestoredb/singlestoredb.formatter.d.ts +2 -0
- package/dist/cjs/languages/singlestoredb/singlestoredb.formatter.js +286 -0
- package/dist/cjs/languages/singlestoredb/singlestoredb.formatter.js.map +1 -0
- package/dist/cjs/languages/singlestoredb/singlestoredb.functions.d.ts +1 -0
- package/dist/cjs/languages/singlestoredb/singlestoredb.functions.js +285 -0
- package/dist/cjs/languages/singlestoredb/singlestoredb.functions.js.map +1 -0
- package/dist/cjs/languages/singlestoredb/singlestoredb.keywords.d.ts +2 -0
- package/dist/cjs/languages/singlestoredb/singlestoredb.keywords.js +268 -0
- package/dist/cjs/languages/singlestoredb/singlestoredb.keywords.js.map +1 -0
- package/dist/cjs/languages/snowflake/snowflake.formatter.d.ts +2 -0
- package/dist/cjs/languages/snowflake/snowflake.formatter.js +339 -0
- package/dist/cjs/languages/snowflake/snowflake.formatter.js.map +1 -0
- package/dist/cjs/languages/snowflake/snowflake.functions.d.ts +1 -0
- package/dist/cjs/languages/snowflake/snowflake.functions.js +613 -0
- package/dist/cjs/languages/snowflake/snowflake.functions.js.map +1 -0
- package/dist/cjs/languages/snowflake/snowflake.keywords.d.ts +2 -0
- package/dist/cjs/languages/snowflake/snowflake.keywords.js +140 -0
- package/dist/cjs/languages/snowflake/snowflake.keywords.js.map +1 -0
- package/dist/cjs/languages/spark/spark.formatter.d.ts +2 -0
- package/dist/cjs/languages/spark/spark.formatter.js +167 -0
- package/dist/cjs/languages/spark/spark.formatter.js.map +1 -0
- package/dist/cjs/languages/spark/spark.functions.d.ts +1 -0
- package/dist/cjs/languages/spark/spark.functions.js +326 -0
- package/dist/cjs/languages/spark/spark.functions.js.map +1 -0
- package/dist/cjs/languages/spark/spark.keywords.d.ts +2 -0
- package/dist/cjs/languages/spark/spark.keywords.js +302 -0
- package/dist/cjs/languages/spark/spark.keywords.js.map +1 -0
- package/dist/cjs/languages/sql/sql.formatter.d.ts +2 -0
- package/dist/cjs/languages/sql/sql.formatter.js +97 -0
- package/dist/cjs/languages/sql/sql.formatter.js.map +1 -0
- package/dist/cjs/languages/sql/sql.functions.d.ts +1 -0
- package/dist/cjs/languages/sql/sql.functions.js +102 -0
- package/dist/cjs/languages/sql/sql.functions.js.map +1 -0
- package/dist/cjs/languages/sql/sql.keywords.d.ts +2 -0
- package/dist/cjs/languages/sql/sql.keywords.js +244 -0
- package/dist/cjs/languages/sql/sql.keywords.js.map +1 -0
- package/dist/cjs/languages/sqlite/sqlite.formatter.d.ts +2 -0
- package/dist/cjs/languages/sqlite/sqlite.formatter.js +94 -0
- package/dist/cjs/languages/sqlite/sqlite.formatter.js.map +1 -0
- package/dist/cjs/languages/sqlite/sqlite.functions.d.ts +1 -0
- package/dist/cjs/languages/sqlite/sqlite.functions.js +129 -0
- package/dist/cjs/languages/sqlite/sqlite.functions.js.map +1 -0
- package/dist/cjs/languages/sqlite/sqlite.keywords.d.ts +2 -0
- package/dist/cjs/languages/sqlite/sqlite.keywords.js +180 -0
- package/dist/cjs/languages/sqlite/sqlite.keywords.js.map +1 -0
- package/dist/cjs/languages/tidb/tidb.formatter.d.ts +2 -0
- package/dist/cjs/languages/tidb/tidb.formatter.js +218 -0
- package/dist/cjs/languages/tidb/tidb.formatter.js.map +1 -0
- package/dist/cjs/languages/tidb/tidb.functions.d.ts +1 -0
- package/dist/cjs/languages/tidb/tidb.functions.js +331 -0
- package/dist/cjs/languages/tidb/tidb.functions.js.map +1 -0
- package/dist/cjs/languages/tidb/tidb.keywords.d.ts +2 -0
- package/dist/cjs/languages/tidb/tidb.keywords.js +244 -0
- package/dist/cjs/languages/tidb/tidb.keywords.js.map +1 -0
- package/dist/cjs/languages/transactsql/transactsql.formatter.d.ts +2 -0
- package/dist/cjs/languages/transactsql/transactsql.formatter.js +275 -0
- package/dist/cjs/languages/transactsql/transactsql.formatter.js.map +1 -0
- package/dist/cjs/languages/transactsql/transactsql.functions.d.ts +1 -0
- package/dist/cjs/languages/transactsql/transactsql.functions.js +310 -0
- package/dist/cjs/languages/transactsql/transactsql.functions.js.map +1 -0
- package/dist/cjs/languages/transactsql/transactsql.keywords.d.ts +2 -0
- package/dist/cjs/languages/transactsql/transactsql.keywords.js +214 -0
- package/dist/cjs/languages/transactsql/transactsql.keywords.js.map +1 -0
- package/dist/cjs/languages/trino/trino.formatter.d.ts +2 -0
- package/dist/cjs/languages/trino/trino.formatter.js +163 -0
- package/dist/cjs/languages/trino/trino.formatter.js.map +1 -0
- package/dist/cjs/languages/trino/trino.functions.d.ts +1 -0
- package/dist/cjs/languages/trino/trino.functions.js +439 -0
- package/dist/cjs/languages/trino/trino.functions.js.map +1 -0
- package/dist/cjs/languages/trino/trino.keywords.d.ts +2 -0
- package/dist/cjs/languages/trino/trino.keywords.js +282 -0
- package/dist/cjs/languages/trino/trino.keywords.js.map +1 -0
- package/dist/cjs/lexer/NestedComment.d.ts +10 -0
- package/dist/cjs/lexer/NestedComment.js +54 -0
- package/dist/cjs/lexer/NestedComment.js.map +1 -0
- package/dist/cjs/lexer/Tokenizer.d.ts +14 -0
- package/dist/cjs/lexer/Tokenizer.js +293 -0
- package/dist/cjs/lexer/Tokenizer.js.map +1 -0
- package/dist/cjs/lexer/TokenizerEngine.d.ts +31 -0
- package/dist/cjs/lexer/TokenizerEngine.js +95 -0
- package/dist/cjs/lexer/TokenizerEngine.js.map +1 -0
- package/dist/cjs/lexer/TokenizerOptions.d.ts +56 -0
- package/dist/cjs/lexer/TokenizerOptions.js +3 -0
- package/dist/cjs/lexer/TokenizerOptions.js.map +1 -0
- package/dist/cjs/lexer/disambiguateTokens.d.ts +18 -0
- package/dist/cjs/lexer/disambiguateTokens.js +90 -0
- package/dist/cjs/lexer/disambiguateTokens.js.map +1 -0
- package/dist/cjs/lexer/lineColFromIndex.d.ts +8 -0
- package/dist/cjs/lexer/lineColFromIndex.js +12 -0
- package/dist/cjs/lexer/lineColFromIndex.js.map +1 -0
- package/dist/cjs/lexer/regexFactory.d.ts +55 -0
- package/dist/cjs/lexer/regexFactory.js +153 -0
- package/dist/cjs/lexer/regexFactory.js.map +1 -0
- package/dist/cjs/lexer/regexUtil.d.ts +7 -0
- package/dist/cjs/lexer/regexUtil.js +21 -0
- package/dist/cjs/lexer/regexUtil.js.map +1 -0
- package/dist/cjs/lexer/token.d.ts +89 -0
- package/dist/cjs/lexer/token.js +101 -0
- package/dist/cjs/lexer/token.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/parser/LexerAdapter.d.ts +17 -0
- package/dist/cjs/parser/LexerAdapter.js +30 -0
- package/dist/cjs/parser/LexerAdapter.js.map +1 -0
- package/dist/cjs/parser/ast.d.ts +158 -0
- package/dist/cjs/parser/ast.js +31 -0
- package/dist/cjs/parser/ast.js.map +1 -0
- package/dist/cjs/parser/createParser.d.ts +10 -0
- package/dist/cjs/parser/createParser.js +43 -0
- package/dist/cjs/parser/createParser.js.map +1 -0
- package/dist/cjs/parser/grammar.d.ts +28 -0
- package/dist/cjs/parser/grammar.js +371 -0
- package/dist/cjs/parser/grammar.js.map +1 -0
- package/dist/cjs/sqlFormatter.d.ts +31 -0
- package/dist/cjs/sqlFormatter.js +117 -0
- package/dist/cjs/sqlFormatter.js.map +1 -0
- package/dist/cjs/utils.d.ts +8 -0
- package/dist/cjs/utils.js +22 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/cjs/validateConfig.d.ts +4 -0
- package/dist/cjs/validateConfig.js +43 -0
- package/dist/cjs/validateConfig.js.map +1 -0
- package/dist/esm/FormatOptions.d.ts +27 -0
- package/dist/esm/FormatOptions.js +2 -0
- package/dist/esm/FormatOptions.js.map +1 -0
- package/dist/esm/allDialects.d.ts +20 -0
- package/dist/esm/allDialects.js +21 -0
- package/dist/esm/allDialects.js.map +1 -0
- package/dist/esm/dialect.d.ts +18 -0
- package/dist/esm/dialect.js +28 -0
- package/dist/esm/dialect.js.map +1 -0
- package/dist/esm/expandPhrases.d.ts +29 -0
- package/dist/esm/expandPhrases.js +127 -0
- package/dist/esm/expandPhrases.js.map +1 -0
- package/dist/esm/formatter/ExpressionFormatter.d.ts +78 -0
- package/dist/esm/formatter/ExpressionFormatter.js +520 -0
- package/dist/esm/formatter/ExpressionFormatter.js.map +1 -0
- package/dist/esm/formatter/Formatter.d.ts +18 -0
- package/dist/esm/formatter/Formatter.js +51 -0
- package/dist/esm/formatter/Formatter.js.map +1 -0
- package/dist/esm/formatter/Indentation.d.ts +43 -0
- package/dist/esm/formatter/Indentation.js +67 -0
- package/dist/esm/formatter/Indentation.js.map +1 -0
- package/dist/esm/formatter/InlineLayout.d.ts +21 -0
- package/dist/esm/formatter/InlineLayout.js +57 -0
- package/dist/esm/formatter/InlineLayout.js.map +1 -0
- package/dist/esm/formatter/Layout.d.ts +41 -0
- package/dist/esm/formatter/Layout.js +118 -0
- package/dist/esm/formatter/Layout.js.map +1 -0
- package/dist/esm/formatter/Params.d.ts +26 -0
- package/dist/esm/formatter/Params.js +34 -0
- package/dist/esm/formatter/Params.js.map +1 -0
- package/dist/esm/formatter/config.d.ts +9 -0
- package/dist/esm/formatter/config.js +20 -0
- package/dist/esm/formatter/config.js.map +1 -0
- package/dist/esm/formatter/tabularStyle.d.ts +11 -0
- package/dist/esm/formatter/tabularStyle.js +34 -0
- package/dist/esm/formatter/tabularStyle.js.map +1 -0
- package/dist/esm/index.d.ts +28 -0
- package/dist/esm/index.js +25 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/languages/bigquery/bigquery.formatter.d.ts +2 -0
- package/dist/esm/languages/bigquery/bigquery.formatter.js +256 -0
- package/dist/esm/languages/bigquery/bigquery.formatter.js.map +1 -0
- package/dist/esm/languages/bigquery/bigquery.functions.d.ts +1 -0
- package/dist/esm/languages/bigquery/bigquery.functions.js +546 -0
- package/dist/esm/languages/bigquery/bigquery.functions.js.map +1 -0
- package/dist/esm/languages/bigquery/bigquery.keywords.d.ts +2 -0
- package/dist/esm/languages/bigquery/bigquery.keywords.js +136 -0
- package/dist/esm/languages/bigquery/bigquery.keywords.js.map +1 -0
- package/dist/esm/languages/clickhouse/clickhouse.formatter.d.ts +2 -0
- package/dist/esm/languages/clickhouse/clickhouse.formatter.js +320 -0
- package/dist/esm/languages/clickhouse/clickhouse.formatter.js.map +1 -0
- package/dist/esm/languages/clickhouse/clickhouse.functions.d.ts +1 -0
- package/dist/esm/languages/clickhouse/clickhouse.functions.js +1753 -0
- package/dist/esm/languages/clickhouse/clickhouse.functions.js.map +1 -0
- package/dist/esm/languages/clickhouse/clickhouse.keywords.d.ts +2 -0
- package/dist/esm/languages/clickhouse/clickhouse.keywords.js +547 -0
- package/dist/esm/languages/clickhouse/clickhouse.keywords.js.map +1 -0
- package/dist/esm/languages/db2/db2.formatter.d.ts +2 -0
- package/dist/esm/languages/db2/db2.formatter.js +301 -0
- package/dist/esm/languages/db2/db2.formatter.js.map +1 -0
- package/dist/esm/languages/db2/db2.functions.d.ts +1 -0
- package/dist/esm/languages/db2/db2.functions.js +322 -0
- package/dist/esm/languages/db2/db2.functions.js.map +1 -0
- package/dist/esm/languages/db2/db2.keywords.d.ts +2 -0
- package/dist/esm/languages/db2/db2.keywords.js +446 -0
- package/dist/esm/languages/db2/db2.keywords.js.map +1 -0
- package/dist/esm/languages/db2i/db2i.formatter.d.ts +2 -0
- package/dist/esm/languages/db2i/db2i.formatter.js +178 -0
- package/dist/esm/languages/db2i/db2i.formatter.js.map +1 -0
- package/dist/esm/languages/db2i/db2i.functions.d.ts +1 -0
- package/dist/esm/languages/db2i/db2i.functions.js +336 -0
- package/dist/esm/languages/db2i/db2i.functions.js.map +1 -0
- package/dist/esm/languages/db2i/db2i.keywords.d.ts +2 -0
- package/dist/esm/languages/db2i/db2i.keywords.js +535 -0
- package/dist/esm/languages/db2i/db2i.keywords.js.map +1 -0
- package/dist/esm/languages/duckdb/duckdb.formatter.d.ts +2 -0
- package/dist/esm/languages/duckdb/duckdb.formatter.js +210 -0
- package/dist/esm/languages/duckdb/duckdb.formatter.js.map +1 -0
- package/dist/esm/languages/duckdb/duckdb.functions.d.ts +1 -0
- package/dist/esm/languages/duckdb/duckdb.functions.js +665 -0
- package/dist/esm/languages/duckdb/duckdb.functions.js.map +1 -0
- package/dist/esm/languages/duckdb/duckdb.keywords.d.ts +2 -0
- package/dist/esm/languages/duckdb/duckdb.keywords.js +165 -0
- package/dist/esm/languages/duckdb/duckdb.keywords.js.map +1 -0
- package/dist/esm/languages/hive/hive.formatter.d.ts +2 -0
- package/dist/esm/languages/hive/hive.formatter.js +103 -0
- package/dist/esm/languages/hive/hive.formatter.js.map +1 -0
- package/dist/esm/languages/hive/hive.functions.d.ts +1 -0
- package/dist/esm/languages/hive/hive.functions.js +210 -0
- package/dist/esm/languages/hive/hive.functions.js.map +1 -0
- package/dist/esm/languages/hive/hive.keywords.d.ts +2 -0
- package/dist/esm/languages/hive/hive.keywords.js +339 -0
- package/dist/esm/languages/hive/hive.keywords.js.map +1 -0
- package/dist/esm/languages/mariadb/likeMariaDb.d.ts +2 -0
- package/dist/esm/languages/mariadb/likeMariaDb.js +18 -0
- package/dist/esm/languages/mariadb/likeMariaDb.js.map +1 -0
- package/dist/esm/languages/mariadb/mariadb.formatter.d.ts +2 -0
- package/dist/esm/languages/mariadb/mariadb.formatter.js +314 -0
- package/dist/esm/languages/mariadb/mariadb.formatter.js.map +1 -0
- package/dist/esm/languages/mariadb/mariadb.functions.d.ts +1 -0
- package/dist/esm/languages/mariadb/mariadb.functions.js +240 -0
- package/dist/esm/languages/mariadb/mariadb.functions.js.map +1 -0
- package/dist/esm/languages/mariadb/mariadb.keywords.d.ts +2 -0
- package/dist/esm/languages/mariadb/mariadb.keywords.js +271 -0
- package/dist/esm/languages/mariadb/mariadb.keywords.js.map +1 -0
- package/dist/esm/languages/mysql/mysql.formatter.d.ts +2 -0
- package/dist/esm/languages/mysql/mysql.formatter.js +281 -0
- package/dist/esm/languages/mysql/mysql.formatter.js.map +1 -0
- package/dist/esm/languages/mysql/mysql.functions.d.ts +1 -0
- package/dist/esm/languages/mysql/mysql.functions.js +425 -0
- package/dist/esm/languages/mysql/mysql.functions.js.map +1 -0
- package/dist/esm/languages/mysql/mysql.keywords.d.ts +2 -0
- package/dist/esm/languages/mysql/mysql.keywords.js +285 -0
- package/dist/esm/languages/mysql/mysql.keywords.js.map +1 -0
- package/dist/esm/languages/n1ql/n1ql.formatter.d.ts +2 -0
- package/dist/esm/languages/n1ql/n1ql.formatter.js +106 -0
- package/dist/esm/languages/n1ql/n1ql.formatter.js.map +1 -0
- package/dist/esm/languages/n1ql/n1ql.functions.d.ts +1 -0
- package/dist/esm/languages/n1ql/n1ql.functions.js +232 -0
- package/dist/esm/languages/n1ql/n1ql.functions.js.map +1 -0
- package/dist/esm/languages/n1ql/n1ql.keywords.d.ts +2 -0
- package/dist/esm/languages/n1ql/n1ql.keywords.js +218 -0
- package/dist/esm/languages/n1ql/n1ql.keywords.js.map +1 -0
- package/dist/esm/languages/plsql/plsql.formatter.d.ts +2 -0
- package/dist/esm/languages/plsql/plsql.formatter.js +137 -0
- package/dist/esm/languages/plsql/plsql.formatter.js.map +1 -0
- package/dist/esm/languages/plsql/plsql.functions.d.ts +1 -0
- package/dist/esm/languages/plsql/plsql.functions.js +267 -0
- package/dist/esm/languages/plsql/plsql.functions.js.map +1 -0
- package/dist/esm/languages/plsql/plsql.keywords.d.ts +2 -0
- package/dist/esm/languages/plsql/plsql.keywords.js +346 -0
- package/dist/esm/languages/plsql/plsql.keywords.js.map +1 -0
- package/dist/esm/languages/postgresql/postgresql.formatter.d.ts +2 -0
- package/dist/esm/languages/postgresql/postgresql.formatter.js +388 -0
- package/dist/esm/languages/postgresql/postgresql.formatter.js.map +1 -0
- package/dist/esm/languages/postgresql/postgresql.functions.d.ts +1 -0
- package/dist/esm/languages/postgresql/postgresql.functions.js +690 -0
- package/dist/esm/languages/postgresql/postgresql.functions.js.map +1 -0
- package/dist/esm/languages/postgresql/postgresql.keywords.d.ts +2 -0
- package/dist/esm/languages/postgresql/postgresql.keywords.js +155 -0
- package/dist/esm/languages/postgresql/postgresql.keywords.js.map +1 -0
- package/dist/esm/languages/redshift/redshift.formatter.d.ts +2 -0
- package/dist/esm/languages/redshift/redshift.formatter.js +177 -0
- package/dist/esm/languages/redshift/redshift.formatter.js.map +1 -0
- package/dist/esm/languages/redshift/redshift.functions.d.ts +1 -0
- package/dist/esm/languages/redshift/redshift.functions.js +348 -0
- package/dist/esm/languages/redshift/redshift.functions.js.map +1 -0
- package/dist/esm/languages/redshift/redshift.keywords.d.ts +2 -0
- package/dist/esm/languages/redshift/redshift.keywords.js +213 -0
- package/dist/esm/languages/redshift/redshift.keywords.js.map +1 -0
- package/dist/esm/languages/singlestoredb/singlestoredb.formatter.d.ts +2 -0
- package/dist/esm/languages/singlestoredb/singlestoredb.formatter.js +283 -0
- package/dist/esm/languages/singlestoredb/singlestoredb.formatter.js.map +1 -0
- package/dist/esm/languages/singlestoredb/singlestoredb.functions.d.ts +1 -0
- package/dist/esm/languages/singlestoredb/singlestoredb.functions.js +282 -0
- package/dist/esm/languages/singlestoredb/singlestoredb.functions.js.map +1 -0
- package/dist/esm/languages/singlestoredb/singlestoredb.keywords.d.ts +2 -0
- package/dist/esm/languages/singlestoredb/singlestoredb.keywords.js +265 -0
- package/dist/esm/languages/singlestoredb/singlestoredb.keywords.js.map +1 -0
- package/dist/esm/languages/snowflake/snowflake.formatter.d.ts +2 -0
- package/dist/esm/languages/snowflake/snowflake.formatter.js +336 -0
- package/dist/esm/languages/snowflake/snowflake.formatter.js.map +1 -0
- package/dist/esm/languages/snowflake/snowflake.functions.d.ts +1 -0
- package/dist/esm/languages/snowflake/snowflake.functions.js +610 -0
- package/dist/esm/languages/snowflake/snowflake.functions.js.map +1 -0
- package/dist/esm/languages/snowflake/snowflake.keywords.d.ts +2 -0
- package/dist/esm/languages/snowflake/snowflake.keywords.js +137 -0
- package/dist/esm/languages/snowflake/snowflake.keywords.js.map +1 -0
- package/dist/esm/languages/spark/spark.formatter.d.ts +2 -0
- package/dist/esm/languages/spark/spark.formatter.js +164 -0
- package/dist/esm/languages/spark/spark.formatter.js.map +1 -0
- package/dist/esm/languages/spark/spark.functions.d.ts +1 -0
- package/dist/esm/languages/spark/spark.functions.js +323 -0
- package/dist/esm/languages/spark/spark.functions.js.map +1 -0
- package/dist/esm/languages/spark/spark.keywords.d.ts +2 -0
- package/dist/esm/languages/spark/spark.keywords.js +299 -0
- package/dist/esm/languages/spark/spark.keywords.js.map +1 -0
- package/dist/esm/languages/sql/sql.formatter.d.ts +2 -0
- package/dist/esm/languages/sql/sql.formatter.js +94 -0
- package/dist/esm/languages/sql/sql.formatter.js.map +1 -0
- package/dist/esm/languages/sql/sql.functions.d.ts +1 -0
- package/dist/esm/languages/sql/sql.functions.js +99 -0
- package/dist/esm/languages/sql/sql.functions.js.map +1 -0
- package/dist/esm/languages/sql/sql.keywords.d.ts +2 -0
- package/dist/esm/languages/sql/sql.keywords.js +241 -0
- package/dist/esm/languages/sql/sql.keywords.js.map +1 -0
- package/dist/esm/languages/sqlite/sqlite.formatter.d.ts +2 -0
- package/dist/esm/languages/sqlite/sqlite.formatter.js +91 -0
- package/dist/esm/languages/sqlite/sqlite.formatter.js.map +1 -0
- package/dist/esm/languages/sqlite/sqlite.functions.d.ts +1 -0
- package/dist/esm/languages/sqlite/sqlite.functions.js +126 -0
- package/dist/esm/languages/sqlite/sqlite.functions.js.map +1 -0
- package/dist/esm/languages/sqlite/sqlite.keywords.d.ts +2 -0
- package/dist/esm/languages/sqlite/sqlite.keywords.js +177 -0
- package/dist/esm/languages/sqlite/sqlite.keywords.js.map +1 -0
- package/dist/esm/languages/tidb/tidb.formatter.d.ts +2 -0
- package/dist/esm/languages/tidb/tidb.formatter.js +215 -0
- package/dist/esm/languages/tidb/tidb.formatter.js.map +1 -0
- package/dist/esm/languages/tidb/tidb.functions.d.ts +1 -0
- package/dist/esm/languages/tidb/tidb.functions.js +328 -0
- package/dist/esm/languages/tidb/tidb.functions.js.map +1 -0
- package/dist/esm/languages/tidb/tidb.keywords.d.ts +2 -0
- package/dist/esm/languages/tidb/tidb.keywords.js +241 -0
- package/dist/esm/languages/tidb/tidb.keywords.js.map +1 -0
- package/dist/esm/languages/transactsql/transactsql.formatter.d.ts +2 -0
- package/dist/esm/languages/transactsql/transactsql.formatter.js +272 -0
- package/dist/esm/languages/transactsql/transactsql.formatter.js.map +1 -0
- package/dist/esm/languages/transactsql/transactsql.functions.d.ts +1 -0
- package/dist/esm/languages/transactsql/transactsql.functions.js +307 -0
- package/dist/esm/languages/transactsql/transactsql.functions.js.map +1 -0
- package/dist/esm/languages/transactsql/transactsql.keywords.d.ts +2 -0
- package/dist/esm/languages/transactsql/transactsql.keywords.js +211 -0
- package/dist/esm/languages/transactsql/transactsql.keywords.js.map +1 -0
- package/dist/esm/languages/trino/trino.formatter.d.ts +2 -0
- package/dist/esm/languages/trino/trino.formatter.js +160 -0
- package/dist/esm/languages/trino/trino.formatter.js.map +1 -0
- package/dist/esm/languages/trino/trino.functions.d.ts +1 -0
- package/dist/esm/languages/trino/trino.functions.js +436 -0
- package/dist/esm/languages/trino/trino.functions.js.map +1 -0
- package/dist/esm/languages/trino/trino.keywords.d.ts +2 -0
- package/dist/esm/languages/trino/trino.keywords.js +279 -0
- package/dist/esm/languages/trino/trino.keywords.js.map +1 -0
- package/dist/esm/lexer/NestedComment.d.ts +10 -0
- package/dist/esm/lexer/NestedComment.js +50 -0
- package/dist/esm/lexer/NestedComment.js.map +1 -0
- package/dist/esm/lexer/Tokenizer.d.ts +14 -0
- package/dist/esm/lexer/Tokenizer.js +264 -0
- package/dist/esm/lexer/Tokenizer.js.map +1 -0
- package/dist/esm/lexer/TokenizerEngine.d.ts +31 -0
- package/dist/esm/lexer/TokenizerEngine.js +92 -0
- package/dist/esm/lexer/TokenizerEngine.js.map +1 -0
- package/dist/esm/lexer/TokenizerOptions.d.ts +56 -0
- package/dist/esm/lexer/TokenizerOptions.js +2 -0
- package/dist/esm/lexer/TokenizerOptions.js.map +1 -0
- package/dist/esm/lexer/disambiguateTokens.d.ts +18 -0
- package/dist/esm/lexer/disambiguateTokens.js +86 -0
- package/dist/esm/lexer/disambiguateTokens.js.map +1 -0
- package/dist/esm/lexer/lineColFromIndex.d.ts +8 -0
- package/dist/esm/lexer/lineColFromIndex.js +8 -0
- package/dist/esm/lexer/lineColFromIndex.js.map +1 -0
- package/dist/esm/lexer/regexFactory.d.ts +55 -0
- package/dist/esm/lexer/regexFactory.js +140 -0
- package/dist/esm/lexer/regexFactory.js.map +1 -0
- package/dist/esm/lexer/regexUtil.d.ts +7 -0
- package/dist/esm/lexer/regexUtil.js +13 -0
- package/dist/esm/lexer/regexUtil.js.map +1 -0
- package/dist/esm/lexer/token.d.ts +89 -0
- package/dist/esm/lexer/token.js +94 -0
- package/dist/esm/lexer/token.js.map +1 -0
- package/dist/esm/parser/LexerAdapter.d.ts +17 -0
- package/dist/esm/parser/LexerAdapter.js +27 -0
- package/dist/esm/parser/LexerAdapter.js.map +1 -0
- package/dist/esm/parser/ast.d.ts +158 -0
- package/dist/esm/parser/ast.js +28 -0
- package/dist/esm/parser/ast.js.map +1 -0
- package/dist/esm/parser/createParser.d.ts +10 -0
- package/dist/esm/parser/createParser.js +36 -0
- package/dist/esm/parser/createParser.js.map +1 -0
- package/dist/esm/parser/grammar.d.ts +28 -0
- package/dist/esm/parser/grammar.js +366 -0
- package/dist/esm/parser/grammar.js.map +1 -0
- package/dist/esm/sqlFormatter.d.ts +31 -0
- package/dist/esm/sqlFormatter.js +86 -0
- package/dist/esm/sqlFormatter.js.map +1 -0
- package/dist/esm/utils.d.ts +8 -0
- package/dist/esm/utils.js +13 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/esm/validateConfig.d.ts +4 -0
- package/dist/esm/validateConfig.js +38 -0
- package/dist/esm/validateConfig.js.map +1 -0
- package/dist/sql-formatter.min.cjs +2 -0
- package/dist/sql-formatter.min.cjs.map +1 -0
- package/dist/sql-formatter.min.js +2 -0
- package/package.json +135 -0
package/AUTHORS
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
Rene Saarsoo <nene@triin.net>
|
|
2
|
+
|
|
3
|
+
# Contributors
|
|
4
|
+
Adrien Pyke <adpyke@gmail.com>
|
|
5
|
+
Ahmad Khan <ahmad.khan@educative.io>
|
|
6
|
+
Alexandr Kozhevnikov <aedkozhevnikov@sberbank.ru>
|
|
7
|
+
Alexander Prinzhorn <alexander@prinzhorn.it>
|
|
8
|
+
An Phi <aphi@skidmore.edu>
|
|
9
|
+
Andrew
|
|
10
|
+
Benjamin Bellamy
|
|
11
|
+
bingou
|
|
12
|
+
Boris Verkhovskiy <boris.verk@gmail.com>
|
|
13
|
+
Christian Jorgensen <chr.jorgensen1@gmail.com>
|
|
14
|
+
Christopher Manouvrier <chris@dovetailapp.com>
|
|
15
|
+
Damon Davison <ddavison@avalere.com>
|
|
16
|
+
Daniël van Eeden <daniel.van.eeden@pingcap.com>
|
|
17
|
+
Davut Can Abacigil <can@teamsql.io>
|
|
18
|
+
eeeXun <sdes96303@gmail.com>
|
|
19
|
+
Eniko Nagy
|
|
20
|
+
Erik Hirmo <erik.hirmo@roguewave.com>
|
|
21
|
+
Erik Forsström <erik@orbiapp.io>
|
|
22
|
+
Gajus Kuizinas <gajus@gajus.com>
|
|
23
|
+
George Leslie-Waksman <waksman@gmail.com>
|
|
24
|
+
Grant Forsythe <grantwforsythe@gmail.com>
|
|
25
|
+
Hamilton Ulmer <hamilton.ulmer@gmail.com>
|
|
26
|
+
Hugh Cameron <hescameron@gmail.com>
|
|
27
|
+
htaketani <h.taketani@gmail.com>
|
|
28
|
+
Ian Campbell <icampbell@immuta.com>
|
|
29
|
+
ivan baktsheev
|
|
30
|
+
Jacobo Bouzas Quiroga <jacobo.bouzas@factorial.co>
|
|
31
|
+
JagmitSwami <Jagmit.Swami@exeqmode.com>
|
|
32
|
+
João Pimentel Ferreira
|
|
33
|
+
James A Rosen <jrosen@clarasight.com>
|
|
34
|
+
Jonathan Schuster
|
|
35
|
+
Josh Flark <joshua.flark@growthloop.com>
|
|
36
|
+
Josh Sandler <josh@tonic.ai>
|
|
37
|
+
Justin Dane Vallar <jdvallar@gmail.com>
|
|
38
|
+
Karl Horky <karl.horky@gmail.com>
|
|
39
|
+
Martin Nowak <code@dawg.eu>
|
|
40
|
+
Matheus Salmi <mathsalmi@gmail.com>
|
|
41
|
+
Matheus Teixeira <matheus.mtxr@gmail.com>
|
|
42
|
+
Matt Basta <matt@runwayml.com>
|
|
43
|
+
Max R
|
|
44
|
+
Michael Giannakopoulos <mgiannakopoulos@singlestore.com>
|
|
45
|
+
musjj
|
|
46
|
+
Nathan Walters <nwalters512@gmail.com>
|
|
47
|
+
Nicolas Dermine <nicolas.dermine@gmail.com>
|
|
48
|
+
Offir Baron <ofir@panoply.io>
|
|
49
|
+
Olexandr Sydorchuk <olexandr.syd@gmail.com>
|
|
50
|
+
outslept <webeugene@proton.me>
|
|
51
|
+
Pavel Djundik <xPaw@users.noreply.github.com>
|
|
52
|
+
pokutuna <mail@pokutuna.com>
|
|
53
|
+
Rafael Pinto <raprp@posteo.de>
|
|
54
|
+
Rahel Rjadnev-Meristo <rahelini@gmail.com>
|
|
55
|
+
Rodrigo Stuchi
|
|
56
|
+
Romain Rigaux <hello@getromain.com>
|
|
57
|
+
Sasha Aliashkevich <olsender@gmail.com>
|
|
58
|
+
Sean Song <mail@seansong.dev>
|
|
59
|
+
Sebastian Lyng Johansen <seblyng98@gmail.com>
|
|
60
|
+
Sergei Egorov <sergei.egorov@zeroturnaround.com>
|
|
61
|
+
Shub <shub1493biswas@gmail.com>
|
|
62
|
+
Stanislav Germanovskii <s.germanovskiy@tinkoff.ru>
|
|
63
|
+
Steven Yung <stevenyung@fastmail.com>
|
|
64
|
+
Timon Jurschitsch <timon.jurschitsch@gmail.com>
|
|
65
|
+
Tito Griné <tgrine@singlestore.com>
|
|
66
|
+
Toliver <teejae@gmail.com>
|
|
67
|
+
Toni Müller <toni.mueller@datameer.com>
|
|
68
|
+
Tony Coconate <me@tonycoconate.com>
|
|
69
|
+
Tyler Jones <tyler.jones@txwormhole.com>
|
|
70
|
+
Uku Pattak <ukupat@gmail.com>
|
|
71
|
+
VdustR <vdustr@gmail.com>
|
|
72
|
+
Wylie Conlon <wylie@superblockshq.com>
|
|
73
|
+
Xin Hu <hoosin.git@gmail.com>
|
|
74
|
+
Zhongxian Liang <zhongxian.liang@shopee.com>
|
|
75
|
+
0xflotus <0xflotus@gmail.com>
|
package/LICENSE
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2016-2020 ZeroTurnaround LLC
|
|
4
|
+
Copyright (c) 2020-2021 George Leslie-Waksman and other contributors
|
|
5
|
+
Copyright (c) 2021-Present inferrinizzard and other contributors
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
> **Note:** This is a highly customized fork of `sql-formatter` designed for **extreme compactness** and **relative flush-left alignment** (especially for `WHERE`, `AND`, `FROM` clauses, and `WITH` statement bug fixes). It supports placing commas before fields (`commaPosition: 'before'`) without breaking trailing inline comments.
|
|
2
|
+
>
|
|
3
|
+
> 🇨🇳 [查看中文特性说明 (README_zh.md)](./README_zh.md)
|
|
4
|
+
>
|
|
5
|
+
> **Installation:** `npm install @guojc1/sql-formatter-compact`
|
|
6
|
+
|
|
7
|
+
<a href='https://github.com/@guojc1/sql-formatter-compact-org/@guojc1/sql-formatter-compact'><img src="static/@guojc1/sql-formatter-compact-icon.png" width="64"/></a>
|
|
8
|
+
|
|
9
|
+
# SQL Formatter [](https://npmjs.com/package/@guojc1/sql-formatter-compact)  [](https://coveralls.io/github/@guojc1/sql-formatter-compact-org/@guojc1/sql-formatter-compact?branch=master)
|
|
10
|
+
|
|
11
|
+
**SQL Formatter** is a JavaScript library for pretty-printing SQL queries.
|
|
12
|
+
|
|
13
|
+
It started as a port of a [PHP Library][], but has since considerably diverged.
|
|
14
|
+
|
|
15
|
+
It supports various SQL dialects:
|
|
16
|
+
GCP BigQuery, Clickhouse, IBM DB2, DuckDB, Apache Hive, MariaDB, MySQL, TiDB, Couchbase N1QL, Oracle PL/SQL, PostgreSQL, Amazon Redshift, SingleStoreDB, Snowflake, Spark, SQL Server Transact-SQL, Trino (and Presto).
|
|
17
|
+
See [language option docs](docs/language.md) for more details.
|
|
18
|
+
|
|
19
|
+
It does not support:
|
|
20
|
+
|
|
21
|
+
- Stored procedures.
|
|
22
|
+
- Changing of the delimiter type to something else than `;`.
|
|
23
|
+
|
|
24
|
+
→ [Try the demo.](https://@guojc1/sql-formatter-compact-org.github.io/@guojc1/sql-formatter-compact)
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
Get the latest version from NPM:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
npm install @guojc1/sql-formatter-compact
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Also available with yarn:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
yarn add @guojc1/sql-formatter-compact
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
### Usage as library
|
|
43
|
+
|
|
44
|
+
```js
|
|
45
|
+
import { format } from '@guojc1/sql-formatter-compact';
|
|
46
|
+
|
|
47
|
+
console.log(format('SELECT * FROM tbl', { language: 'mysql' }));
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
This will output:
|
|
51
|
+
|
|
52
|
+
```sql
|
|
53
|
+
SELECT
|
|
54
|
+
*
|
|
55
|
+
FROM
|
|
56
|
+
tbl
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
You can also pass in configuration options:
|
|
60
|
+
|
|
61
|
+
```js
|
|
62
|
+
format('SELECT * FROM tbl', {
|
|
63
|
+
language: 'spark',
|
|
64
|
+
tabWidth: 2,
|
|
65
|
+
keywordCase: 'upper',
|
|
66
|
+
linesBetweenQueries: 2,
|
|
67
|
+
});
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Disabling the formatter
|
|
71
|
+
|
|
72
|
+
You can disable the formatter for a section of SQL by surrounding it with disable/enable comments:
|
|
73
|
+
|
|
74
|
+
```sql
|
|
75
|
+
/* @guojc1/sql-formatter-compact-disable */
|
|
76
|
+
SELECT * FROM tbl1;
|
|
77
|
+
/* @guojc1/sql-formatter-compact-enable */
|
|
78
|
+
SELECT * FROM tbl2;
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
which produces:
|
|
82
|
+
|
|
83
|
+
```sql
|
|
84
|
+
/* @guojc1/sql-formatter-compact-disable */
|
|
85
|
+
SELECT * FROM tbl1;
|
|
86
|
+
/* @guojc1/sql-formatter-compact-enable */
|
|
87
|
+
SELECT
|
|
88
|
+
*
|
|
89
|
+
FROM
|
|
90
|
+
tbl2;
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The formatter doesn't even parse the code between these comments.
|
|
94
|
+
So in case there's some SQL that happens to crash SQL Formatter,
|
|
95
|
+
you can comment the culprit out (at least until the issue gets
|
|
96
|
+
fixed in SQL Formatter).
|
|
97
|
+
|
|
98
|
+
### Placeholders replacement
|
|
99
|
+
|
|
100
|
+
In addition to formatting, this library can also perform placeholder replacement in prepared SQL statements:
|
|
101
|
+
|
|
102
|
+
```js
|
|
103
|
+
format('SELECT * FROM tbl WHERE foo = ?', {
|
|
104
|
+
params: ["'bar'"],
|
|
105
|
+
});
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Results in:
|
|
109
|
+
|
|
110
|
+
```sql
|
|
111
|
+
SELECT
|
|
112
|
+
*
|
|
113
|
+
FROM
|
|
114
|
+
tbl
|
|
115
|
+
WHERE
|
|
116
|
+
foo = 'bar'
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
For more details see [docs of params option.](docs/params.md)
|
|
120
|
+
|
|
121
|
+
### Usage from command line
|
|
122
|
+
|
|
123
|
+
The CLI tool will be installed under `@guojc1/sql-formatter-compact`
|
|
124
|
+
and may be invoked via `npx @guojc1/sql-formatter-compact`:
|
|
125
|
+
|
|
126
|
+
```sh
|
|
127
|
+
@guojc1/sql-formatter-compact -h
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
usage: @guojc1/sql-formatter-compact [-h] [-o OUTPUT] \
|
|
132
|
+
[-l {bigquery,clickhouse,db2,db2i,hive,mariadb,mysql,n1ql,plsql,postgresql,redshift,singlestoredb,snowflake,spark,sql,sqlite,tidb,transactsql,trino,tsql}] [-c CONFIG] [--version] [FILE]
|
|
133
|
+
|
|
134
|
+
SQL Formatter
|
|
135
|
+
|
|
136
|
+
positional arguments:
|
|
137
|
+
FILE Input SQL file (defaults to stdin)
|
|
138
|
+
|
|
139
|
+
optional arguments:
|
|
140
|
+
-h, --help show this help message and exit
|
|
141
|
+
-o, --output OUTPUT
|
|
142
|
+
File to write SQL output (defaults to stdout)
|
|
143
|
+
--fix Update the file in-place
|
|
144
|
+
-l, --language {bigquery,clickhouse,db2,db2i,hive,mariadb,mysql,n1ql,plsql,postgresql,redshift,singlestoredb,snowflake,spark,sql,sqlite,tidb,trino,tsql}
|
|
145
|
+
SQL dialect (defaults to basic sql)
|
|
146
|
+
-c, --config CONFIG
|
|
147
|
+
Path to config JSON file or json string (will find a file named '.@guojc1/sql-formatter-compact.json' or use default configs if unspecified)
|
|
148
|
+
--version show program's version number and exit
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
By default, the tool takes queries from stdin and processes them to stdout but
|
|
152
|
+
one can also name an input file name or use the `--output` option.
|
|
153
|
+
|
|
154
|
+
```sh
|
|
155
|
+
echo 'select * from tbl where id = 3' | @guojc1/sql-formatter-compact
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```sql
|
|
159
|
+
select
|
|
160
|
+
*
|
|
161
|
+
from
|
|
162
|
+
tbl
|
|
163
|
+
where
|
|
164
|
+
id = 3
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
The tool also accepts a JSON config file named .@guojc1/sql-formatter-compact.json in the current or any parent directory, or with the `--config` option that takes this form:
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"language": "spark",
|
|
172
|
+
"tabWidth": 2,
|
|
173
|
+
"keywordCase": "upper",
|
|
174
|
+
"linesBetweenQueries": 2
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
All fields are optional and all fields that are not specified will be filled with their default values.
|
|
179
|
+
|
|
180
|
+
### Configuration options
|
|
181
|
+
|
|
182
|
+
- [**`language`**](docs/language.md) the SQL dialect to use (when using `format()`).
|
|
183
|
+
- [**`dialect`**](docs/dialect.md) the SQL dialect to use (when using `formatDialect()` since version 12).
|
|
184
|
+
- [**`tabWidth`**](docs/tabWidth.md) amount of indentation to use.
|
|
185
|
+
- [**`useTabs`**](docs/useTabs.md) to use tabs for indentation.
|
|
186
|
+
- [**`keywordCase`**](docs/keywordCase.md) uppercases or lowercases keywords.
|
|
187
|
+
- [**`dataTypeCase`**](docs/dataTypeCase.md) uppercases or lowercases data types.
|
|
188
|
+
- [**`functionCase`**](docs/functionCase.md) uppercases or lowercases function names.
|
|
189
|
+
- [**`identifierCase`**](docs/identifierCase.md) uppercases or lowercases identifiers. (**experimental!**)
|
|
190
|
+
- [**`indentStyle`**](docs/indentStyle.md) defines overall indentation style. (**deprecated!**)
|
|
191
|
+
- [**`logicalOperatorNewline`**](docs/logicalOperatorNewline.md) newline before or after boolean operator (AND, OR, XOR).
|
|
192
|
+
- [**`expressionWidth`**](docs/expressionWidth.md) maximum number of characters in parenthesized expressions to be kept on single line.
|
|
193
|
+
- [**`linesBetweenQueries`**](docs/linesBetweenQueries.md) how many newlines to insert between queries.
|
|
194
|
+
- [**`denseOperators`**](docs/denseOperators.md) packs operators densely without spaces.
|
|
195
|
+
- [**`newlineBeforeSemicolon`**](docs/newlineBeforeSemicolon.md) places semicolon on separate line.
|
|
196
|
+
- [**`params`**](docs/params.md) collection of values for placeholder replacement.
|
|
197
|
+
- [**`paramTypes`**](docs/paramTypes.md) specifies parameter placeholders types to support.
|
|
198
|
+
|
|
199
|
+
### Usage without NPM
|
|
200
|
+
|
|
201
|
+
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.
|
|
202
|
+
This makes SQL Formatter available as a global variable `window.sqlFormatter`.
|
|
203
|
+
|
|
204
|
+
### Usage in editors
|
|
205
|
+
|
|
206
|
+
- [VSCode extension](https://marketplace.visualstudio.com/items?itemName=ReneSaarsoo.@guojc1/sql-formatter-compact-vsc)
|
|
207
|
+
- [Repo](https://github.com/@guojc1/sql-formatter-compact-org/@guojc1/sql-formatter-compact-vscode)
|
|
208
|
+
- [Vim extension](https://github.com/fannheyward/coc-sql/)
|
|
209
|
+
- [Prettier plugin](https://github.com/un-ts/prettier/tree/master/packages/sql)
|
|
210
|
+
|
|
211
|
+
We provide **JSON Schema** for `.@guojc1/sql-formatter-compact.json` configuration file, enabling autocompletion and IntelliSense support in editors.
|
|
212
|
+
|
|
213
|
+
- [JSON Schema link](https://raw.githubusercontent.com/@guojc1/sql-formatter-compact-org/@guojc1/sql-formatter-compact/refs/heads/master/schema.json)
|
|
214
|
+
- **Usage Guides:**
|
|
215
|
+
- [Using the schema in VSCode](https://code.visualstudio.com/docs/languages/json#_mapping-in-the-user-settings)
|
|
216
|
+
- [Using the schema in Zed](https://zed.dev/docs/languages/json#schema-specification-via-settings)
|
|
217
|
+
|
|
218
|
+
### Usage as ESLint plugin
|
|
219
|
+
|
|
220
|
+
- Inside `eslint-plugin-sql` by using the rule [eslint-plugin-sql#format](https://github.com/gajus/eslint-plugin-sql#format).
|
|
221
|
+
|
|
222
|
+
## Frequently Asked Questions
|
|
223
|
+
|
|
224
|
+
### Parse error: Unexpected ... at line ...
|
|
225
|
+
|
|
226
|
+
The most common cause is that you haven't specified an SQL dialect.
|
|
227
|
+
Instead of calling the library simply:
|
|
228
|
+
|
|
229
|
+
```js
|
|
230
|
+
format('select [col] from tbl');
|
|
231
|
+
// Throws: Parse error: Unexpected "[col] from" at line 1 column 8
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
pick the proper dialect, like:
|
|
235
|
+
|
|
236
|
+
```js
|
|
237
|
+
format('select [col] from tbl', { language: 'transactsql' });
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Or when using the VSCode extension: Settings -> SQL-Formatter-VSCode -> Dialect.
|
|
241
|
+
|
|
242
|
+
### Module parse failed: Unexpected token
|
|
243
|
+
|
|
244
|
+
This typically happens when bundling an application with Webpack.
|
|
245
|
+
The cause is that Babel (through `babel-loader`) is not configured
|
|
246
|
+
to support class properties syntax:
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
| export default class ExpressionFormatter {
|
|
250
|
+
> inline = false;
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
This syntax is widely supported in all major browsers (except old IE)
|
|
254
|
+
and support for it is included to the default `@babel/preset-env`.
|
|
255
|
+
|
|
256
|
+
Possible fixes:
|
|
257
|
+
|
|
258
|
+
- Update to newer Babel / Webpack
|
|
259
|
+
- Switch to `@babel/preset-env`
|
|
260
|
+
- Include plugin `@babel/plugin-proposal-class-properties`
|
|
261
|
+
|
|
262
|
+
### I'm having a problem with Prettier SQL VSCode extension
|
|
263
|
+
|
|
264
|
+
The [Prettier SQL VSCode](https://marketplace.visualstudio.com/items?itemName=inferrinizzard.prettier-sql-vscode)
|
|
265
|
+
extension is no more maintained by its author.
|
|
266
|
+
|
|
267
|
+
Please use the official [SQL Formatter VSCode](https://marketplace.visualstudio.com/items?itemName=ReneSaarsoo.@guojc1/sql-formatter-compact-vsc)
|
|
268
|
+
extension to get the latest fixes from SQL Formatter library.
|
|
269
|
+
|
|
270
|
+
### My SQL contains templating syntax which SQL Formatter fails to parse
|
|
271
|
+
|
|
272
|
+
For example, you might have an SQL like:
|
|
273
|
+
|
|
274
|
+
```sql
|
|
275
|
+
SELECT {col1}, {col2} FROM {tablename}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
While templating is not directly supported by SQL Formatter, the workaround
|
|
279
|
+
is to use [paramTypes](docs/paramTypes.md) config option to treat these
|
|
280
|
+
occurrences of templating constructs as prepared-statement parameter-placeholders:
|
|
281
|
+
|
|
282
|
+
```js
|
|
283
|
+
format('SELECT {col1}, {col2} FROM {tablename};', {
|
|
284
|
+
paramTypes: { custom: [{ regex: String.raw`\{\w+\}` }] },
|
|
285
|
+
});
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
This won't work for all possible templating constructs,
|
|
289
|
+
but should solve the most common use cases.
|
|
290
|
+
|
|
291
|
+
## The future
|
|
292
|
+
|
|
293
|
+
The development of this formatter is currently in maintenance mode.
|
|
294
|
+
Bugs will get fixed if feasible, but new features will likely not be added.
|
|
295
|
+
|
|
296
|
+
I have started a new SQL formatting tool: [prettier-plugin-sql-cst][].
|
|
297
|
+
|
|
298
|
+
- It solves several problems which can't be fixed in SQL Formatter because
|
|
299
|
+
of fundamental problems in its architecture.
|
|
300
|
+
- It makes use of the Prettier layout algorithm,
|
|
301
|
+
doing a better job of splitting long expressions to multiple lines.
|
|
302
|
+
- It takes much more opinionated approach to SQL formatting,
|
|
303
|
+
giving only a very limited set of options to adjust the code style.
|
|
304
|
+
- It already has full support for SQLite and BigQuery syntax.
|
|
305
|
+
It should work for the most common SQL code in various other dialects.
|
|
306
|
+
|
|
307
|
+
Give it a try if you'd like to take your SQL auto-formatting to the next level.
|
|
308
|
+
|
|
309
|
+
## Contributing
|
|
310
|
+
|
|
311
|
+
Please see [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
312
|
+
|
|
313
|
+
## License
|
|
314
|
+
|
|
315
|
+
[MIT](LICENSE)
|
|
316
|
+
|
|
317
|
+
[php library]: https://github.com/jdorn/@guojc1/sql-formatter-compact
|
|
318
|
+
[prettier-plugin-sql-cst]: https://github.com/nene/prettier-plugin-sql-cst
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
const { format, supportedDialects } = require('../dist/cjs/index.js');
|
|
6
|
+
const fs = require('fs');
|
|
7
|
+
const path = require('path');
|
|
8
|
+
const tty = require('tty');
|
|
9
|
+
const { version } = require('../package.json');
|
|
10
|
+
const { ArgumentParser } = require('argparse');
|
|
11
|
+
const { promisify } = require('util');
|
|
12
|
+
const { text } = require('node:stream/consumers');
|
|
13
|
+
|
|
14
|
+
class SqlFormatterCli {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.parser = this.getParser();
|
|
17
|
+
this.args = this.parser.parse_args();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async run() {
|
|
21
|
+
this.cfg = await this.readConfig();
|
|
22
|
+
this.query = await this.getInput();
|
|
23
|
+
const formattedQuery = format(this.query, this.cfg).trim() + '\n';
|
|
24
|
+
this.writeOutput(this.getOutputFile(this.args), formattedQuery);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getParser() {
|
|
28
|
+
const parser = new ArgumentParser({
|
|
29
|
+
add_help: true,
|
|
30
|
+
description: 'SQL Formatter',
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
parser.add_argument('file', {
|
|
34
|
+
metavar: 'FILE',
|
|
35
|
+
nargs: '?',
|
|
36
|
+
help: 'Input SQL file (defaults to stdin)',
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
parser.add_argument('-o', '--output', {
|
|
40
|
+
help: 'File to write SQL output (defaults to stdout)',
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
parser.add_argument('--fix', {
|
|
44
|
+
help: 'Update the file in-place',
|
|
45
|
+
action: 'store_const',
|
|
46
|
+
const: true,
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
parser.add_argument('-l', '--language', {
|
|
50
|
+
help: 'SQL Formatter dialect (defaults to basic sql)',
|
|
51
|
+
choices: supportedDialects,
|
|
52
|
+
default: 'sql',
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
parser.add_argument('-c', '--config', {
|
|
56
|
+
help: "Path to config JSON file or json string (will find a file named '.sql-formatter.json' or use default configs if unspecified)",
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
parser.add_argument('--version', {
|
|
60
|
+
action: 'version',
|
|
61
|
+
version,
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
return parser;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
async readConfig() {
|
|
68
|
+
if (
|
|
69
|
+
tty.isatty(0) &&
|
|
70
|
+
Object.entries(this.args).every(([k, v]) => k === 'language' || v === undefined)
|
|
71
|
+
) {
|
|
72
|
+
this.parser.print_help();
|
|
73
|
+
process.exit(0);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
language: this.args.language,
|
|
78
|
+
...(await this.getConfig()),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async getConfig() {
|
|
83
|
+
if (this.args.config) {
|
|
84
|
+
// First, try to parse --config value as a JSON string
|
|
85
|
+
try {
|
|
86
|
+
return JSON.parse(this.args.config);
|
|
87
|
+
} catch (e) {
|
|
88
|
+
// If that fails, try to read the --config value as a file
|
|
89
|
+
return this.parseFile(this.args.config);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Otherwise find a local config file
|
|
94
|
+
const localConfig = this.findConfig();
|
|
95
|
+
if (!localConfig) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return this.parseFile(localConfig);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
findConfig(dir = process.cwd()) {
|
|
103
|
+
const filePath = path.join(dir, '.sql-formatter.json');
|
|
104
|
+
if (!fs.existsSync(filePath)) {
|
|
105
|
+
const parentDir = path.resolve(dir, '..');
|
|
106
|
+
if (parentDir === dir) {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
return this.findConfig(parentDir);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return filePath;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
async getInput() {
|
|
116
|
+
const infile = this.args.file || process.stdin.fd;
|
|
117
|
+
if (this.args.file) {
|
|
118
|
+
return await this.readFile(infile);
|
|
119
|
+
} else {
|
|
120
|
+
return await text(process.stdin);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
async parseFile(filename) {
|
|
125
|
+
try {
|
|
126
|
+
return JSON.parse(await this.readFile(filename));
|
|
127
|
+
} catch (e) {
|
|
128
|
+
console.error(`Error: unable to parse as JSON or treat as JSON file: ${filename}`);
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
async readFile(filename) {
|
|
134
|
+
try {
|
|
135
|
+
return promisify(fs.readFile)(filename, { encoding: 'utf-8' });
|
|
136
|
+
} catch (e) {
|
|
137
|
+
this.exitWhenIOError(e, filename);
|
|
138
|
+
console.error('An unknown error has occurred, please file a bug report at:');
|
|
139
|
+
console.log('https://github.com/sql-formatter-org/sql-formatter/issues\n');
|
|
140
|
+
throw e;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
exitWhenIOError(e, infile) {
|
|
145
|
+
if (e.code === 'EAGAIN') {
|
|
146
|
+
console.error('Error: no file specified and no data in stdin');
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
if (e.code === 'ENOENT') {
|
|
150
|
+
console.error(`Error: could not open file ${infile}`);
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
getOutputFile(args) {
|
|
156
|
+
if (args.output && args.fix) {
|
|
157
|
+
console.error('Error: Cannot use both --output and --fix options simultaneously');
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
if (args.fix && !args.file) {
|
|
161
|
+
console.error('Error: The --fix option cannot be used without a filename');
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
164
|
+
if (args.fix) {
|
|
165
|
+
return args.file;
|
|
166
|
+
} else {
|
|
167
|
+
return args.output;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
writeOutput(file, query) {
|
|
172
|
+
if (!file) {
|
|
173
|
+
// No output file, write to console
|
|
174
|
+
process.stdout.write(query);
|
|
175
|
+
} else {
|
|
176
|
+
fs.writeFileSync(file, query);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
const cli = new SqlFormatterCli();
|
|
182
|
+
cli.run();
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ParamItems } from './formatter/Params.js';
|
|
2
|
+
import { ParamTypes } from './lexer/TokenizerOptions.js';
|
|
3
|
+
export type IndentStyle = 'standard' | 'tabularLeft' | 'tabularRight';
|
|
4
|
+
export type KeywordCase = 'preserve' | 'upper' | 'lower';
|
|
5
|
+
export type IdentifierCase = KeywordCase;
|
|
6
|
+
export type DataTypeCase = KeywordCase;
|
|
7
|
+
export type FunctionCase = KeywordCase;
|
|
8
|
+
export type LogicalOperatorNewline = 'before' | 'after';
|
|
9
|
+
export type CommaPosition = 'before' | 'after';
|
|
10
|
+
export interface FormatOptions {
|
|
11
|
+
tabWidth: number;
|
|
12
|
+
useTabs: boolean;
|
|
13
|
+
keywordCase: KeywordCase;
|
|
14
|
+
identifierCase: IdentifierCase;
|
|
15
|
+
dataTypeCase: DataTypeCase;
|
|
16
|
+
functionCase: FunctionCase;
|
|
17
|
+
indentStyle: IndentStyle;
|
|
18
|
+
logicalOperatorNewline: LogicalOperatorNewline;
|
|
19
|
+
commaPosition: CommaPosition;
|
|
20
|
+
newlineAfterClause: boolean;
|
|
21
|
+
expressionWidth: number;
|
|
22
|
+
linesBetweenQueries: number;
|
|
23
|
+
denseOperators: boolean;
|
|
24
|
+
newlineBeforeSemicolon: boolean;
|
|
25
|
+
params?: ParamItems | string[];
|
|
26
|
+
paramTypes?: ParamTypes;
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormatOptions.js","sourceRoot":"","sources":["../../src/FormatOptions.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { bigquery } from './languages/bigquery/bigquery.formatter.js';
|
|
2
|
+
export { clickhouse } from './languages/clickhouse/clickhouse.formatter.js';
|
|
3
|
+
export { db2 } from './languages/db2/db2.formatter.js';
|
|
4
|
+
export { db2i } from './languages/db2i/db2i.formatter.js';
|
|
5
|
+
export { duckdb } from './languages/duckdb/duckdb.formatter.js';
|
|
6
|
+
export { hive } from './languages/hive/hive.formatter.js';
|
|
7
|
+
export { mariadb } from './languages/mariadb/mariadb.formatter.js';
|
|
8
|
+
export { mysql } from './languages/mysql/mysql.formatter.js';
|
|
9
|
+
export { tidb } from './languages/tidb/tidb.formatter.js';
|
|
10
|
+
export { n1ql } from './languages/n1ql/n1ql.formatter.js';
|
|
11
|
+
export { plsql } from './languages/plsql/plsql.formatter.js';
|
|
12
|
+
export { postgresql } from './languages/postgresql/postgresql.formatter.js';
|
|
13
|
+
export { redshift } from './languages/redshift/redshift.formatter.js';
|
|
14
|
+
export { spark } from './languages/spark/spark.formatter.js';
|
|
15
|
+
export { sqlite } from './languages/sqlite/sqlite.formatter.js';
|
|
16
|
+
export { sql } from './languages/sql/sql.formatter.js';
|
|
17
|
+
export { trino } from './languages/trino/trino.formatter.js';
|
|
18
|
+
export { transactsql } from './languages/transactsql/transactsql.formatter.js';
|
|
19
|
+
export { singlestoredb } from './languages/singlestoredb/singlestoredb.formatter.js';
|
|
20
|
+
export { snowflake } from './languages/snowflake/snowflake.formatter.js';
|