rawsql-ts 0.11.37-beta → 0.11.38-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/dist/esm/index.min.js +54 -51
- package/dist/esm/index.min.js.map +3 -3
- package/dist/esm/src/models/Lexeme.d.ts +8 -0
- package/dist/esm/src/models/SqlComponent.d.ts +20 -0
- package/dist/esm/src/models/SqlComponent.js +46 -0
- package/dist/esm/src/models/SqlComponent.js.map +1 -1
- package/dist/esm/src/parsers/CommandExpressionParser.d.ts +9 -0
- package/dist/esm/src/parsers/CommandExpressionParser.js +118 -14
- package/dist/esm/src/parsers/CommandExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/CommonTableParser.d.ts +8 -0
- package/dist/esm/src/parsers/CommonTableParser.js +127 -35
- package/dist/esm/src/parsers/CommonTableParser.js.map +1 -1
- package/dist/esm/src/parsers/FromClauseParser.js +2 -2
- package/dist/esm/src/parsers/FromClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/FullNameParser.js +13 -1
- package/dist/esm/src/parsers/FullNameParser.js.map +1 -1
- package/dist/esm/src/parsers/FunctionExpressionParser.js +37 -3
- package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/JoinClauseParser.d.ts +4 -0
- package/dist/esm/src/parsers/JoinClauseParser.js +54 -20
- package/dist/esm/src/parsers/JoinClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/OrderByClauseParser.js +39 -8
- package/dist/esm/src/parsers/OrderByClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/ParenExpressionParser.js +1 -1
- package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectClauseParser.d.ts +10 -0
- package/dist/esm/src/parsers/SelectClauseParser.js +124 -12
- package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectQueryParser.d.ts +12 -0
- package/dist/esm/src/parsers/SelectQueryParser.js +277 -115
- package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/SourceAliasExpressionParser.js +15 -4
- package/dist/esm/src/parsers/SourceAliasExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/SourceParser.js +33 -2
- package/dist/esm/src/parsers/SourceParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +62 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +700 -32
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlTokenizer.d.ts +1 -4
- package/dist/esm/src/parsers/SqlTokenizer.js +108 -52
- package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/esm/src/parsers/ValueParser.d.ts +4 -0
- package/dist/esm/src/parsers/ValueParser.js +119 -20
- package/dist/esm/src/parsers/ValueParser.js.map +1 -1
- package/dist/esm/src/parsers/WithClauseParser.d.ts +4 -0
- package/dist/esm/src/parsers/WithClauseParser.js +64 -35
- package/dist/esm/src/parsers/WithClauseParser.js.map +1 -1
- package/dist/esm/src/tokenReaders/CommandTokenReader.js +9 -1
- package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/esm/src/transformers/LinePrinter.d.ts +17 -2
- package/dist/esm/src/transformers/LinePrinter.js +39 -10
- package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
- package/dist/esm/src/transformers/SqlFormatter.d.ts +10 -0
- package/dist/esm/src/transformers/SqlFormatter.js +1 -1
- package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/esm/src/transformers/SqlPrinter.d.ts +6 -1
- package/dist/esm/src/transformers/SqlPrinter.js +76 -31
- package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/esm/src/utils/CommentEditor.d.ts +12 -5
- package/dist/esm/src/utils/CommentEditor.js +67 -28
- package/dist/esm/src/utils/CommentEditor.js.map +1 -1
- package/dist/esm/src/utils/stringUtils.js +21 -9
- package/dist/esm/src/utils/stringUtils.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +54 -51
- package/dist/index.min.js.map +3 -3
- package/dist/src/models/Lexeme.d.ts +8 -0
- package/dist/src/models/SqlComponent.d.ts +20 -0
- package/dist/src/models/SqlComponent.js +46 -0
- package/dist/src/models/SqlComponent.js.map +1 -1
- package/dist/src/parsers/CommandExpressionParser.d.ts +9 -0
- package/dist/src/parsers/CommandExpressionParser.js +118 -14
- package/dist/src/parsers/CommandExpressionParser.js.map +1 -1
- package/dist/src/parsers/CommonTableParser.d.ts +8 -0
- package/dist/src/parsers/CommonTableParser.js +127 -35
- package/dist/src/parsers/CommonTableParser.js.map +1 -1
- package/dist/src/parsers/FromClauseParser.js +2 -2
- package/dist/src/parsers/FromClauseParser.js.map +1 -1
- package/dist/src/parsers/FullNameParser.js +13 -1
- package/dist/src/parsers/FullNameParser.js.map +1 -1
- package/dist/src/parsers/FunctionExpressionParser.js +37 -3
- package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/src/parsers/JoinClauseParser.d.ts +4 -0
- package/dist/src/parsers/JoinClauseParser.js +54 -20
- package/dist/src/parsers/JoinClauseParser.js.map +1 -1
- package/dist/src/parsers/OrderByClauseParser.js +39 -8
- package/dist/src/parsers/OrderByClauseParser.js.map +1 -1
- package/dist/src/parsers/ParenExpressionParser.js +1 -1
- package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
- package/dist/src/parsers/SelectClauseParser.d.ts +10 -0
- package/dist/src/parsers/SelectClauseParser.js +124 -12
- package/dist/src/parsers/SelectClauseParser.js.map +1 -1
- package/dist/src/parsers/SelectQueryParser.d.ts +12 -0
- package/dist/src/parsers/SelectQueryParser.js +280 -115
- package/dist/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/src/parsers/SourceAliasExpressionParser.js +15 -4
- package/dist/src/parsers/SourceAliasExpressionParser.js.map +1 -1
- package/dist/src/parsers/SourceParser.js +33 -2
- package/dist/src/parsers/SourceParser.js.map +1 -1
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +62 -0
- package/dist/src/parsers/SqlPrintTokenParser.js +700 -32
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/parsers/SqlTokenizer.d.ts +1 -4
- package/dist/src/parsers/SqlTokenizer.js +108 -52
- package/dist/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/src/parsers/ValueParser.d.ts +4 -0
- package/dist/src/parsers/ValueParser.js +119 -20
- package/dist/src/parsers/ValueParser.js.map +1 -1
- package/dist/src/parsers/WithClauseParser.d.ts +4 -0
- package/dist/src/parsers/WithClauseParser.js +64 -35
- package/dist/src/parsers/WithClauseParser.js.map +1 -1
- package/dist/src/tokenReaders/CommandTokenReader.js +9 -1
- package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/src/transformers/LinePrinter.d.ts +17 -2
- package/dist/src/transformers/LinePrinter.js +39 -10
- package/dist/src/transformers/LinePrinter.js.map +1 -1
- package/dist/src/transformers/SqlFormatter.d.ts +10 -0
- package/dist/src/transformers/SqlFormatter.js +4 -1
- package/dist/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/src/transformers/SqlPrinter.d.ts +6 -1
- package/dist/src/transformers/SqlPrinter.js +76 -31
- package/dist/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/src/utils/CommentEditor.d.ts +12 -5
- package/dist/src/utils/CommentEditor.js +67 -28
- package/dist/src/utils/CommentEditor.js.map +1 -1
- package/dist/src/utils/stringUtils.js +21 -9
- package/dist/src/utils/stringUtils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -9,11 +9,13 @@ class LinePrinter {
|
|
|
9
9
|
* @param indentChar Character used for indentation (default: ' ') // Updated comment to reflect options
|
|
10
10
|
* @param indentSize Number of indentChar per level (default: 0)
|
|
11
11
|
* @param newline Newline string (default: '\r\n') // Changed type and default value
|
|
12
|
+
* @param commaBreak Comma break style (default: 'none')
|
|
12
13
|
*/
|
|
13
|
-
constructor(indentChar = ' ', indentSize = 0, newline = '\r\n') {
|
|
14
|
+
constructor(indentChar = ' ', indentSize = 0, newline = '\r\n', commaBreak = 'none') {
|
|
14
15
|
this.indentChar = indentChar;
|
|
15
16
|
this.indentSize = indentSize;
|
|
16
17
|
this.newline = newline;
|
|
18
|
+
this.commaBreak = commaBreak;
|
|
17
19
|
this.lines = [];
|
|
18
20
|
this.appendNewline(0);
|
|
19
21
|
}
|
|
@@ -54,17 +56,33 @@ class LinePrinter {
|
|
|
54
56
|
* @param text Text to append
|
|
55
57
|
*/
|
|
56
58
|
appendText(text) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
59
|
+
// Handle special comma cleanup first
|
|
60
|
+
if (this.cleanupLine(text)) {
|
|
61
|
+
// If cleanup was performed, add comma to previous line
|
|
62
|
+
const previousLine = this.lines[this.lines.length - 1];
|
|
63
|
+
previousLine.text = previousLine.text.trimEnd() + text;
|
|
64
|
+
return;
|
|
64
65
|
}
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
const workLine = this.getCurrentLine();
|
|
67
|
+
// Leading space is not needed
|
|
68
|
+
if (!(text === ' ' && workLine.text === '')) {
|
|
69
|
+
workLine.text += text;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Cleans up the current line for comma formatting.
|
|
74
|
+
* For 'after' and 'none' comma styles, removes empty line when a comma is being added.
|
|
75
|
+
* @param text The text being processed
|
|
76
|
+
* @returns true if cleanup was performed, false otherwise
|
|
77
|
+
*/
|
|
78
|
+
cleanupLine(text) {
|
|
79
|
+
const workLine = this.getCurrentLine();
|
|
80
|
+
if (text === ',' && workLine.text.trim() === '' && this.lines.length > 1 && (this.commaBreak === 'after' || this.commaBreak === 'none')) {
|
|
81
|
+
// Remove current empty line
|
|
82
|
+
this.lines.pop(); // Safe: we checked lines.length > 1
|
|
83
|
+
return true; // Cleanup performed
|
|
67
84
|
}
|
|
85
|
+
return false; // No cleanup needed
|
|
68
86
|
}
|
|
69
87
|
getCurrentLine() {
|
|
70
88
|
if (this.lines.length > 0) {
|
|
@@ -74,6 +92,17 @@ class LinePrinter {
|
|
|
74
92
|
throw new Error('No tokens to get current line from.');
|
|
75
93
|
}
|
|
76
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Checks if the current line is empty (has no text content)
|
|
97
|
+
* @returns true if current line is empty, false otherwise
|
|
98
|
+
*/
|
|
99
|
+
isCurrentLineEmpty() {
|
|
100
|
+
if (this.lines.length > 0) {
|
|
101
|
+
const currentLine = this.lines[this.lines.length - 1];
|
|
102
|
+
return currentLine.text.trim() === '';
|
|
103
|
+
}
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
77
106
|
}
|
|
78
107
|
exports.LinePrinter = LinePrinter;
|
|
79
108
|
class PrintLine {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinePrinter.js","sourceRoot":"","sources":["../../../src/transformers/LinePrinter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LinePrinter.js","sourceRoot":"","sources":["../../../src/transformers/LinePrinter.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,12 @@ export type PresetName = (typeof VALID_PRESETS)[number];
|
|
|
10
10
|
* - 'full-oneline': Entire WITH clause is formatted as one line
|
|
11
11
|
*/
|
|
12
12
|
export type WithClauseStyle = 'standard' | 'cte-oneline' | 'full-oneline';
|
|
13
|
+
/**
|
|
14
|
+
* CommentStyle determines how comments are formatted in the output.
|
|
15
|
+
* - 'block': Keep original comment style (default)
|
|
16
|
+
* - 'smart': Convert single-line to --, multi-line to block comments, optimize for comma break styles
|
|
17
|
+
*/
|
|
18
|
+
export type CommentStyle = 'block' | 'smart';
|
|
13
19
|
/**
|
|
14
20
|
* Base formatting options shared between SqlFormatter and SqlPrinter
|
|
15
21
|
* @public
|
|
@@ -25,12 +31,16 @@ export interface BaseFormattingOptions {
|
|
|
25
31
|
keywordCase?: 'none' | 'upper' | 'lower';
|
|
26
32
|
/** Style for comma line breaks */
|
|
27
33
|
commaBreak?: CommaBreakStyle;
|
|
34
|
+
/** Style for comma line breaks inside WITH clause definitions */
|
|
35
|
+
cteCommaBreak?: CommaBreakStyle;
|
|
28
36
|
/** Style for AND/OR line breaks */
|
|
29
37
|
andBreak?: AndBreakStyle;
|
|
30
38
|
/** Whether to export comments in formatted output */
|
|
31
39
|
exportComment?: boolean;
|
|
32
40
|
/** Whether to only export comments from clause-level keywords */
|
|
33
41
|
strictCommentPlacement?: boolean;
|
|
42
|
+
/** Comment formatting style */
|
|
43
|
+
commentStyle?: CommentStyle;
|
|
34
44
|
/** Formatting style for WITH clauses */
|
|
35
45
|
withClauseStyle?: WithClauseStyle;
|
|
36
46
|
/** Keep parentheses content on one line regardless of AND/OR break settings */
|
|
@@ -21,7 +21,10 @@ class SqlFormatter {
|
|
|
21
21
|
parameterSymbol: (_b = options.parameterSymbol) !== null && _b !== void 0 ? _b : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.parameterSymbol,
|
|
22
22
|
parameterStyle: (_c = options.parameterStyle) !== null && _c !== void 0 ? _c : presetConfig === null || presetConfig === void 0 ? void 0 : presetConfig.parameterStyle,
|
|
23
23
|
};
|
|
24
|
-
this.parser = new SqlPrintTokenParser_1.SqlPrintTokenParser(
|
|
24
|
+
this.parser = new SqlPrintTokenParser_1.SqlPrintTokenParser({
|
|
25
|
+
...parserOptions,
|
|
26
|
+
commentStyle: options.commentStyle
|
|
27
|
+
});
|
|
25
28
|
this.printer = new SqlPrinter_1.SqlPrinter({
|
|
26
29
|
...options,
|
|
27
30
|
parenthesesOneLine: options.parenthesesOneLine,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlFormatter.js","sourceRoot":"","sources":["../../../src/transformers/SqlFormatter.ts"],"names":[],"mappings":";;;AAAA,wEAA+F;AAC/F,6CAA0E;AAK1E,4CAA4C;AAC/B,QAAA,aAAa,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SqlFormatter.js","sourceRoot":"","sources":["../../../src/transformers/SqlFormatter.ts"],"names":[],"mappings":";;;AAAA,wEAA+F;AAC/F,6CAA0E;AAK1E,4CAA4C;AAC/B,QAAA,aAAa,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AA0EnF;;GAEG;AACH,MAAa,YAAY;IAIrB,YAAY,UAA+B,EAAE;;QAEzC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,6BAAO,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,MAAM,aAAa,GAAG;YAClB,GAAG,YAAY,EAAE,6BAA6B;YAC9C,gBAAgB,EAAE,MAAA,OAAO,CAAC,gBAAgB,mCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,gBAAgB;YAC5E,eAAe,EAAE,MAAA,OAAO,CAAC,eAAe,mCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe;YACzE,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,cAAc;SACzE,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,yCAAmB,CAAC;YAClC,GAAG,aAAa;YAChB,YAAY,EAAE,OAAO,CAAC,YAAY;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAU,CAAC;YAC1B,GAAG,OAAO;YACV,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe;SAC3C,CAAC,CAAC;IACP,CAAC,CAAI;;;;;OAKF;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;AA5CD,oCA4CC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SqlPrintToken, SqlPrintTokenContainerType } from "../models/SqlPrintToken";
|
|
2
2
|
import { IndentCharOption, NewlineOption } from "./LinePrinter";
|
|
3
|
-
import { BaseFormattingOptions, WithClauseStyle } from "./SqlFormatter";
|
|
3
|
+
import { BaseFormattingOptions, WithClauseStyle, CommentStyle } from "./SqlFormatter";
|
|
4
4
|
/**
|
|
5
5
|
* CommaBreakStyle determines how commas are placed in formatted SQL output.
|
|
6
6
|
* - 'none': No line break for commas
|
|
@@ -51,6 +51,8 @@ export declare class SqlPrinter {
|
|
|
51
51
|
newline: NewlineOption;
|
|
52
52
|
/** Comma break style: 'none', 'before', or 'after' */
|
|
53
53
|
commaBreak: CommaBreakStyle;
|
|
54
|
+
/** WITH clause comma break style (defaults to commaBreak) */
|
|
55
|
+
cteCommaBreak: CommaBreakStyle;
|
|
54
56
|
/** AND break style: 'none', 'before', or 'after' */
|
|
55
57
|
andBreak: AndBreakStyle;
|
|
56
58
|
/** Keyword case style: 'none', 'upper' | 'lower' */
|
|
@@ -61,6 +63,8 @@ export declare class SqlPrinter {
|
|
|
61
63
|
strictCommentPlacement: boolean;
|
|
62
64
|
/** WITH clause formatting style (default: 'standard') */
|
|
63
65
|
withClauseStyle: WithClauseStyle;
|
|
66
|
+
/** Comment formatting style (default: 'block') */
|
|
67
|
+
commentStyle: CommentStyle;
|
|
64
68
|
private linePrinter;
|
|
65
69
|
private indentIncrementContainers;
|
|
66
70
|
/** Track whether we are currently inside a WITH clause for full-oneline formatting */
|
|
@@ -92,6 +96,7 @@ export declare class SqlPrinter {
|
|
|
92
96
|
*/
|
|
93
97
|
print(token: SqlPrintToken, level?: number): string;
|
|
94
98
|
private appendToken;
|
|
99
|
+
private isCaseContext;
|
|
95
100
|
/**
|
|
96
101
|
* Determines if a token should be skipped during printing.
|
|
97
102
|
* Tokens are skipped if they have no content and no inner tokens,
|
|
@@ -28,7 +28,7 @@ class SqlPrinter {
|
|
|
28
28
|
* @param options Optional style settings for pretty printing
|
|
29
29
|
*/
|
|
30
30
|
constructor(options) {
|
|
31
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
31
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
32
32
|
/** Track whether we are currently inside a WITH clause for full-oneline formatting */
|
|
33
33
|
this.insideWithClause = false;
|
|
34
34
|
this.indentChar = (_a = options === null || options === void 0 ? void 0 : options.indentChar) !== null && _a !== void 0 ? _a : '';
|
|
@@ -37,20 +37,22 @@ class SqlPrinter {
|
|
|
37
37
|
// This is intentional and differs from the LinePrinter default of '\r\n'.
|
|
38
38
|
this.newline = (_c = options === null || options === void 0 ? void 0 : options.newline) !== null && _c !== void 0 ? _c : ' ';
|
|
39
39
|
this.commaBreak = (_d = options === null || options === void 0 ? void 0 : options.commaBreak) !== null && _d !== void 0 ? _d : 'none';
|
|
40
|
-
this.
|
|
41
|
-
this.
|
|
42
|
-
this.
|
|
43
|
-
this.
|
|
44
|
-
this.
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
47
|
-
this.
|
|
48
|
-
this.
|
|
49
|
-
this.
|
|
50
|
-
this.
|
|
51
|
-
this.
|
|
40
|
+
this.cteCommaBreak = (_e = options === null || options === void 0 ? void 0 : options.cteCommaBreak) !== null && _e !== void 0 ? _e : this.commaBreak;
|
|
41
|
+
this.andBreak = (_f = options === null || options === void 0 ? void 0 : options.andBreak) !== null && _f !== void 0 ? _f : 'none';
|
|
42
|
+
this.keywordCase = (_g = options === null || options === void 0 ? void 0 : options.keywordCase) !== null && _g !== void 0 ? _g : 'none';
|
|
43
|
+
this.exportComment = (_h = options === null || options === void 0 ? void 0 : options.exportComment) !== null && _h !== void 0 ? _h : false;
|
|
44
|
+
this.strictCommentPlacement = (_j = options === null || options === void 0 ? void 0 : options.strictCommentPlacement) !== null && _j !== void 0 ? _j : false;
|
|
45
|
+
this.withClauseStyle = (_k = options === null || options === void 0 ? void 0 : options.withClauseStyle) !== null && _k !== void 0 ? _k : 'standard';
|
|
46
|
+
this.commentStyle = (_l = options === null || options === void 0 ? void 0 : options.commentStyle) !== null && _l !== void 0 ? _l : 'block';
|
|
47
|
+
this.parenthesesOneLine = (_m = options === null || options === void 0 ? void 0 : options.parenthesesOneLine) !== null && _m !== void 0 ? _m : false;
|
|
48
|
+
this.betweenOneLine = (_o = options === null || options === void 0 ? void 0 : options.betweenOneLine) !== null && _o !== void 0 ? _o : false;
|
|
49
|
+
this.valuesOneLine = (_p = options === null || options === void 0 ? void 0 : options.valuesOneLine) !== null && _p !== void 0 ? _p : false;
|
|
50
|
+
this.joinOneLine = (_q = options === null || options === void 0 ? void 0 : options.joinOneLine) !== null && _q !== void 0 ? _q : false;
|
|
51
|
+
this.caseOneLine = (_r = options === null || options === void 0 ? void 0 : options.caseOneLine) !== null && _r !== void 0 ? _r : false;
|
|
52
|
+
this.subqueryOneLine = (_s = options === null || options === void 0 ? void 0 : options.subqueryOneLine) !== null && _s !== void 0 ? _s : false;
|
|
53
|
+
this.linePrinter = new LinePrinter_1.LinePrinter(this.indentChar, this.indentSize, this.newline, this.commaBreak);
|
|
52
54
|
// Initialize
|
|
53
|
-
this.indentIncrementContainers = new Set((
|
|
55
|
+
this.indentIncrementContainers = new Set((_t = options === null || options === void 0 ? void 0 : options.indentIncrementContainerTypes) !== null && _t !== void 0 ? _t : [
|
|
54
56
|
SqlPrintToken_1.SqlPrintTokenContainerType.SelectClause,
|
|
55
57
|
SqlPrintToken_1.SqlPrintTokenContainerType.FromClause,
|
|
56
58
|
SqlPrintToken_1.SqlPrintTokenContainerType.WhereClause,
|
|
@@ -89,15 +91,15 @@ class SqlPrinter {
|
|
|
89
91
|
*/
|
|
90
92
|
print(token, level = 0) {
|
|
91
93
|
// initialize
|
|
92
|
-
this.linePrinter = new LinePrinter_1.LinePrinter(this.indentChar, this.indentSize, this.newline);
|
|
94
|
+
this.linePrinter = new LinePrinter_1.LinePrinter(this.indentChar, this.indentSize, this.newline, this.commaBreak);
|
|
93
95
|
this.insideWithClause = false; // Reset WITH clause context
|
|
94
96
|
if (this.linePrinter.lines.length > 0 && level !== this.linePrinter.lines[0].level) {
|
|
95
97
|
this.linePrinter.lines[0].level = level;
|
|
96
98
|
}
|
|
97
|
-
this.appendToken(token, level, undefined);
|
|
99
|
+
this.appendToken(token, level, undefined, 0);
|
|
98
100
|
return this.linePrinter.print();
|
|
99
101
|
}
|
|
100
|
-
appendToken(token, level, parentContainerType) {
|
|
102
|
+
appendToken(token, level, parentContainerType, caseContextDepth = 0) {
|
|
101
103
|
// Track WITH clause context for full-oneline formatting
|
|
102
104
|
const wasInsideWithClause = this.insideWithClause;
|
|
103
105
|
if (token.containerType === SqlPrintToken_1.SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
|
|
@@ -107,15 +109,17 @@ class SqlPrinter {
|
|
|
107
109
|
return;
|
|
108
110
|
}
|
|
109
111
|
const current = this.linePrinter.getCurrentLine();
|
|
112
|
+
const isCaseContext = this.isCaseContext(token.containerType);
|
|
113
|
+
const nextCaseContextDepth = isCaseContext ? caseContextDepth + 1 : caseContextDepth;
|
|
110
114
|
// Handle different token types
|
|
111
115
|
if (token.type === SqlPrintToken_1.SqlPrintTokenType.keyword) {
|
|
112
|
-
this.handleKeywordToken(token, level);
|
|
116
|
+
this.handleKeywordToken(token, level, parentContainerType, caseContextDepth);
|
|
113
117
|
}
|
|
114
118
|
else if (token.type === SqlPrintToken_1.SqlPrintTokenType.comma) {
|
|
115
119
|
this.handleCommaToken(token, level, parentContainerType);
|
|
116
120
|
}
|
|
117
121
|
else if (token.type === SqlPrintToken_1.SqlPrintTokenType.operator && token.text.toLowerCase() === 'and') {
|
|
118
|
-
this.handleAndOperatorToken(token, level);
|
|
122
|
+
this.handleAndOperatorToken(token, level, parentContainerType, caseContextDepth);
|
|
119
123
|
}
|
|
120
124
|
else if (token.containerType === "JoinClause") {
|
|
121
125
|
this.handleJoinClauseToken(token, level);
|
|
@@ -123,6 +127,8 @@ class SqlPrinter {
|
|
|
123
127
|
else if (token.type === SqlPrintToken_1.SqlPrintTokenType.comment) {
|
|
124
128
|
// Handle comments as regular tokens - let the standard processing handle everything
|
|
125
129
|
if (this.exportComment) {
|
|
130
|
+
// Note: Smart comment processing is handled at SqlPrintTokenParser level
|
|
131
|
+
// via positioned comments system, so we don't need additional processing here
|
|
126
132
|
this.linePrinter.appendText(token.text);
|
|
127
133
|
}
|
|
128
134
|
}
|
|
@@ -152,7 +158,7 @@ class SqlPrinter {
|
|
|
152
158
|
if (token.keywordTokens && token.keywordTokens.length > 0) {
|
|
153
159
|
for (let i = 0; i < token.keywordTokens.length; i++) {
|
|
154
160
|
const keywordToken = token.keywordTokens[i];
|
|
155
|
-
this.appendToken(keywordToken, level, token.containerType);
|
|
161
|
+
this.appendToken(keywordToken, level, token.containerType, nextCaseContextDepth);
|
|
156
162
|
}
|
|
157
163
|
}
|
|
158
164
|
let innerLevel = level;
|
|
@@ -166,7 +172,7 @@ class SqlPrinter {
|
|
|
166
172
|
}
|
|
167
173
|
for (let i = 0; i < token.innerTokens.length; i++) {
|
|
168
174
|
const child = token.innerTokens[i];
|
|
169
|
-
this.appendToken(child, innerLevel, token.containerType);
|
|
175
|
+
this.appendToken(child, innerLevel, token.containerType, nextCaseContextDepth);
|
|
170
176
|
}
|
|
171
177
|
// Exit WITH clause context when we finish processing WithClause container
|
|
172
178
|
if (token.containerType === SqlPrintToken_1.SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
|
|
@@ -183,6 +189,18 @@ class SqlPrinter {
|
|
|
183
189
|
}
|
|
184
190
|
}
|
|
185
191
|
}
|
|
192
|
+
isCaseContext(containerType) {
|
|
193
|
+
switch (containerType) {
|
|
194
|
+
case SqlPrintToken_1.SqlPrintTokenContainerType.CaseExpression:
|
|
195
|
+
case SqlPrintToken_1.SqlPrintTokenContainerType.CaseKeyValuePair:
|
|
196
|
+
case SqlPrintToken_1.SqlPrintTokenContainerType.CaseThenValue:
|
|
197
|
+
case SqlPrintToken_1.SqlPrintTokenContainerType.CaseElseValue:
|
|
198
|
+
case SqlPrintToken_1.SqlPrintTokenContainerType.SwitchCaseArgument:
|
|
199
|
+
return true;
|
|
200
|
+
default:
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
186
204
|
/**
|
|
187
205
|
* Determines if a token should be skipped during printing.
|
|
188
206
|
* Tokens are skipped if they have no content and no inner tokens,
|
|
@@ -205,31 +223,47 @@ class SqlPrinter {
|
|
|
205
223
|
}
|
|
206
224
|
return text;
|
|
207
225
|
}
|
|
208
|
-
handleKeywordToken(token, level) {
|
|
226
|
+
handleKeywordToken(token, level, parentContainerType, caseContextDepth = 0) {
|
|
227
|
+
const lower = token.text.toLowerCase();
|
|
228
|
+
if (lower === 'and' && this.andBreak !== 'none') {
|
|
229
|
+
this.handleAndOperatorToken(token, level, parentContainerType, caseContextDepth);
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
209
232
|
const text = this.applyKeywordCase(token.text);
|
|
233
|
+
if (caseContextDepth > 0) {
|
|
234
|
+
this.linePrinter.appendText(text);
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
210
237
|
this.linePrinter.appendText(text);
|
|
211
238
|
}
|
|
212
239
|
handleCommaToken(token, level, parentContainerType) {
|
|
213
240
|
const text = token.text;
|
|
241
|
+
const isWithinWithClause = parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.WithClause;
|
|
242
|
+
const effectiveCommaBreak = isWithinWithClause ? this.cteCommaBreak : this.commaBreak;
|
|
214
243
|
// Skip comma newlines when inside WITH clause with full-oneline style
|
|
215
244
|
if (this.insideWithClause && this.withClauseStyle === 'full-oneline') {
|
|
216
245
|
this.linePrinter.appendText(text);
|
|
217
246
|
}
|
|
218
247
|
// Special handling for commas in WithClause when withClauseStyle is 'cte-oneline'
|
|
219
|
-
else if (this.withClauseStyle === 'cte-oneline' &&
|
|
248
|
+
else if (this.withClauseStyle === 'cte-oneline' && isWithinWithClause) {
|
|
220
249
|
this.linePrinter.appendText(text);
|
|
221
250
|
this.linePrinter.appendNewline(level);
|
|
222
251
|
}
|
|
223
|
-
else if (
|
|
224
|
-
|
|
252
|
+
else if (effectiveCommaBreak === 'before') {
|
|
253
|
+
const previousCommaBreak = this.linePrinter.commaBreak;
|
|
254
|
+
if (previousCommaBreak !== 'before') {
|
|
255
|
+
this.linePrinter.commaBreak = 'before';
|
|
256
|
+
}
|
|
225
257
|
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
226
258
|
this.linePrinter.appendNewline(level);
|
|
227
259
|
}
|
|
228
260
|
this.linePrinter.appendText(text);
|
|
261
|
+
if (previousCommaBreak !== 'before') {
|
|
262
|
+
this.linePrinter.commaBreak = previousCommaBreak;
|
|
263
|
+
}
|
|
229
264
|
}
|
|
230
|
-
else if (
|
|
265
|
+
else if (effectiveCommaBreak === 'after') {
|
|
231
266
|
this.linePrinter.appendText(text);
|
|
232
|
-
// Skip newline when inside WITH clause with full-oneline style
|
|
233
267
|
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
234
268
|
this.linePrinter.appendNewline(level);
|
|
235
269
|
}
|
|
@@ -238,8 +272,12 @@ class SqlPrinter {
|
|
|
238
272
|
this.linePrinter.appendText(text);
|
|
239
273
|
}
|
|
240
274
|
}
|
|
241
|
-
handleAndOperatorToken(token, level) {
|
|
275
|
+
handleAndOperatorToken(token, level, parentContainerType, caseContextDepth = 0) {
|
|
242
276
|
const text = this.applyKeywordCase(token.text);
|
|
277
|
+
if (caseContextDepth > 0) {
|
|
278
|
+
this.linePrinter.appendText(text);
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
243
281
|
if (this.andBreak === 'before') {
|
|
244
282
|
// Skip newline when inside WITH clause with full-oneline style
|
|
245
283
|
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
@@ -272,6 +310,10 @@ class SqlPrinter {
|
|
|
272
310
|
*/
|
|
273
311
|
handleSpaceToken(token, parentContainerType) {
|
|
274
312
|
if (this.shouldSkipCommentBlockSpace(parentContainerType)) {
|
|
313
|
+
const currentLine = this.linePrinter.getCurrentLine();
|
|
314
|
+
if (currentLine.text !== '' && !currentLine.text.endsWith(' ')) {
|
|
315
|
+
this.linePrinter.appendText(' ');
|
|
316
|
+
}
|
|
275
317
|
return;
|
|
276
318
|
}
|
|
277
319
|
this.linePrinter.appendText(token.text);
|
|
@@ -321,8 +363,9 @@ class SqlPrinter {
|
|
|
321
363
|
handleCteOnelineToken(token, level) {
|
|
322
364
|
const onelinePrinter = this.createCteOnelinePrinter();
|
|
323
365
|
const onelineResult = onelinePrinter.print(token, level);
|
|
324
|
-
|
|
325
|
-
|
|
366
|
+
let cleanedResult = this.cleanDuplicateSpaces(onelineResult);
|
|
367
|
+
cleanedResult = cleanedResult.replace(/\(\s+/g, '(').replace(/\s+\)/g, ' )');
|
|
368
|
+
this.linePrinter.appendText(cleanedResult.trim());
|
|
326
369
|
}
|
|
327
370
|
/**
|
|
328
371
|
* Creates a SqlPrinter instance configured for CTE oneline formatting.
|
|
@@ -333,9 +376,10 @@ class SqlPrinter {
|
|
|
333
376
|
indentSize: 0,
|
|
334
377
|
newline: ' ',
|
|
335
378
|
commaBreak: this.commaBreak,
|
|
379
|
+
cteCommaBreak: this.cteCommaBreak,
|
|
336
380
|
andBreak: this.andBreak,
|
|
337
381
|
keywordCase: this.keywordCase,
|
|
338
|
-
exportComment:
|
|
382
|
+
exportComment: false,
|
|
339
383
|
strictCommentPlacement: this.strictCommentPlacement,
|
|
340
384
|
withClauseStyle: 'standard', // Prevent recursive processing
|
|
341
385
|
});
|
|
@@ -361,6 +405,7 @@ class SqlPrinter {
|
|
|
361
405
|
indentSize: 0,
|
|
362
406
|
newline: ' ', // KEY: Replace all newlines with spaces - this makes everything oneline!
|
|
363
407
|
commaBreak: 'none', // Disable comma-based line breaks
|
|
408
|
+
cteCommaBreak: this.cteCommaBreak,
|
|
364
409
|
andBreak: 'none', // Disable AND/OR-based line breaks
|
|
365
410
|
keywordCase: this.keywordCase,
|
|
366
411
|
exportComment: this.exportComment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlPrinter.js","sourceRoot":"","sources":["../../../src/transformers/SqlPrinter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SqlPrinter.js","sourceRoot":"","sources":["../../../src/transformers/SqlPrinter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,14 @@ import { SqlComponent } from '../models/SqlComponent';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare class CommentEditor {
|
|
7
7
|
/**
|
|
8
|
-
* Add a comment to a SQL component
|
|
8
|
+
* Add a comment to a SQL component using positioned comments system
|
|
9
9
|
* For SelectQuery components, adds to headerComments for query-level comments
|
|
10
|
+
* For other components, adds as 'before' positioned comment
|
|
10
11
|
* @param component The SQL component to add comment to
|
|
11
12
|
* @param comment The comment text to add
|
|
13
|
+
* @param position Optional position for comment ('before' | 'after'), defaults to 'before'
|
|
12
14
|
*/
|
|
13
|
-
static addComment(component: SqlComponent, comment: string): void;
|
|
15
|
+
static addComment(component: SqlComponent, comment: string, position?: 'before' | 'after'): void;
|
|
14
16
|
/**
|
|
15
17
|
* Check if a component implements SelectQuery interface
|
|
16
18
|
* Uses discriminator property for robust type detection
|
|
@@ -21,20 +23,24 @@ export declare class CommentEditor {
|
|
|
21
23
|
/**
|
|
22
24
|
* Edit an existing comment by index
|
|
23
25
|
* For SelectQuery components, edits headerComments
|
|
26
|
+
* For other components, edits positioned comments
|
|
24
27
|
* @param component The SQL component containing the comment
|
|
25
28
|
* @param index The index of the comment to edit (0-based)
|
|
26
29
|
* @param newComment The new comment text
|
|
30
|
+
* @param position Position to edit ('before' | 'after'), defaults to 'before' for non-SelectQuery components
|
|
27
31
|
* @throws Error if index is invalid
|
|
28
32
|
*/
|
|
29
|
-
static editComment(component: SqlComponent, index: number, newComment: string): void;
|
|
33
|
+
static editComment(component: SqlComponent, index: number, newComment: string, position?: 'before' | 'after'): void;
|
|
30
34
|
/**
|
|
31
35
|
* Delete a comment by index
|
|
32
36
|
* For SelectQuery components, deletes from headerComments
|
|
37
|
+
* For other components, deletes from positioned comments
|
|
33
38
|
* @param component The SQL component containing the comment
|
|
34
39
|
* @param index The index of the comment to delete (0-based)
|
|
40
|
+
* @param position Position to delete from ('before' | 'after'), defaults to 'before' for non-SelectQuery components
|
|
35
41
|
* @throws Error if index is invalid
|
|
36
42
|
*/
|
|
37
|
-
static deleteComment(component: SqlComponent, index: number): void;
|
|
43
|
+
static deleteComment(component: SqlComponent, index: number, position?: 'before' | 'after'): void;
|
|
38
44
|
/**
|
|
39
45
|
* Delete all comments from a component
|
|
40
46
|
* @param component The SQL component to clear comments from
|
|
@@ -42,7 +48,8 @@ export declare class CommentEditor {
|
|
|
42
48
|
static deleteAllComments(component: SqlComponent): void;
|
|
43
49
|
/**
|
|
44
50
|
* Get all comments from a component
|
|
45
|
-
* For SelectQuery components, returns headerComments
|
|
51
|
+
* For SelectQuery components, returns headerComments
|
|
52
|
+
* For other components, returns all positioned comments as a flat array
|
|
46
53
|
* @param component The SQL component to get comments from
|
|
47
54
|
* @returns Array of comment strings (empty array if no comments)
|
|
48
55
|
*/
|