rawsql-ts 0.11.11-beta → 0.11.12-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 +12 -12
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/models/SqlPrintToken.d.ts +6 -4
- package/dist/esm/src/models/SqlPrintToken.js +2 -0
- package/dist/esm/src/models/SqlPrintToken.js.map +1 -1
- package/dist/esm/src/parsers/FunctionExpressionParser.js +5 -4
- package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/SelectQueryParser.js +3 -2
- package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +40 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +103 -8
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/parsers/ValueParser.js +4 -4
- package/dist/esm/src/parsers/ValueParser.js.map +1 -1
- package/dist/esm/src/reporting/models/DataFlowGraph.d.ts +3 -1
- package/dist/esm/src/reporting/models/DataFlowGraph.js +5 -27
- package/dist/esm/src/reporting/models/DataFlowGraph.js.map +1 -1
- package/dist/esm/src/reporting/models/DataFlowNode.d.ts +8 -2
- package/dist/esm/src/reporting/models/DataFlowNode.js +34 -10
- package/dist/esm/src/reporting/models/DataFlowNode.js.map +1 -1
- package/dist/esm/src/reporting/services/ProcessHandler.d.ts +6 -42
- package/dist/esm/src/reporting/services/ProcessHandler.js +9 -164
- package/dist/esm/src/reporting/services/ProcessHandler.js.map +1 -1
- package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js +11 -1
- package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js.map +1 -1
- package/dist/esm/src/transformers/SqlPrinter.d.ts +47 -2
- package/dist/esm/src/transformers/SqlPrinter.js +138 -51
- package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +10 -10
- package/dist/index.min.js.map +4 -4
- package/dist/src/models/SqlPrintToken.d.ts +6 -4
- package/dist/src/models/SqlPrintToken.js +2 -0
- package/dist/src/models/SqlPrintToken.js.map +1 -1
- package/dist/src/parsers/FunctionExpressionParser.js +5 -4
- package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/src/parsers/SelectQueryParser.js +3 -2
- package/dist/src/parsers/SelectQueryParser.js.map +1 -1
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +40 -0
- package/dist/src/parsers/SqlPrintTokenParser.js +103 -8
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/parsers/ValueParser.js +4 -4
- package/dist/src/parsers/ValueParser.js.map +1 -1
- package/dist/src/reporting/models/DataFlowGraph.d.ts +3 -1
- package/dist/src/reporting/models/DataFlowGraph.js +5 -27
- package/dist/src/reporting/models/DataFlowGraph.js.map +1 -1
- package/dist/src/reporting/models/DataFlowNode.d.ts +8 -2
- package/dist/src/reporting/models/DataFlowNode.js +34 -10
- package/dist/src/reporting/models/DataFlowNode.js.map +1 -1
- package/dist/src/reporting/services/ProcessHandler.d.ts +6 -42
- package/dist/src/reporting/services/ProcessHandler.js +9 -164
- package/dist/src/reporting/services/ProcessHandler.js.map +1 -1
- package/dist/src/transformers/QueryFlowDiagramGenerator.js +11 -1
- package/dist/src/transformers/QueryFlowDiagramGenerator.js.map +1 -1
- package/dist/src/transformers/SqlPrinter.d.ts +47 -2
- package/dist/src/transformers/SqlPrinter.js +138 -51
- package/dist/src/transformers/SqlPrinter.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -29,6 +29,8 @@ class SqlPrinter {
|
|
|
29
29
|
*/
|
|
30
30
|
constructor(options) {
|
|
31
31
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
32
|
+
/** Track whether we are currently inside a WITH clause for full-oneline formatting */
|
|
33
|
+
this.insideWithClause = false;
|
|
32
34
|
this.indentChar = (_a = options === null || options === void 0 ? void 0 : options.indentChar) !== null && _a !== void 0 ? _a : '';
|
|
33
35
|
this.indentSize = (_b = options === null || options === void 0 ? void 0 : options.indentSize) !== null && _b !== void 0 ? _b : 0;
|
|
34
36
|
// The default newline character is set to a blank space (' ') to enable one-liner formatting.
|
|
@@ -61,10 +63,13 @@ class SqlPrinter {
|
|
|
61
63
|
SqlPrintToken_1.SqlPrintTokenContainerType.CaseKeyValuePair,
|
|
62
64
|
SqlPrintToken_1.SqlPrintTokenContainerType.CaseThenValue,
|
|
63
65
|
SqlPrintToken_1.SqlPrintTokenContainerType.ElseClause,
|
|
64
|
-
SqlPrintToken_1.SqlPrintTokenContainerType.CaseElseValue
|
|
66
|
+
SqlPrintToken_1.SqlPrintTokenContainerType.CaseElseValue,
|
|
67
|
+
SqlPrintToken_1.SqlPrintTokenContainerType.SimpleSelectQuery
|
|
68
|
+
// Note: CommentBlock is intentionally excluded from indentIncrementContainers
|
|
69
|
+
// because it serves as a grouping mechanism without affecting indentation.
|
|
65
70
|
// CaseExpression, SwitchCaseArgument, CaseKeyValuePair, and ElseClause
|
|
66
|
-
// are not included by default to maintain backward compatibility with tests
|
|
67
|
-
//SqlPrintTokenContainerType.CommonTable
|
|
71
|
+
// are not included by default to maintain backward compatibility with tests.
|
|
72
|
+
// SqlPrintTokenContainerType.CommonTable is also excluded by default.
|
|
68
73
|
]);
|
|
69
74
|
}
|
|
70
75
|
/**
|
|
@@ -79,13 +84,19 @@ class SqlPrinter {
|
|
|
79
84
|
print(token, level = 0) {
|
|
80
85
|
// initialize
|
|
81
86
|
this.linePrinter = new LinePrinter_1.LinePrinter(this.indentChar, this.indentSize, this.newline);
|
|
87
|
+
this.insideWithClause = false; // Reset WITH clause context
|
|
82
88
|
if (this.linePrinter.lines.length > 0 && level !== this.linePrinter.lines[0].level) {
|
|
83
89
|
this.linePrinter.lines[0].level = level;
|
|
84
90
|
}
|
|
85
|
-
this.appendToken(token, level);
|
|
91
|
+
this.appendToken(token, level, undefined);
|
|
86
92
|
return this.linePrinter.print();
|
|
87
93
|
}
|
|
88
94
|
appendToken(token, level, parentContainerType) {
|
|
95
|
+
// Track WITH clause context for full-oneline formatting
|
|
96
|
+
const wasInsideWithClause = this.insideWithClause;
|
|
97
|
+
if (token.containerType === SqlPrintToken_1.SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
|
|
98
|
+
this.insideWithClause = true;
|
|
99
|
+
}
|
|
89
100
|
if (this.shouldSkipToken(token)) {
|
|
90
101
|
return;
|
|
91
102
|
}
|
|
@@ -104,16 +115,21 @@ class SqlPrinter {
|
|
|
104
115
|
this.handleJoinClauseToken(token, level);
|
|
105
116
|
}
|
|
106
117
|
else if (token.type === SqlPrintToken_1.SqlPrintTokenType.comment) {
|
|
107
|
-
|
|
118
|
+
// Handle comments as regular tokens - let the standard processing handle everything
|
|
119
|
+
if (this.exportComment) {
|
|
120
|
+
this.linePrinter.appendText(token.text);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else if (token.type === SqlPrintToken_1.SqlPrintTokenType.space) {
|
|
124
|
+
this.handleSpaceToken(token, parentContainerType);
|
|
125
|
+
}
|
|
126
|
+
else if (token.type === SqlPrintToken_1.SqlPrintTokenType.commentNewline) {
|
|
127
|
+
this.handleCommentNewlineToken(token, level);
|
|
108
128
|
}
|
|
109
129
|
else if (token.containerType === SqlPrintToken_1.SqlPrintTokenContainerType.CommonTable && this.withClauseStyle === 'cte-oneline') {
|
|
110
130
|
this.handleCteOnelineToken(token, level);
|
|
111
131
|
return; // Return early to avoid processing innerTokens
|
|
112
132
|
}
|
|
113
|
-
else if (token.containerType === SqlPrintToken_1.SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
|
|
114
|
-
this.handleWithClauseOnelineToken(token, level);
|
|
115
|
-
return; // Return early to avoid processing innerTokens
|
|
116
|
-
}
|
|
117
133
|
else {
|
|
118
134
|
this.linePrinter.appendText(token.text);
|
|
119
135
|
}
|
|
@@ -126,9 +142,9 @@ class SqlPrinter {
|
|
|
126
142
|
}
|
|
127
143
|
let innerLevel = level;
|
|
128
144
|
// indent level up
|
|
129
|
-
if (this.
|
|
130
|
-
// Skip newline for
|
|
131
|
-
if (!(
|
|
145
|
+
if (!this.isOnelineMode() && current.text !== '' && this.indentIncrementContainers.has(token.containerType)) {
|
|
146
|
+
// Skip newline for any container when inside WITH clause with full-oneline style
|
|
147
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
132
148
|
innerLevel++;
|
|
133
149
|
this.linePrinter.appendNewline(innerLevel);
|
|
134
150
|
}
|
|
@@ -137,15 +153,32 @@ class SqlPrinter {
|
|
|
137
153
|
const child = token.innerTokens[i];
|
|
138
154
|
this.appendToken(child, innerLevel, token.containerType);
|
|
139
155
|
}
|
|
156
|
+
// Exit WITH clause context when we finish processing WithClause container
|
|
157
|
+
if (token.containerType === SqlPrintToken_1.SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
|
|
158
|
+
this.insideWithClause = false;
|
|
159
|
+
// Add newline after WITH clause to separate it from main SELECT
|
|
160
|
+
this.linePrinter.appendNewline(level);
|
|
161
|
+
return; // Return early to avoid additional newline below
|
|
162
|
+
}
|
|
140
163
|
// indent level down
|
|
141
164
|
if (innerLevel !== level) {
|
|
142
|
-
// Skip newline for
|
|
143
|
-
if (!(
|
|
165
|
+
// Skip newline for any container when inside WITH clause with full-oneline style
|
|
166
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
144
167
|
this.linePrinter.appendNewline(level);
|
|
145
168
|
}
|
|
146
169
|
}
|
|
147
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Determines if a token should be skipped during printing.
|
|
173
|
+
* Tokens are skipped if they have no content and no inner tokens,
|
|
174
|
+
* except for special token types that have semantic meaning despite empty text.
|
|
175
|
+
*/
|
|
148
176
|
shouldSkipToken(token) {
|
|
177
|
+
// Special tokens with semantic meaning should never be skipped
|
|
178
|
+
if (token.type === SqlPrintToken_1.SqlPrintTokenType.commentNewline) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
// Skip tokens that have no content and no children
|
|
149
182
|
return (!token.innerTokens || token.innerTokens.length === 0) && token.text === '';
|
|
150
183
|
}
|
|
151
184
|
applyKeywordCase(text) {
|
|
@@ -163,18 +196,28 @@ class SqlPrinter {
|
|
|
163
196
|
}
|
|
164
197
|
handleCommaToken(token, level, parentContainerType) {
|
|
165
198
|
const text = token.text;
|
|
199
|
+
// Skip comma newlines when inside WITH clause with full-oneline style
|
|
200
|
+
if (this.insideWithClause && this.withClauseStyle === 'full-oneline') {
|
|
201
|
+
this.linePrinter.appendText(text);
|
|
202
|
+
}
|
|
166
203
|
// Special handling for commas in WithClause when withClauseStyle is 'cte-oneline'
|
|
167
|
-
if (this.withClauseStyle === 'cte-oneline' && parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.WithClause) {
|
|
204
|
+
else if (this.withClauseStyle === 'cte-oneline' && parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.WithClause) {
|
|
168
205
|
this.linePrinter.appendText(text);
|
|
169
206
|
this.linePrinter.appendNewline(level);
|
|
170
207
|
}
|
|
171
208
|
else if (this.commaBreak === 'before') {
|
|
172
|
-
|
|
209
|
+
// Skip newline when inside WITH clause with full-oneline style
|
|
210
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
211
|
+
this.linePrinter.appendNewline(level);
|
|
212
|
+
}
|
|
173
213
|
this.linePrinter.appendText(text);
|
|
174
214
|
}
|
|
175
215
|
else if (this.commaBreak === 'after') {
|
|
176
216
|
this.linePrinter.appendText(text);
|
|
177
|
-
|
|
217
|
+
// Skip newline when inside WITH clause with full-oneline style
|
|
218
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
219
|
+
this.linePrinter.appendNewline(level);
|
|
220
|
+
}
|
|
178
221
|
}
|
|
179
222
|
else {
|
|
180
223
|
this.linePrinter.appendText(text);
|
|
@@ -183,12 +226,18 @@ class SqlPrinter {
|
|
|
183
226
|
handleAndOperatorToken(token, level) {
|
|
184
227
|
const text = this.applyKeywordCase(token.text);
|
|
185
228
|
if (this.andBreak === 'before') {
|
|
186
|
-
|
|
229
|
+
// Skip newline when inside WITH clause with full-oneline style
|
|
230
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
231
|
+
this.linePrinter.appendNewline(level);
|
|
232
|
+
}
|
|
187
233
|
this.linePrinter.appendText(text);
|
|
188
234
|
}
|
|
189
235
|
else if (this.andBreak === 'after') {
|
|
190
236
|
this.linePrinter.appendText(text);
|
|
191
|
-
|
|
237
|
+
// Skip newline when inside WITH clause with full-oneline style
|
|
238
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
239
|
+
this.linePrinter.appendNewline(level);
|
|
240
|
+
}
|
|
192
241
|
}
|
|
193
242
|
else {
|
|
194
243
|
this.linePrinter.appendText(text);
|
|
@@ -196,54 +245,92 @@ class SqlPrinter {
|
|
|
196
245
|
}
|
|
197
246
|
handleJoinClauseToken(token, level) {
|
|
198
247
|
const text = this.applyKeywordCase(token.text);
|
|
199
|
-
// before join clause, add newline
|
|
200
|
-
this.
|
|
248
|
+
// before join clause, add newline (skip when inside WITH clause with full-oneline style)
|
|
249
|
+
if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
|
|
250
|
+
this.linePrinter.appendNewline(level);
|
|
251
|
+
}
|
|
201
252
|
this.linePrinter.appendText(text);
|
|
202
253
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
254
|
+
/**
|
|
255
|
+
* Handles space tokens with context-aware filtering.
|
|
256
|
+
* Skips spaces in CommentBlocks when in specific CTE modes to prevent duplication.
|
|
257
|
+
*/
|
|
258
|
+
handleSpaceToken(token, parentContainerType) {
|
|
259
|
+
if (this.shouldSkipCommentBlockSpace(parentContainerType)) {
|
|
260
|
+
return;
|
|
209
261
|
}
|
|
262
|
+
this.linePrinter.appendText(token.text);
|
|
210
263
|
}
|
|
264
|
+
/**
|
|
265
|
+
* Determines whether to skip space tokens in CommentBlocks.
|
|
266
|
+
* Prevents duplicate spacing in CTE full-oneline mode only.
|
|
267
|
+
*/
|
|
268
|
+
shouldSkipCommentBlockSpace(parentContainerType) {
|
|
269
|
+
return parentContainerType === SqlPrintToken_1.SqlPrintTokenContainerType.CommentBlock &&
|
|
270
|
+
this.insideWithClause &&
|
|
271
|
+
this.withClauseStyle === 'full-oneline';
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Handles commentNewline tokens with conditional newline behavior.
|
|
275
|
+
* In multiline mode (newline !== ' '), adds a newline after comments.
|
|
276
|
+
* In oneliner mode (newline === ' '), does nothing to keep comments on same line.
|
|
277
|
+
* Skips newlines in CTE modes (full-oneline, cte-oneline) to maintain one-line format.
|
|
278
|
+
*/
|
|
279
|
+
handleCommentNewlineToken(token, level) {
|
|
280
|
+
if (this.shouldSkipCommentNewline()) {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (!this.isOnelineMode()) {
|
|
284
|
+
this.linePrinter.appendNewline(level);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Determines whether to skip commentNewline tokens.
|
|
289
|
+
* Skips in CTE modes to maintain one-line formatting.
|
|
290
|
+
*/
|
|
291
|
+
shouldSkipCommentNewline() {
|
|
292
|
+
return (this.insideWithClause && this.withClauseStyle === 'full-oneline') ||
|
|
293
|
+
this.withClauseStyle === 'cte-oneline';
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Determines if the printer is in oneliner mode.
|
|
297
|
+
* Oneliner mode uses single spaces instead of actual newlines.
|
|
298
|
+
*/
|
|
299
|
+
isOnelineMode() {
|
|
300
|
+
return this.newline === ' ';
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Handles CTE tokens with one-liner formatting.
|
|
304
|
+
* Creates a nested SqlPrinter instance for proper CTE oneline formatting.
|
|
305
|
+
*/
|
|
211
306
|
handleCteOnelineToken(token, level) {
|
|
212
|
-
|
|
213
|
-
const onelinePrinter = new SqlPrinter({
|
|
214
|
-
indentChar: '',
|
|
215
|
-
indentSize: 0,
|
|
216
|
-
newline: ' ',
|
|
217
|
-
commaBreak: this.commaBreak,
|
|
218
|
-
andBreak: this.andBreak,
|
|
219
|
-
keywordCase: this.keywordCase,
|
|
220
|
-
exportComment: this.exportComment,
|
|
221
|
-
strictCommentPlacement: this.strictCommentPlacement,
|
|
222
|
-
withClauseStyle: 'standard', // Prevent recursive processing
|
|
223
|
-
});
|
|
307
|
+
const onelinePrinter = this.createCteOnelinePrinter();
|
|
224
308
|
const onelineResult = onelinePrinter.print(token, level);
|
|
225
|
-
this.
|
|
309
|
+
const cleanedResult = this.cleanDuplicateSpaces(onelineResult);
|
|
310
|
+
this.linePrinter.appendText(cleanedResult);
|
|
226
311
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
312
|
+
/**
|
|
313
|
+
* Creates a SqlPrinter instance configured for CTE oneline formatting.
|
|
314
|
+
*/
|
|
315
|
+
createCteOnelinePrinter() {
|
|
316
|
+
return new SqlPrinter({
|
|
231
317
|
indentChar: '',
|
|
232
318
|
indentSize: 0,
|
|
233
319
|
newline: ' ',
|
|
234
|
-
commaBreak:
|
|
320
|
+
commaBreak: this.commaBreak,
|
|
235
321
|
andBreak: this.andBreak,
|
|
236
322
|
keywordCase: this.keywordCase,
|
|
237
323
|
exportComment: this.exportComment,
|
|
238
324
|
strictCommentPlacement: this.strictCommentPlacement,
|
|
239
325
|
withClauseStyle: 'standard', // Prevent recursive processing
|
|
240
|
-
indentIncrementContainerTypes: [], // Disable all indentation
|
|
241
326
|
});
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Removes duplicate consecutive spaces while preserving single spaces.
|
|
330
|
+
* Simple and safe space normalization for CTE oneline mode.
|
|
331
|
+
*/
|
|
332
|
+
cleanDuplicateSpaces(text) {
|
|
333
|
+
return text.replace(/\s{2,}/g, ' ');
|
|
247
334
|
}
|
|
248
335
|
}
|
|
249
336
|
exports.SqlPrinter = SqlPrinter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlPrinter.js","sourceRoot":"","sources":["../../../src/transformers/SqlPrinter.ts"],"names":[],"mappings":";;;AAAA,2DAAuG;AACvG,+CAA6E;AA6C7E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"SqlPrinter.js","sourceRoot":"","sources":["../../../src/transformers/SqlPrinter.ts"],"names":[],"mappings":"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"}
|