From 49f611ace1dc4ca34d5b45bdeca243045dac90c1 Mon Sep 17 00:00:00 2001 From: Rene Saarsoo Date: Wed, 15 Nov 2023 11:07:35 +0200 Subject: [PATCH] Add mandatory name field to DialectOptions config --- docs/dialect.md | 1 + src/dialect.ts | 1 + src/languages/bigquery/bigquery.formatter.ts | 1 + src/languages/db2/db2.formatter.ts | 1 + src/languages/db2i/db2i.formatter.ts | 1 + src/languages/hive/hive.formatter.ts | 1 + src/languages/mariadb/mariadb.formatter.ts | 1 + src/languages/mysql/mysql.formatter.ts | 1 + src/languages/n1ql/n1ql.formatter.ts | 1 + src/languages/plsql/plsql.formatter.ts | 1 + src/languages/postgresql/postgresql.formatter.ts | 1 + src/languages/redshift/redshift.formatter.ts | 1 + src/languages/singlestoredb/singlestoredb.formatter.ts | 1 + src/languages/snowflake/snowflake.formatter.ts | 1 + src/languages/spark/spark.formatter.ts | 1 + src/languages/sql/sql.formatter.ts | 1 + src/languages/sqlite/sqlite.formatter.ts | 1 + src/languages/transactsql/transactsql.formatter.ts | 1 + src/languages/trino/trino.formatter.ts | 1 + test/sqlFormatter.test.ts | 1 + 20 files changed, 20 insertions(+) diff --git a/docs/dialect.md b/docs/dialect.md index fc973f58f5..781982f571 100644 --- a/docs/dialect.md +++ b/docs/dialect.md @@ -51,6 +51,7 @@ The `dialect` parameter can also be used to specify a custom SQL dialect configu import { formatDialect, DialectOptions } from 'sql-formatter'; const myDialect: DialectOptions { + name: 'my_dialect', tokenizerOptions: { // See source code for examples of tokenizer config options // For example: src/languages/sqlite/sqlite.formatter.ts diff --git a/src/dialect.ts b/src/dialect.ts index ddcafa2455..a833416ecc 100644 --- a/src/dialect.ts +++ b/src/dialect.ts @@ -6,6 +6,7 @@ import Tokenizer from './lexer/Tokenizer.js'; import { TokenizerOptions } from './lexer/TokenizerOptions.js'; export interface DialectOptions { + name: string; tokenizerOptions: TokenizerOptions; formatOptions: DialectFormatOptions; } diff --git a/src/languages/bigquery/bigquery.formatter.ts b/src/languages/bigquery/bigquery.formatter.ts index a390813072..2c21b1b731 100644 --- a/src/languages/bigquery/bigquery.formatter.ts +++ b/src/languages/bigquery/bigquery.formatter.ts @@ -156,6 +156,7 @@ const reservedPhrases = expandPhrases([ // https://cloud.google.com/bigquery/docs/reference/#standard-sql-reference export const bigquery: DialectOptions = { + name: 'bigquery', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/db2/db2.formatter.ts b/src/languages/db2/db2.formatter.ts index 6d3d6caff1..914d5057e4 100644 --- a/src/languages/db2/db2.formatter.ts +++ b/src/languages/db2/db2.formatter.ts @@ -258,6 +258,7 @@ const reservedPhrases = expandPhrases([ ]); export const db2: DialectOptions = { + name: 'db2', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/db2i/db2i.formatter.ts b/src/languages/db2i/db2i.formatter.ts index a9e424917a..262deeb920 100644 --- a/src/languages/db2i/db2i.formatter.ts +++ b/src/languages/db2i/db2i.formatter.ts @@ -154,6 +154,7 @@ const reservedPhrases = expandPhrases([ // https://www.ibm.com/docs/en/i/7.5?topic=reference-sql export const db2i: DialectOptions = { + name: 'db2i', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/hive/hive.formatter.ts b/src/languages/hive/hive.formatter.ts index a7cb419278..9a1c7b358e 100644 --- a/src/languages/hive/hive.formatter.ts +++ b/src/languages/hive/hive.formatter.ts @@ -83,6 +83,7 @@ const reservedPhrases = expandPhrases(['{ROWS | RANGE} BETWEEN']); // https://cwiki.apache.org/confluence/display/Hive/LanguageManual export const hive: DialectOptions = { + name: 'hive', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/mariadb/mariadb.formatter.ts b/src/languages/mariadb/mariadb.formatter.ts index 8d2f263377..6007a2279f 100644 --- a/src/languages/mariadb/mariadb.formatter.ts +++ b/src/languages/mariadb/mariadb.formatter.ts @@ -265,6 +265,7 @@ const reservedPhrases = expandPhrases([ // For reference: https://mariadb.com/kb/en/sql-statements-structure/ export const mariadb: DialectOptions = { + name: 'mariadb', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/mysql/mysql.formatter.ts b/src/languages/mysql/mysql.formatter.ts index a998759819..0e40291c03 100644 --- a/src/languages/mysql/mysql.formatter.ts +++ b/src/languages/mysql/mysql.formatter.ts @@ -232,6 +232,7 @@ const reservedPhrases = expandPhrases([ // https://dev.mysql.com/doc/refman/8.0/en/ export const mysql: DialectOptions = { + name: 'mysql', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/n1ql/n1ql.formatter.ts b/src/languages/n1ql/n1ql.formatter.ts index cde6404700..7d71195a90 100644 --- a/src/languages/n1ql/n1ql.formatter.ts +++ b/src/languages/n1ql/n1ql.formatter.ts @@ -84,6 +84,7 @@ const reservedPhrases = expandPhrases(['{ROWS | RANGE | GROUPS} BETWEEN']); // For reference: http://docs.couchbase.com.s3-website-us-west-1.amazonaws.com/server/6.0/n1ql/n1ql-language-reference/index.html export const n1ql: DialectOptions = { + name: 'n1ql', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/plsql/plsql.formatter.ts b/src/languages/plsql/plsql.formatter.ts index e484145b36..bf94819286 100644 --- a/src/languages/plsql/plsql.formatter.ts +++ b/src/languages/plsql/plsql.formatter.ts @@ -82,6 +82,7 @@ const reservedPhrases = expandPhrases([ ]); export const plsql: DialectOptions = { + name: 'plsql', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/postgresql/postgresql.formatter.ts b/src/languages/postgresql/postgresql.formatter.ts index 700d8b9791..ee5dbf56d9 100644 --- a/src/languages/postgresql/postgresql.formatter.ts +++ b/src/languages/postgresql/postgresql.formatter.ts @@ -253,6 +253,7 @@ const reservedPhrases = expandPhrases([ // https://www.postgresql.org/docs/14/index.html export const postgresql: DialectOptions = { + name: 'postgresql', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/redshift/redshift.formatter.ts b/src/languages/redshift/redshift.formatter.ts index cedf0ce8ff..6c85049796 100644 --- a/src/languages/redshift/redshift.formatter.ts +++ b/src/languages/redshift/redshift.formatter.ts @@ -140,6 +140,7 @@ const reservedPhrases = expandPhrases([ // https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_SQLCommandRef.html export const redshift: DialectOptions = { + name: 'redshift', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/singlestoredb/singlestoredb.formatter.ts b/src/languages/singlestoredb/singlestoredb.formatter.ts index bbbda76276..ad2e873378 100644 --- a/src/languages/singlestoredb/singlestoredb.formatter.ts +++ b/src/languages/singlestoredb/singlestoredb.formatter.ts @@ -233,6 +233,7 @@ const reservedPhrases = expandPhrases([ ]); export const singlestoredb: DialectOptions = { + name: 'singlestoredb', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/snowflake/snowflake.formatter.ts b/src/languages/snowflake/snowflake.formatter.ts index 458c95bb31..5835997f4e 100644 --- a/src/languages/snowflake/snowflake.formatter.ts +++ b/src/languages/snowflake/snowflake.formatter.ts @@ -296,6 +296,7 @@ const reservedPhrases = expandPhrases([ ]); export const snowflake: DialectOptions = { + name: 'snowflake', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/spark/spark.formatter.ts b/src/languages/spark/spark.formatter.ts index e68ad94817..05672bac57 100644 --- a/src/languages/spark/spark.formatter.ts +++ b/src/languages/spark/spark.formatter.ts @@ -119,6 +119,7 @@ const reservedPhrases = expandPhrases([ // http://spark.apache.org/docs/latest/sql-programming-guide.html export const spark: DialectOptions = { + name: 'spark', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/sql/sql.formatter.ts b/src/languages/sql/sql.formatter.ts index 5b4ba2fd84..8baa4c9014 100644 --- a/src/languages/sql/sql.formatter.ts +++ b/src/languages/sql/sql.formatter.ts @@ -74,6 +74,7 @@ const reservedPhrases = expandPhrases([ ]); export const sql: DialectOptions = { + name: 'sql', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/sqlite/sqlite.formatter.ts b/src/languages/sqlite/sqlite.formatter.ts index e282d46c66..3bcf75beb2 100644 --- a/src/languages/sqlite/sqlite.formatter.ts +++ b/src/languages/sqlite/sqlite.formatter.ts @@ -65,6 +65,7 @@ const reservedPhrases = expandPhrases([ ]); export const sqlite: DialectOptions = { + name: 'sqlite', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/transactsql/transactsql.formatter.ts b/src/languages/transactsql/transactsql.formatter.ts index db9aceb362..1cbe5c99f7 100644 --- a/src/languages/transactsql/transactsql.formatter.ts +++ b/src/languages/transactsql/transactsql.formatter.ts @@ -222,6 +222,7 @@ const reservedPhrases = expandPhrases([ // https://docs.microsoft.com/en-us/sql/t-sql/language-reference?view=sql-server-ver15 export const transactsql: DialectOptions = { + name: 'transactsql', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/src/languages/trino/trino.formatter.ts b/src/languages/trino/trino.formatter.ts index 78532d5223..76778d12fa 100644 --- a/src/languages/trino/trino.formatter.ts +++ b/src/languages/trino/trino.formatter.ts @@ -125,6 +125,7 @@ const reservedPhrases = expandPhrases([ ]); export const trino: DialectOptions = { + name: 'trino', tokenizerOptions: { reservedSelect, reservedClauses: [...reservedClauses, ...onelineClauses], diff --git a/test/sqlFormatter.test.ts b/test/sqlFormatter.test.ts index d63bb03b79..55beb8c1ce 100644 --- a/test/sqlFormatter.test.ts +++ b/test/sqlFormatter.test.ts @@ -79,6 +79,7 @@ describe('sqlFormatter', () => { it('allows use of regex-based custom string type', () => { // Extend SQLite dialect with additional string type const sqliteWithTemplates: DialectOptions = { + name: 'myCustomDialect', tokenizerOptions: { ...sqlite.tokenizerOptions, stringTypes: [...sqlite.tokenizerOptions.stringTypes, { regex: String.raw`\{\{.*?\}\}` }],