rawsql-ts 0.11.40-beta → 0.11.42-beta
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/README.md +8 -10
- package/dist/esm/index.min.js +9 -7
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/models/BinarySelectQuery.d.ts +11 -1
- package/dist/esm/src/models/BinarySelectQuery.js +11 -1
- package/dist/esm/src/models/BinarySelectQuery.js.map +1 -1
- package/dist/esm/src/models/SelectQuery.d.ts +29 -0
- package/dist/esm/src/models/SelectQuery.js.map +1 -1
- package/dist/esm/src/models/SimpleSelectQuery.d.ts +12 -1
- package/dist/esm/src/models/SimpleSelectQuery.js +12 -1
- package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -1
- package/dist/esm/src/parsers/KeywordParser.js +4 -2
- package/dist/esm/src/parsers/KeywordParser.js.map +1 -1
- package/dist/esm/src/parsers/ParenExpressionParser.js +59 -13
- package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +1 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlTokenizer.js +26 -13
- package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/esm/src/parsers/UnaryExpressionParser.js +10 -1
- package/dist/esm/src/parsers/UnaryExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/ValuesQueryParser.d.ts +2 -0
- package/dist/esm/src/parsers/ValuesQueryParser.js +83 -17
- package/dist/esm/src/parsers/ValuesQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/WhereClauseParser.js +11 -1
- package/dist/esm/src/parsers/WhereClauseParser.js.map +1 -1
- package/dist/esm/src/transformers/AliasRenamer.d.ts +1 -0
- package/dist/esm/src/transformers/AliasRenamer.js +1 -0
- package/dist/esm/src/transformers/AliasRenamer.js.map +1 -1
- package/dist/esm/src/transformers/CTERenamer.d.ts +4 -2
- package/dist/esm/src/transformers/CTERenamer.js +4 -2
- package/dist/esm/src/transformers/CTERenamer.js.map +1 -1
- package/dist/esm/src/transformers/DynamicQueryBuilder.d.ts +19 -55
- package/dist/esm/src/transformers/DynamicQueryBuilder.js +7 -55
- package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/esm/src/transformers/FormatOptionResolver.d.ts +12 -0
- package/dist/esm/src/transformers/FormatOptionResolver.js +62 -0
- package/dist/esm/src/transformers/FormatOptionResolver.js.map +1 -0
- package/dist/esm/src/transformers/LinePrinter.d.ts +6 -4
- package/dist/esm/src/transformers/LinePrinter.js +2 -2
- package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
- package/dist/esm/src/transformers/SchemaCollector.d.ts +9 -1
- package/dist/esm/src/transformers/SchemaCollector.js +9 -1
- package/dist/esm/src/transformers/SchemaCollector.js.map +1 -1
- package/dist/esm/src/transformers/SelectableColumnCollector.d.ts +1 -0
- package/dist/esm/src/transformers/SelectableColumnCollector.js +1 -0
- package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/esm/src/transformers/SmartRenamer.d.ts +10 -30
- package/dist/esm/src/transformers/SmartRenamer.js +10 -30
- package/dist/esm/src/transformers/SmartRenamer.js.map +1 -1
- package/dist/esm/src/transformers/SqlFormatter.d.ts +40 -13
- package/dist/esm/src/transformers/SqlFormatter.js +16 -4
- package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/esm/src/transformers/SqlIdentifierRenamer.d.ts +9 -2
- package/dist/esm/src/transformers/SqlIdentifierRenamer.js +9 -2
- package/dist/esm/src/transformers/SqlIdentifierRenamer.js.map +1 -1
- package/dist/esm/src/transformers/SqlPrinter.d.ts +25 -0
- package/dist/esm/src/transformers/SqlPrinter.js +153 -25
- package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/esm/src/transformers/TableColumnResolver.d.ts +8 -0
- package/dist/esm/src/utils/SchemaManager.d.ts +20 -3
- package/dist/esm/src/utils/SchemaManager.js +20 -3
- package/dist/esm/src/utils/SchemaManager.js.map +1 -1
- package/dist/esm/src/utils/SqlSchemaValidator.d.ts +13 -0
- package/dist/esm/src/utils/SqlSchemaValidator.js +13 -0
- package/dist/esm/src/utils/SqlSchemaValidator.js.map +1 -1
- package/dist/esm/src/utils/stringUtils.d.ts +1 -1
- package/dist/esm/src/utils/stringUtils.js +8 -2
- package/dist/esm/src/utils/stringUtils.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +9 -7
- package/dist/index.min.js.map +4 -4
- package/dist/src/models/BinarySelectQuery.d.ts +11 -1
- package/dist/src/models/BinarySelectQuery.js +11 -1
- package/dist/src/models/BinarySelectQuery.js.map +1 -1
- package/dist/src/models/SelectQuery.d.ts +29 -0
- package/dist/src/models/SelectQuery.js.map +1 -1
- package/dist/src/models/SimpleSelectQuery.d.ts +12 -1
- package/dist/src/models/SimpleSelectQuery.js +12 -1
- package/dist/src/models/SimpleSelectQuery.js.map +1 -1
- package/dist/src/parsers/KeywordParser.js +4 -2
- package/dist/src/parsers/KeywordParser.js.map +1 -1
- package/dist/src/parsers/ParenExpressionParser.js +59 -13
- package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
- package/dist/src/parsers/SqlPrintTokenParser.js +1 -0
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/parsers/SqlTokenizer.js +26 -13
- package/dist/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/src/parsers/UnaryExpressionParser.js +10 -1
- package/dist/src/parsers/UnaryExpressionParser.js.map +1 -1
- package/dist/src/parsers/ValuesQueryParser.d.ts +2 -0
- package/dist/src/parsers/ValuesQueryParser.js +83 -17
- package/dist/src/parsers/ValuesQueryParser.js.map +1 -1
- package/dist/src/parsers/WhereClauseParser.js +11 -1
- package/dist/src/parsers/WhereClauseParser.js.map +1 -1
- package/dist/src/transformers/AliasRenamer.d.ts +1 -0
- package/dist/src/transformers/AliasRenamer.js +1 -0
- package/dist/src/transformers/AliasRenamer.js.map +1 -1
- package/dist/src/transformers/CTERenamer.d.ts +4 -2
- package/dist/src/transformers/CTERenamer.js +4 -2
- package/dist/src/transformers/CTERenamer.js.map +1 -1
- package/dist/src/transformers/DynamicQueryBuilder.d.ts +19 -55
- package/dist/src/transformers/DynamicQueryBuilder.js +7 -55
- package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/src/transformers/FormatOptionResolver.d.ts +12 -0
- package/dist/src/transformers/FormatOptionResolver.js +67 -0
- package/dist/src/transformers/FormatOptionResolver.js.map +1 -0
- package/dist/src/transformers/LinePrinter.d.ts +6 -4
- package/dist/src/transformers/LinePrinter.js +2 -2
- package/dist/src/transformers/LinePrinter.js.map +1 -1
- package/dist/src/transformers/SchemaCollector.d.ts +9 -1
- package/dist/src/transformers/SchemaCollector.js +9 -1
- package/dist/src/transformers/SchemaCollector.js.map +1 -1
- package/dist/src/transformers/SelectableColumnCollector.d.ts +1 -0
- package/dist/src/transformers/SelectableColumnCollector.js +1 -0
- package/dist/src/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/src/transformers/SmartRenamer.d.ts +10 -30
- package/dist/src/transformers/SmartRenamer.js +10 -30
- package/dist/src/transformers/SmartRenamer.js.map +1 -1
- package/dist/src/transformers/SqlFormatter.d.ts +40 -13
- package/dist/src/transformers/SqlFormatter.js +17 -4
- package/dist/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/src/transformers/SqlIdentifierRenamer.d.ts +9 -2
- package/dist/src/transformers/SqlIdentifierRenamer.js +9 -2
- package/dist/src/transformers/SqlIdentifierRenamer.js.map +1 -1
- package/dist/src/transformers/SqlPrinter.d.ts +25 -0
- package/dist/src/transformers/SqlPrinter.js +153 -25
- package/dist/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/src/transformers/TableColumnResolver.d.ts +8 -0
- package/dist/src/utils/SchemaManager.d.ts +20 -3
- package/dist/src/utils/SchemaManager.js +20 -3
- package/dist/src/utils/SchemaManager.js.map +1 -1
- package/dist/src/utils/SqlSchemaValidator.d.ts +13 -0
- package/dist/src/utils/SqlSchemaValidator.js +13 -0
- package/dist/src/utils/SqlSchemaValidator.js.map +1 -1
- package/dist/src/utils/stringUtils.d.ts +1 -1
- package/dist/src/utils/stringUtils.js +8 -2
- package/dist/src/utils/stringUtils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { CommaBreakStyle, AndBreakStyle } from './SqlPrinter';
|
|
1
|
+
import { CommaBreakStyle, AndBreakStyle, OrBreakStyle } from './SqlPrinter';
|
|
2
2
|
import { IndentCharOption, NewlineOption } from './LinePrinter';
|
|
3
|
+
import { IdentifierEscapeOption } from './FormatOptionResolver';
|
|
3
4
|
import { SqlComponent } from '../models/SqlComponent';
|
|
4
5
|
export declare const VALID_PRESETS: readonly ["mysql", "postgres", "sqlserver", "sqlite"];
|
|
5
6
|
export type PresetName = (typeof VALID_PRESETS)[number];
|
|
@@ -17,15 +18,22 @@ export type WithClauseStyle = 'standard' | 'cte-oneline' | 'full-oneline';
|
|
|
17
18
|
*/
|
|
18
19
|
export type CommentStyle = 'block' | 'smart';
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
+
* Common formatting knobs shared by SqlFormatter and SqlPrinter.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const formatter = new SqlFormatter({ keywordCase: 'upper', indentSize: 4 });
|
|
26
|
+
* const { formattedSql } = formatter.format(SelectQueryParser.parse('select * from users'));
|
|
27
|
+
* ```
|
|
28
|
+
* Related tests: packages/core/tests/transformers/SqlFormatter.case.test.ts
|
|
21
29
|
* @public
|
|
22
30
|
*/
|
|
23
31
|
export interface BaseFormattingOptions {
|
|
24
32
|
/** Number of spaces for indentation */
|
|
25
33
|
indentSize?: number;
|
|
26
|
-
/** Character to use for indentation ('space' or
|
|
34
|
+
/** Character to use for indentation (logical 'space'/'tab' or literal control character) */
|
|
27
35
|
indentChar?: IndentCharOption;
|
|
28
|
-
/** Newline character style */
|
|
36
|
+
/** Newline character style (logical 'lf'/'crlf'/'cr' or literal newline string) */
|
|
29
37
|
newline?: NewlineOption;
|
|
30
38
|
/** Case transformation for SQL keywords */
|
|
31
39
|
keywordCase?: 'none' | 'upper' | 'lower';
|
|
@@ -33,8 +41,12 @@ export interface BaseFormattingOptions {
|
|
|
33
41
|
commaBreak?: CommaBreakStyle;
|
|
34
42
|
/** Style for comma line breaks inside WITH clause definitions */
|
|
35
43
|
cteCommaBreak?: CommaBreakStyle;
|
|
36
|
-
/** Style for
|
|
44
|
+
/** Style for comma line breaks inside VALUES clauses */
|
|
45
|
+
valuesCommaBreak?: CommaBreakStyle;
|
|
46
|
+
/** Style for AND line breaks */
|
|
37
47
|
andBreak?: AndBreakStyle;
|
|
48
|
+
/** Style for OR line breaks */
|
|
49
|
+
orBreak?: OrBreakStyle;
|
|
38
50
|
/** Whether to export comments in formatted output */
|
|
39
51
|
exportComment?: boolean;
|
|
40
52
|
/** Whether to only export comments from clause-level keywords */
|
|
@@ -55,19 +67,25 @@ export interface BaseFormattingOptions {
|
|
|
55
67
|
caseOneLine?: boolean;
|
|
56
68
|
/** Keep subqueries (inline queries) on one line regardless of formatting settings */
|
|
57
69
|
subqueryOneLine?: boolean;
|
|
70
|
+
/** Indent nested parentheses when boolean groups contain additional parentheses */
|
|
71
|
+
indentNestedParentheses?: boolean;
|
|
58
72
|
}
|
|
59
73
|
/**
|
|
60
|
-
*
|
|
74
|
+
* High level configuration accepted by SqlFormatter.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const formatter = new SqlFormatter({ preset: 'postgres', commentStyle: 'smart' });
|
|
79
|
+
* const { formattedSql } = formatter.format(SelectQueryParser.parse('select * from users where active = true'));
|
|
80
|
+
* ```
|
|
81
|
+
* Related tests: packages/core/tests/transformers/CommentStyle.comprehensive.test.ts
|
|
61
82
|
* @public
|
|
62
83
|
*/
|
|
63
84
|
export interface SqlFormatterOptions extends BaseFormattingOptions {
|
|
64
85
|
/** Database preset for formatting style ('mysql', 'postgres', 'sqlserver', 'sqlite') */
|
|
65
86
|
preset?: PresetName;
|
|
66
|
-
/**
|
|
67
|
-
identifierEscape?:
|
|
68
|
-
start: string;
|
|
69
|
-
end: string;
|
|
70
|
-
};
|
|
87
|
+
/** Identifier escape style (logical name like 'quote' or explicit delimiters) */
|
|
88
|
+
identifierEscape?: IdentifierEscapeOption;
|
|
71
89
|
/** Parameter symbol configuration for SQL parameters */
|
|
72
90
|
parameterSymbol?: string | {
|
|
73
91
|
start: string;
|
|
@@ -77,12 +95,21 @@ export interface SqlFormatterOptions extends BaseFormattingOptions {
|
|
|
77
95
|
parameterStyle?: 'anonymous' | 'indexed' | 'named';
|
|
78
96
|
}
|
|
79
97
|
/**
|
|
80
|
-
*
|
|
98
|
+
* High level facade that parses a SqlComponent, applies formatting rules, and prints the final SQL text.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const formatter = new SqlFormatter({ keywordCase: 'lower', withClauseStyle: 'cte-oneline' });
|
|
103
|
+
* const query = SelectQueryParser.parse('WITH cte AS (SELECT id FROM users) SELECT * FROM cte');
|
|
104
|
+
* const { formattedSql } = formatter.format(query);
|
|
105
|
+
* ```
|
|
106
|
+
* Related tests: packages/core/tests/transformers/SqlFormatter.case.test.ts
|
|
81
107
|
*/
|
|
82
108
|
export declare class SqlFormatter {
|
|
83
109
|
private parser;
|
|
84
110
|
private printer;
|
|
85
|
-
constructor(options?: SqlFormatterOptions);
|
|
111
|
+
constructor(options?: SqlFormatterOptions);
|
|
112
|
+
/**
|
|
86
113
|
* Formats a SQL query string with the given parameters.
|
|
87
114
|
* @param sqlText The SQL query string to format.
|
|
88
115
|
* @param parameters A dictionary of parameters to replace in the query.
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { SqlPrintTokenParser, PRESETS } from '../parsers/SqlPrintTokenParser';
|
|
2
2
|
import { SqlPrinter } from './SqlPrinter';
|
|
3
|
+
import { resolveIdentifierEscapeOption } from './FormatOptionResolver';
|
|
3
4
|
// Define valid preset names as a union type
|
|
4
5
|
export const VALID_PRESETS = ['mysql', 'postgres', 'sqlserver', 'sqlite'];
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
+
* High level facade that parses a SqlComponent, applies formatting rules, and prints the final SQL text.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const formatter = new SqlFormatter({ keywordCase: 'lower', withClauseStyle: 'cte-oneline' });
|
|
12
|
+
* const query = SelectQueryParser.parse('WITH cte AS (SELECT id FROM users) SELECT * FROM cte');
|
|
13
|
+
* const { formattedSql } = formatter.format(query);
|
|
14
|
+
* ```
|
|
15
|
+
* Related tests: packages/core/tests/transformers/SqlFormatter.case.test.ts
|
|
7
16
|
*/
|
|
8
17
|
export class SqlFormatter {
|
|
9
18
|
constructor(options = {}) {
|
|
@@ -12,10 +21,13 @@ export class SqlFormatter {
|
|
|
12
21
|
if (options.preset && !presetConfig) {
|
|
13
22
|
throw new Error(`Invalid preset: ${options.preset}`); // Throw error for invalid preset
|
|
14
23
|
}
|
|
15
|
-
|
|
24
|
+
// Normalize identifier escape names into actual delimiter pairs before configuring the parser.
|
|
25
|
+
const resolvedIdentifierEscape = resolveIdentifierEscapeOption((_a = options.identifierEscape) !== null && _a !== void 0 ? _a : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.identifierEscape);
|
|
26
|
+
const parserOptions = Object.assign(Object.assign({}, presetConfig), { identifierEscape: resolvedIdentifierEscape !== null && resolvedIdentifierEscape !== void 0 ? resolvedIdentifierEscape : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.identifierEscape, parameterSymbol: (_b = options.parameterSymbol) !== null && _b !== void 0 ? _b : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.parameterSymbol, parameterStyle: (_c = options.parameterStyle) !== null && _c !== void 0 ? _c : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.parameterStyle });
|
|
16
27
|
this.parser = new SqlPrintTokenParser(Object.assign(Object.assign({}, parserOptions), { commentStyle: options.commentStyle }));
|
|
17
|
-
this.printer = new SqlPrinter(Object.assign(Object.assign({}, options), { parenthesesOneLine: options.parenthesesOneLine, betweenOneLine: options.betweenOneLine, valuesOneLine: options.valuesOneLine, joinOneLine: options.joinOneLine, caseOneLine: options.caseOneLine, subqueryOneLine: options.subqueryOneLine }));
|
|
18
|
-
}
|
|
28
|
+
this.printer = new SqlPrinter(Object.assign(Object.assign({}, options), { parenthesesOneLine: options.parenthesesOneLine, betweenOneLine: options.betweenOneLine, valuesOneLine: options.valuesOneLine, joinOneLine: options.joinOneLine, caseOneLine: options.caseOneLine, subqueryOneLine: options.subqueryOneLine, indentNestedParentheses: options.indentNestedParentheses }));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
19
31
|
* Formats a SQL query string with the given parameters.
|
|
20
32
|
* @param sqlText The SQL query string to format.
|
|
21
33
|
* @param parameters A dictionary of parameters to replace in the query.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlFormatter.js","sourceRoot":"","sources":["../../../../src/transformers/SqlFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAC/F,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"SqlFormatter.js","sourceRoot":"","sources":["../../../../src/transformers/SqlFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAgD,MAAM,cAAc,CAAC;AAExF,OAAO,EAA0B,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAI/F,4CAA4C;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AA8FnF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,YAAY;IAIrB,YAAY,UAA+B,EAAE;;QAEzC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE1E,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,iCAAiC;QAC3F,CAAC;QAED,+FAA+F;QAC/F,MAAM,wBAAwB,GAAG,6BAA6B,CAAC,MAAA,OAAO,CAAC,gBAAgB,mCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,gBAAgB,CAAC,CAAC;QAE3H,MAAM,aAAa,mCACZ,YAAY,KACf,gBAAgB,EAAE,wBAAwB,aAAxB,wBAAwB,cAAxB,wBAAwB,GAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,gBAAgB,EAC5E,eAAe,EAAE,MAAA,OAAO,CAAC,eAAe,mCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe,EACzE,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,cAAc,GACzE,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAmB,iCAC9B,aAAa,KAChB,YAAY,EAAE,OAAO,CAAC,YAAY,IACpC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,iCACtB,OAAO,KACV,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAC9C,cAAc,EAAE,OAAO,CAAC,cAAc,EACtC,aAAa,EAAE,OAAO,CAAC,aAAa,EACpC,WAAW,EAAE,OAAO,CAAC,WAAW,EAChC,WAAW,EAAE,OAAO,CAAC,WAAW,EAChC,eAAe,EAAE,OAAO,CAAC,eAAe,EACxC,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,IAC1D,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAiB;QACpB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;CACJ"}
|
|
@@ -23,8 +23,15 @@ export interface Renameability {
|
|
|
23
23
|
reason?: string;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
* Handles safe renaming of SQL identifiers within SQL strings
|
|
27
|
-
*
|
|
26
|
+
* Handles safe renaming of SQL identifiers within plain SQL strings.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const renamer = new SqlIdentifierRenamer();
|
|
31
|
+
* const sql = 'SELECT u.id FROM users u';
|
|
32
|
+
* const result = renamer.renameIdentifier(sql, 'u', 'users_alias');
|
|
33
|
+
* ```
|
|
34
|
+
* Related tests: packages/core/tests/transformers/SqlIdentifierRenamer.test.ts
|
|
28
35
|
*/
|
|
29
36
|
export declare class SqlIdentifierRenamer {
|
|
30
37
|
/**
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Handles safe renaming of SQL identifiers within SQL strings
|
|
3
|
-
*
|
|
2
|
+
* Handles safe renaming of SQL identifiers within plain SQL strings.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* const renamer = new SqlIdentifierRenamer();
|
|
7
|
+
* const sql = 'SELECT u.id FROM users u';
|
|
8
|
+
* const result = renamer.renameIdentifier(sql, 'u', 'users_alias');
|
|
9
|
+
* ```
|
|
10
|
+
* Related tests: packages/core/tests/transformers/SqlIdentifierRenamer.test.ts
|
|
4
11
|
*/
|
|
5
12
|
export class SqlIdentifierRenamer {
|
|
6
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlIdentifierRenamer.js","sourceRoot":"","sources":["../../../../src/transformers/SqlIdentifierRenamer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SqlIdentifierRenamer.js","sourceRoot":"","sources":["../../../../src/transformers/SqlIdentifierRenamer.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,13 @@ export type CommaBreakStyle = 'none' | 'before' | 'after';
|
|
|
15
15
|
* - 'after': Line break after AND
|
|
16
16
|
*/
|
|
17
17
|
export type AndBreakStyle = 'none' | 'before' | 'after';
|
|
18
|
+
/**
|
|
19
|
+
* OrBreakStyle determines how OR operators are placed in formatted SQL output.
|
|
20
|
+
* - 'none': No line break for OR
|
|
21
|
+
* - 'before': Line break before OR
|
|
22
|
+
* - 'after': Line break after OR
|
|
23
|
+
*/
|
|
24
|
+
export type OrBreakStyle = 'none' | 'before' | 'after';
|
|
18
25
|
/**
|
|
19
26
|
* Options for configuring SqlPrinter formatting behavior
|
|
20
27
|
*/
|
|
@@ -53,8 +60,12 @@ export declare class SqlPrinter {
|
|
|
53
60
|
commaBreak: CommaBreakStyle;
|
|
54
61
|
/** WITH clause comma break style (defaults to commaBreak) */
|
|
55
62
|
cteCommaBreak: CommaBreakStyle;
|
|
63
|
+
/** VALUES clause comma break style (defaults to commaBreak) */
|
|
64
|
+
valuesCommaBreak: CommaBreakStyle;
|
|
56
65
|
/** AND break style: 'none', 'before', or 'after' */
|
|
57
66
|
andBreak: AndBreakStyle;
|
|
67
|
+
/** OR break style: 'none', 'before', or 'after' */
|
|
68
|
+
orBreak: OrBreakStyle;
|
|
58
69
|
/** Keyword case style: 'none', 'upper' | 'lower' */
|
|
59
70
|
keywordCase: 'none' | 'upper' | 'lower';
|
|
60
71
|
/** Whether to export comments in the output (default: false for compatibility) */
|
|
@@ -81,6 +92,8 @@ export declare class SqlPrinter {
|
|
|
81
92
|
private caseOneLine;
|
|
82
93
|
/** Whether to keep subqueries on one line */
|
|
83
94
|
private subqueryOneLine;
|
|
95
|
+
/** Whether to indent nested parentheses when boolean groups get expanded */
|
|
96
|
+
private indentNestedParentheses;
|
|
84
97
|
/**
|
|
85
98
|
* @param options Optional style settings for pretty printing
|
|
86
99
|
*/
|
|
@@ -107,6 +120,18 @@ export declare class SqlPrinter {
|
|
|
107
120
|
private handleKeywordToken;
|
|
108
121
|
private handleCommaToken;
|
|
109
122
|
private handleAndOperatorToken;
|
|
123
|
+
private handleParenthesisToken;
|
|
124
|
+
private handleOrOperatorToken;
|
|
125
|
+
/**
|
|
126
|
+
* Decide whether a parentheses group should increase indentation when inside nested structures.
|
|
127
|
+
* We only expand groups that contain further parentheses so simple comparisons stay compact.
|
|
128
|
+
*/
|
|
129
|
+
private shouldIndentNestedParentheses;
|
|
130
|
+
/**
|
|
131
|
+
* Recursively inspect descendants to find additional parentheses groups.
|
|
132
|
+
* Helps detect complex boolean groups like ((A) OR (B) OR (C)).
|
|
133
|
+
*/
|
|
134
|
+
private containsParenExpression;
|
|
110
135
|
private handleJoinClauseToken;
|
|
111
136
|
/**
|
|
112
137
|
* Handles space tokens with context-aware filtering.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SqlPrintTokenType, SqlPrintTokenContainerType } from "../models/SqlPrintToken";
|
|
2
2
|
import { LinePrinter } from "./LinePrinter";
|
|
3
|
+
import { resolveIndentCharOption, resolveNewlineOption } from "./FormatOptionResolver";
|
|
3
4
|
/**
|
|
4
5
|
* SqlPrinter formats a SqlPrintToken tree into a SQL string with flexible style options.
|
|
5
6
|
*
|
|
@@ -25,17 +26,22 @@ export class SqlPrinter {
|
|
|
25
26
|
* @param options Optional style settings for pretty printing
|
|
26
27
|
*/
|
|
27
28
|
constructor(options) {
|
|
28
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
29
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
29
30
|
/** Track whether we are currently inside a WITH clause for full-oneline formatting */
|
|
30
31
|
this.insideWithClause = false;
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
// Resolve logical options to their control character representations before applying defaults.
|
|
33
|
+
const resolvedIndentChar = resolveIndentCharOption(options === null || options === void 0 ? void 0 : options.indentChar);
|
|
34
|
+
const resolvedNewline = resolveNewlineOption(options === null || options === void 0 ? void 0 : options.newline);
|
|
35
|
+
this.indentChar = resolvedIndentChar !== null && resolvedIndentChar !== void 0 ? resolvedIndentChar : '';
|
|
36
|
+
this.indentSize = (_a = options === null || options === void 0 ? void 0 : options.indentSize) !== null && _a !== void 0 ? _a : 0;
|
|
33
37
|
// The default newline character is set to a blank space (' ') to enable one-liner formatting.
|
|
34
38
|
// This is intentional and differs from the LinePrinter default of '\r\n'.
|
|
35
|
-
this.newline =
|
|
36
|
-
this.commaBreak = (
|
|
37
|
-
this.cteCommaBreak = (
|
|
38
|
-
this.
|
|
39
|
+
this.newline = resolvedNewline !== null && resolvedNewline !== void 0 ? resolvedNewline : ' ';
|
|
40
|
+
this.commaBreak = (_b = options === null || options === void 0 ? void 0 : options.commaBreak) !== null && _b !== void 0 ? _b : 'none';
|
|
41
|
+
this.cteCommaBreak = (_c = options === null || options === void 0 ? void 0 : options.cteCommaBreak) !== null && _c !== void 0 ? _c : this.commaBreak;
|
|
42
|
+
this.valuesCommaBreak = (_d = options === null || options === void 0 ? void 0 : options.valuesCommaBreak) !== null && _d !== void 0 ? _d : this.commaBreak;
|
|
43
|
+
this.andBreak = (_e = options === null || options === void 0 ? void 0 : options.andBreak) !== null && _e !== void 0 ? _e : 'none';
|
|
44
|
+
this.orBreak = (_f = options === null || options === void 0 ? void 0 : options.orBreak) !== null && _f !== void 0 ? _f : 'none';
|
|
39
45
|
this.keywordCase = (_g = options === null || options === void 0 ? void 0 : options.keywordCase) !== null && _g !== void 0 ? _g : 'none';
|
|
40
46
|
this.exportComment = (_h = options === null || options === void 0 ? void 0 : options.exportComment) !== null && _h !== void 0 ? _h : false;
|
|
41
47
|
this.strictCommentPlacement = (_j = options === null || options === void 0 ? void 0 : options.strictCommentPlacement) !== null && _j !== void 0 ? _j : false;
|
|
@@ -47,9 +53,10 @@ export class SqlPrinter {
|
|
|
47
53
|
this.joinOneLine = (_q = options === null || options === void 0 ? void 0 : options.joinOneLine) !== null && _q !== void 0 ? _q : false;
|
|
48
54
|
this.caseOneLine = (_r = options === null || options === void 0 ? void 0 : options.caseOneLine) !== null && _r !== void 0 ? _r : false;
|
|
49
55
|
this.subqueryOneLine = (_s = options === null || options === void 0 ? void 0 : options.subqueryOneLine) !== null && _s !== void 0 ? _s : false;
|
|
56
|
+
this.indentNestedParentheses = (_t = options === null || options === void 0 ? void 0 : options.indentNestedParentheses) !== null && _t !== void 0 ? _t : false;
|
|
50
57
|
this.linePrinter = new LinePrinter(this.indentChar, this.indentSize, this.newline, this.commaBreak);
|
|
51
58
|
// Initialize
|
|
52
|
-
this.indentIncrementContainers = new Set((
|
|
59
|
+
this.indentIncrementContainers = new Set((_u = options === null || options === void 0 ? void 0 : options.indentIncrementContainerTypes) !== null && _u !== void 0 ? _u : [
|
|
53
60
|
SqlPrintTokenContainerType.SelectClause,
|
|
54
61
|
SqlPrintTokenContainerType.FromClause,
|
|
55
62
|
SqlPrintTokenContainerType.WhereClause,
|
|
@@ -93,10 +100,10 @@ export class SqlPrinter {
|
|
|
93
100
|
if (this.linePrinter.lines.length > 0 && level !== this.linePrinter.lines[0].level) {
|
|
94
101
|
this.linePrinter.lines[0].level = level;
|
|
95
102
|
}
|
|
96
|
-
this.appendToken(token, level, undefined, 0);
|
|
103
|
+
this.appendToken(token, level, undefined, 0, false);
|
|
97
104
|
return this.linePrinter.print();
|
|
98
105
|
}
|
|
99
|
-
appendToken(token, level, parentContainerType, caseContextDepth = 0) {
|
|
106
|
+
appendToken(token, level, parentContainerType, caseContextDepth = 0, indentParentActive = false) {
|
|
100
107
|
// Track WITH clause context for full-oneline formatting
|
|
101
108
|
const wasInsideWithClause = this.insideWithClause;
|
|
102
109
|
if (token.containerType === SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
|
|
@@ -108,6 +115,7 @@ export class SqlPrinter {
|
|
|
108
115
|
const current = this.linePrinter.getCurrentLine();
|
|
109
116
|
const isCaseContext = this.isCaseContext(token.containerType);
|
|
110
117
|
const nextCaseContextDepth = isCaseContext ? caseContextDepth + 1 : caseContextDepth;
|
|
118
|
+
const shouldIndentNested = this.shouldIndentNestedParentheses(token);
|
|
111
119
|
// Handle different token types
|
|
112
120
|
if (token.type === SqlPrintTokenType.keyword) {
|
|
113
121
|
this.handleKeywordToken(token, level, parentContainerType, caseContextDepth);
|
|
@@ -115,9 +123,15 @@ export class SqlPrinter {
|
|
|
115
123
|
else if (token.type === SqlPrintTokenType.comma) {
|
|
116
124
|
this.handleCommaToken(token, level, parentContainerType);
|
|
117
125
|
}
|
|
126
|
+
else if (token.type === SqlPrintTokenType.parenthesis) {
|
|
127
|
+
this.handleParenthesisToken(token, level, indentParentActive);
|
|
128
|
+
}
|
|
118
129
|
else if (token.type === SqlPrintTokenType.operator && token.text.toLowerCase() === 'and') {
|
|
119
130
|
this.handleAndOperatorToken(token, level, parentContainerType, caseContextDepth);
|
|
120
131
|
}
|
|
132
|
+
else if (token.type === SqlPrintTokenType.operator && token.text.toLowerCase() === 'or') {
|
|
133
|
+
this.handleOrOperatorToken(token, level, parentContainerType, caseContextDepth);
|
|
134
|
+
}
|
|
121
135
|
else if (token.containerType === "JoinClause") {
|
|
122
136
|
this.handleJoinClauseToken(token, level);
|
|
123
137
|
}
|
|
@@ -139,7 +153,7 @@ export class SqlPrinter {
|
|
|
139
153
|
this.handleCteOnelineToken(token, level);
|
|
140
154
|
return; // Return early to avoid processing innerTokens
|
|
141
155
|
}
|
|
142
|
-
else if ((token.containerType === SqlPrintTokenContainerType.ParenExpression && this.parenthesesOneLine) ||
|
|
156
|
+
else if ((token.containerType === SqlPrintTokenContainerType.ParenExpression && this.parenthesesOneLine && !shouldIndentNested) ||
|
|
143
157
|
(token.containerType === SqlPrintTokenContainerType.BetweenExpression && this.betweenOneLine) ||
|
|
144
158
|
(token.containerType === SqlPrintTokenContainerType.Values && this.valuesOneLine) ||
|
|
145
159
|
(token.containerType === SqlPrintTokenContainerType.JoinOnClause && this.joinOneLine) ||
|
|
@@ -155,21 +169,31 @@ export class SqlPrinter {
|
|
|
155
169
|
if (token.keywordTokens && token.keywordTokens.length > 0) {
|
|
156
170
|
for (let i = 0; i < token.keywordTokens.length; i++) {
|
|
157
171
|
const keywordToken = token.keywordTokens[i];
|
|
158
|
-
this.appendToken(keywordToken, level, token.containerType, nextCaseContextDepth);
|
|
172
|
+
this.appendToken(keywordToken, level, token.containerType, nextCaseContextDepth, indentParentActive);
|
|
159
173
|
}
|
|
160
174
|
}
|
|
161
175
|
let innerLevel = level;
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
176
|
+
let increasedIndent = false;
|
|
177
|
+
const shouldIncreaseIndent = this.indentIncrementContainers.has(token.containerType) || shouldIndentNested;
|
|
178
|
+
const delayIndentNewline = shouldIndentNested && token.containerType === SqlPrintTokenContainerType.ParenExpression;
|
|
179
|
+
if (!this.isOnelineMode() && shouldIncreaseIndent) {
|
|
180
|
+
if (this.insideWithClause && this.withClauseStyle === 'full-oneline') {
|
|
181
|
+
// Keep everything on one line for full-oneline WITH clauses.
|
|
182
|
+
}
|
|
183
|
+
else if (delayIndentNewline) {
|
|
184
|
+
innerLevel = level + 1;
|
|
185
|
+
increasedIndent = true;
|
|
186
|
+
}
|
|
187
|
+
else if (current.text !== '') {
|
|
188
|
+
innerLevel = level + 1;
|
|
189
|
+
increasedIndent = true;
|
|
167
190
|
this.linePrinter.appendNewline(innerLevel);
|
|
168
191
|
}
|
|
169
192
|
}
|
|
170
193
|
for (let i = 0; i < token.innerTokens.length; i++) {
|
|
171
194
|
const child = token.innerTokens[i];
|
|
172
|
-
|
|
195
|
+
const childIndentParentActive = token.containerType === SqlPrintTokenContainerType.ParenExpression ? shouldIndentNested : indentParentActive;
|
|
196
|
+
this.appendToken(child, innerLevel, token.containerType, nextCaseContextDepth, childIndentParentActive);
|
|
173
197
|
}
|
|
174
198
|
// Exit WITH clause context when we finish processing WithClause container
|
|
175
199
|
if (token.containerType === SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
|
|
@@ -179,11 +203,8 @@ export class SqlPrinter {
|
|
|
179
203
|
return; // Return early to avoid additional newline below
|
|
180
204
|
}
|
|
181
205
|
// indent level down
|
|
182
|
-
if (
|
|
183
|
-
|
|
184
|
-
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
185
|
-
this.linePrinter.appendNewline(level);
|
|
186
|
-
}
|
|
206
|
+
if (increasedIndent && shouldIncreaseIndent && !(this.insideWithClause && this.withClauseStyle === 'full-oneline') && !delayIndentNewline) {
|
|
207
|
+
this.linePrinter.appendNewline(level);
|
|
187
208
|
}
|
|
188
209
|
}
|
|
189
210
|
isCaseContext(containerType) {
|
|
@@ -226,6 +247,10 @@ export class SqlPrinter {
|
|
|
226
247
|
this.handleAndOperatorToken(token, level, parentContainerType, caseContextDepth);
|
|
227
248
|
return;
|
|
228
249
|
}
|
|
250
|
+
else if (lower === 'or' && this.orBreak !== 'none') {
|
|
251
|
+
this.handleOrOperatorToken(token, level, parentContainerType, caseContextDepth);
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
229
254
|
const text = this.applyKeywordCase(token.text);
|
|
230
255
|
if (caseContextDepth > 0) {
|
|
231
256
|
this.linePrinter.appendText(text);
|
|
@@ -236,7 +261,14 @@ export class SqlPrinter {
|
|
|
236
261
|
handleCommaToken(token, level, parentContainerType) {
|
|
237
262
|
const text = token.text;
|
|
238
263
|
const isWithinWithClause = parentContainerType === SqlPrintTokenContainerType.WithClause;
|
|
239
|
-
const
|
|
264
|
+
const isWithinValuesClause = parentContainerType === SqlPrintTokenContainerType.Values;
|
|
265
|
+
let effectiveCommaBreak = this.commaBreak;
|
|
266
|
+
if (isWithinWithClause) {
|
|
267
|
+
effectiveCommaBreak = this.cteCommaBreak;
|
|
268
|
+
}
|
|
269
|
+
else if (isWithinValuesClause) {
|
|
270
|
+
effectiveCommaBreak = this.valuesCommaBreak;
|
|
271
|
+
}
|
|
240
272
|
// Skip comma newlines when inside WITH clause with full-oneline style
|
|
241
273
|
if (this.insideWithClause && this.withClauseStyle === 'full-oneline') {
|
|
242
274
|
this.linePrinter.appendText(text);
|
|
@@ -260,10 +292,27 @@ export class SqlPrinter {
|
|
|
260
292
|
}
|
|
261
293
|
}
|
|
262
294
|
else if (effectiveCommaBreak === 'after') {
|
|
295
|
+
const previousCommaBreak = this.linePrinter.commaBreak;
|
|
296
|
+
if (previousCommaBreak !== 'after') {
|
|
297
|
+
this.linePrinter.commaBreak = 'after';
|
|
298
|
+
}
|
|
263
299
|
this.linePrinter.appendText(text);
|
|
264
300
|
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
265
301
|
this.linePrinter.appendNewline(level);
|
|
266
302
|
}
|
|
303
|
+
if (previousCommaBreak !== 'after') {
|
|
304
|
+
this.linePrinter.commaBreak = previousCommaBreak;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
else if (effectiveCommaBreak === 'none') {
|
|
308
|
+
const previousCommaBreak = this.linePrinter.commaBreak;
|
|
309
|
+
if (previousCommaBreak !== 'none') {
|
|
310
|
+
this.linePrinter.commaBreak = 'none';
|
|
311
|
+
}
|
|
312
|
+
this.linePrinter.appendText(text);
|
|
313
|
+
if (previousCommaBreak !== 'none') {
|
|
314
|
+
this.linePrinter.commaBreak = previousCommaBreak;
|
|
315
|
+
}
|
|
267
316
|
}
|
|
268
317
|
else {
|
|
269
318
|
this.linePrinter.appendText(text);
|
|
@@ -293,6 +342,79 @@ export class SqlPrinter {
|
|
|
293
342
|
this.linePrinter.appendText(text);
|
|
294
343
|
}
|
|
295
344
|
}
|
|
345
|
+
handleParenthesisToken(token, level, indentParentActive) {
|
|
346
|
+
if (token.text === '(') {
|
|
347
|
+
this.linePrinter.appendText(token.text);
|
|
348
|
+
if (indentParentActive && !this.isOnelineMode()) {
|
|
349
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
350
|
+
this.linePrinter.appendNewline(level);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
if (token.text === ')' && indentParentActive && !this.isOnelineMode()) {
|
|
356
|
+
// Align closing parenthesis with the outer indentation level when nested groups expand.
|
|
357
|
+
const closingLevel = Math.max(level - 1, 0);
|
|
358
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
359
|
+
this.linePrinter.appendNewline(closingLevel);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
this.linePrinter.appendText(token.text);
|
|
363
|
+
}
|
|
364
|
+
handleOrOperatorToken(token, level, parentContainerType, caseContextDepth = 0) {
|
|
365
|
+
const text = this.applyKeywordCase(token.text);
|
|
366
|
+
// Leave OR untouched inside CASE branches to preserve inline evaluation order.
|
|
367
|
+
if (caseContextDepth > 0) {
|
|
368
|
+
this.linePrinter.appendText(text);
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
if (this.orBreak === 'before') {
|
|
372
|
+
// Insert a newline before OR unless WITH full-oneline mode suppresses breaks.
|
|
373
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
374
|
+
this.linePrinter.appendNewline(level);
|
|
375
|
+
}
|
|
376
|
+
this.linePrinter.appendText(text);
|
|
377
|
+
}
|
|
378
|
+
else if (this.orBreak === 'after') {
|
|
379
|
+
this.linePrinter.appendText(text);
|
|
380
|
+
// Break after OR when multi-line formatting is active.
|
|
381
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
382
|
+
this.linePrinter.appendNewline(level);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
this.linePrinter.appendText(text);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Decide whether a parentheses group should increase indentation when inside nested structures.
|
|
391
|
+
* We only expand groups that contain further parentheses so simple comparisons stay compact.
|
|
392
|
+
*/
|
|
393
|
+
shouldIndentNestedParentheses(token) {
|
|
394
|
+
if (!this.indentNestedParentheses) {
|
|
395
|
+
return false;
|
|
396
|
+
}
|
|
397
|
+
if (token.containerType !== SqlPrintTokenContainerType.ParenExpression) {
|
|
398
|
+
return false;
|
|
399
|
+
}
|
|
400
|
+
// Look for nested parentheses containers. If present, indent to highlight grouping.
|
|
401
|
+
return token.innerTokens.some((child) => this.containsParenExpression(child));
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Recursively inspect descendants to find additional parentheses groups.
|
|
405
|
+
* Helps detect complex boolean groups like ((A) OR (B) OR (C)).
|
|
406
|
+
*/
|
|
407
|
+
containsParenExpression(token) {
|
|
408
|
+
if (token.containerType === SqlPrintTokenContainerType.ParenExpression) {
|
|
409
|
+
return true;
|
|
410
|
+
}
|
|
411
|
+
for (const child of token.innerTokens) {
|
|
412
|
+
if (this.containsParenExpression(child)) {
|
|
413
|
+
return true;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
return false;
|
|
417
|
+
}
|
|
296
418
|
handleJoinClauseToken(token, level) {
|
|
297
419
|
const text = this.applyKeywordCase(token.text);
|
|
298
420
|
// before join clause, add newline (skip when inside WITH clause with full-oneline style)
|
|
@@ -374,11 +496,14 @@ export class SqlPrinter {
|
|
|
374
496
|
newline: ' ',
|
|
375
497
|
commaBreak: this.commaBreak,
|
|
376
498
|
cteCommaBreak: this.cteCommaBreak,
|
|
499
|
+
valuesCommaBreak: this.valuesCommaBreak,
|
|
377
500
|
andBreak: this.andBreak,
|
|
501
|
+
orBreak: this.orBreak,
|
|
378
502
|
keywordCase: this.keywordCase,
|
|
379
503
|
exportComment: false,
|
|
380
504
|
strictCommentPlacement: this.strictCommentPlacement,
|
|
381
505
|
withClauseStyle: 'standard', // Prevent recursive processing
|
|
506
|
+
indentNestedParentheses: false,
|
|
382
507
|
});
|
|
383
508
|
}
|
|
384
509
|
/**
|
|
@@ -403,7 +528,9 @@ export class SqlPrinter {
|
|
|
403
528
|
newline: ' ', // KEY: Replace all newlines with spaces - this makes everything oneline!
|
|
404
529
|
commaBreak: 'none', // Disable comma-based line breaks
|
|
405
530
|
cteCommaBreak: this.cteCommaBreak,
|
|
406
|
-
|
|
531
|
+
valuesCommaBreak: 'none',
|
|
532
|
+
andBreak: 'none', // Disable AND-based line breaks
|
|
533
|
+
orBreak: 'none', // Disable OR-based line breaks
|
|
407
534
|
keywordCase: this.keywordCase,
|
|
408
535
|
exportComment: this.exportComment,
|
|
409
536
|
strictCommentPlacement: this.strictCommentPlacement,
|
|
@@ -414,6 +541,7 @@ export class SqlPrinter {
|
|
|
414
541
|
joinOneLine: false, // Prevent recursive processing (avoid infinite loops)
|
|
415
542
|
caseOneLine: false, // Prevent recursive processing (avoid infinite loops)
|
|
416
543
|
subqueryOneLine: false, // Prevent recursive processing (avoid infinite loops)
|
|
544
|
+
indentNestedParentheses: false,
|
|
417
545
|
});
|
|
418
546
|
}
|
|
419
547
|
/**
|