Skip to content

Commit

Permalink
feat: upgrade to sql-formatter v15, add dataTypeCase and `keywordCa…
Browse files Browse the repository at this point in the history
…se` options (#328)
  • Loading branch information
karlhorky authored Dec 9, 2023
1 parent 1272f18 commit ea85a65
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 16 deletions.
5 changes: 5 additions & 0 deletions .changeset/lighter-toy-top.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"prettier-plugin-sql": minor
---

feat: upgrade to sql-formatter v15, add `dataTypeCase` and `keywordCase` options
2 changes: 2 additions & 0 deletions packages/sql/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,8 @@ interface SqlOptions {
| 'trino'
// default `sql`
keywordCase: 'preserve' | 'upper' | 'lower' // default `preserve`
dataTypeCase: 'preserve' | 'upper' | 'lower' // default `preserve`
functionCase: 'preserve' | 'upper' | 'lower' // default `preserve`
identifierCase: 'preserve' | 'upper' | 'lower' // default `preserve`, experimental
indentStyle: 'standard' | 'tabularLeft' | 'tabularRight' // default `standard`
logicalOperatorNewline: 'before' | 'after' // default `before`
Expand Down
2 changes: 1 addition & 1 deletion packages/sql/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"dependencies": {
"jsox": "^1.2.118",
"node-sql-parser": "^4.11.0",
"sql-formatter": "^14.0.0",
"sql-formatter": "^15.0.0",
"tslib": "^2.6.2"
},
"publishConfig": {
Expand Down
58 changes: 51 additions & 7 deletions packages/sql/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -206,19 +206,63 @@ const SqlPlugin: Plugin<AST | string> = {
type: 'choice',
default: 'preserve',
description:
'Converts reserved keywords and builtin function names to upper or lowercase for `sql-formatter`',
'Converts reserved keywords to upper- or lowercase for `sql-formatter`',
choices: [
{
value: 'preserve',
description: 'preserves the original case',
description: 'preserves the original case of reserved keywords',
},
{
value: 'upper',
description: 'converts to uppercase',
description: 'converts reserved keywords to uppercase',
},
{
value: 'lower',
description: 'converts to lowercase',
description: 'converts reserved keywords to lowercase',
},
],
},
dataTypeCase: {
// since: '0.18.0',
category: 'Output',
type: 'choice',
default: 'preserve',
description:
'Converts data types to upper- or lowercase for `sql-formatter`',
choices: [
{
value: 'preserve',
description: 'preserves the original case of data types',
},
{
value: 'upper',
description: 'converts data types to uppercase',
},
{
value: 'lower',
description: 'converts data types to lowercase',
},
],
},
functionCase: {
// since: '0.18.0',
category: 'Output',
type: 'choice',
default: 'preserve',
description:
'Converts functions to upper- or lowercase for `sql-formatter`',
choices: [
{
value: 'preserve',
description: 'preserves the original case of functions',
},
{
value: 'upper',
description: 'converts functions to uppercase',
},
{
value: 'lower',
description: 'converts functions to lowercase',
},
],
},
Expand All @@ -232,15 +276,15 @@ const SqlPlugin: Plugin<AST | string> = {
choices: [
{
value: 'preserve',
description: 'preserves the original case',
description: 'preserves the original case of identifiers',
},
{
value: 'upper',
description: 'converts to uppercase',
description: 'converts identifiers to uppercase',
},
{
value: 'lower',
description: 'converts to lowercase',
description: 'converts identifiers to lowercase',
},
],
},
Expand Down
6 changes: 2 additions & 4 deletions packages/sql/test/__snapshots__/fixtures.spec.ts.snap
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`parser and printer > should format all fixtures > 144.sql 1`] = `
"CREATE TABLE
\\"test\\" (\\"id\\" uuid NOT NULL)
"CREATE TABLE \\"test\\" (\\"id\\" uuid NOT NULL)
WITH
(oids = false);
"
`;

exports[`parser and printer > should format all fixtures > 233.sql 1`] = `
"CREATE TABLE
\\"test\\" (\\"id\\" uuid NOT NULL)
"CREATE TABLE \\"test\\" (\\"id\\" uuid NOT NULL)
WITH
(oids = false);
"
Expand Down
8 changes: 4 additions & 4 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit ea85a65

Please sign in to comment.