Skip to content

Commit c85c935

Browse files
authored
Avoid referencing allDialects outside of function calls (#517)
2 parents d071f71 + 2edcd87 commit c85c935

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

src/sqlFormatter.ts

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,28 @@ import { createDialect, DialectOptions } from './dialect.js';
55
import Formatter from './formatter/Formatter.js';
66
import { ConfigError, validateConfig } from './validateConfig.js';
77

8-
const formatters = {
9-
...allDialects,
10-
tsql: allDialects.transactsql, // alias for transactsql
8+
const dialectNameMap: Record<string, keyof typeof allDialects> = {
9+
bigquery: 'bigquery',
10+
db2: 'db2',
11+
hive: 'hive',
12+
mariadb: 'mariadb',
13+
mysql: 'mysql',
14+
n1ql: 'n1ql',
15+
plsql: 'plsql',
16+
postgresql: 'postgresql',
17+
redshift: 'redshift',
18+
spark: 'spark',
19+
sqlite: 'sqlite',
20+
sql: 'sql',
21+
trino: 'trino',
22+
transactsql: 'transactsql',
23+
tsql: 'transactsql', // alias for transactsq
24+
singlestoredb: 'singlestoredb',
25+
snowflake: 'snowflake',
1126
};
12-
export type SqlLanguage = keyof typeof formatters;
13-
export const supportedDialects = Object.keys(formatters);
27+
28+
export const supportedDialects = Object.keys(dialectNameMap);
29+
export type SqlLanguage = keyof typeof dialectNameMap;
1430

1531
export type FormatOptionsWithLanguage = Partial<FormatOptions> & {
1632
language?: SqlLanguage;
@@ -46,9 +62,11 @@ export const format = (query: string, cfg: FormatOptionsWithLanguage = {}): stri
4662
throw new ConfigError(`Unsupported SQL dialect: ${cfg.language}`);
4763
}
4864

65+
const canonicalDialectName = dialectNameMap[cfg.language || 'sql'];
66+
4967
return formatDialect(query, {
5068
...cfg,
51-
dialect: formatters[cfg.language || 'sql'],
69+
dialect: allDialects[canonicalDialectName],
5270
});
5371
};
5472

0 commit comments

Comments
 (0)