rawsql-ts 0.11.36-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.js.map +1 -1
- package/dist/esm/index.min.js +54 -50
- package/dist/esm/index.min.js.map +3 -3
- package/dist/esm/src/index.d.ts +1 -0
- package/dist/esm/src/index.js.map +1 -1
- 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/CTEQueryDecomposer.d.ts +69 -0
- package/dist/esm/src/transformers/CTEQueryDecomposer.js +123 -0
- package/dist/esm/src/transformers/CTEQueryDecomposer.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 +44 -16
- package/dist/esm/src/transformers/SqlFormatter.js +2 -2
- package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/esm/src/transformers/SqlPrinter.d.ts +30 -20
- package/dist/esm/src/transformers/SqlPrinter.js +119 -25
- 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 -50
- package/dist/index.min.js.map +3 -3
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js.map +1 -1
- 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/CTEQueryDecomposer.d.ts +69 -0
- package/dist/src/transformers/CTEQueryDecomposer.js +123 -0
- package/dist/src/transformers/CTEQueryDecomposer.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 +44 -16
- package/dist/src/transformers/SqlFormatter.js +13 -2
- package/dist/src/transformers/SqlFormatter.js.map +1 -1
- package/dist/src/transformers/SqlPrinter.d.ts +30 -20
- package/dist/src/transformers/SqlPrinter.js +119 -25
- 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
|
@@ -59,8 +59,6 @@ export class SelectClauseParser {
|
|
|
59
59
|
}
|
|
60
60
|
else {
|
|
61
61
|
const clause = new SelectClause(items, distinct, hints);
|
|
62
|
-
// Set comments from the SELECT token to the clause
|
|
63
|
-
clause.comments = selectTokenComments;
|
|
64
62
|
return { value: clause, newIndex: idx };
|
|
65
63
|
}
|
|
66
64
|
}
|
|
@@ -89,22 +87,24 @@ export class SelectItemParser {
|
|
|
89
87
|
*/
|
|
90
88
|
static parseItem(lexemes, index) {
|
|
91
89
|
let idx = index;
|
|
90
|
+
// Extract positioned comments from the value token directly
|
|
91
|
+
const valueTokenComments = this.extractValueTokenComments(lexemes, idx);
|
|
92
92
|
const parsedValue = ValueParser.parseFromLexeme(lexemes, idx);
|
|
93
93
|
const value = parsedValue.value;
|
|
94
94
|
idx = parsedValue.newIndex;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
95
|
+
// Parse optional AS keyword and extract comments directly
|
|
96
|
+
const { asComments, newIndex: asIndex } = this.parseAsKeyword(lexemes, idx);
|
|
97
|
+
idx = asIndex;
|
|
99
98
|
if (idx < lexemes.length && (lexemes[idx].type & TokenType.Identifier)) {
|
|
100
99
|
const alias = lexemes[idx].value;
|
|
101
100
|
const aliasComments = lexemes[idx].comments; // Capture comments from alias token
|
|
101
|
+
const aliasPositionedComments = lexemes[idx].positionedComments; // Capture positioned comments from alias token
|
|
102
102
|
idx++;
|
|
103
103
|
const selectItem = new SelectItem(value, alias);
|
|
104
|
-
//
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
// Apply all comments directly to selectItem (no collection then assignment)
|
|
105
|
+
this.applyValueTokenComments(selectItem, valueTokenComments);
|
|
106
|
+
this.applyAsKeywordComments(selectItem, asComments);
|
|
107
|
+
this.applyAliasComments(selectItem, aliasComments, aliasPositionedComments);
|
|
108
108
|
return {
|
|
109
109
|
value: selectItem,
|
|
110
110
|
newIndex: idx,
|
|
@@ -112,16 +112,128 @@ export class SelectItemParser {
|
|
|
112
112
|
}
|
|
113
113
|
else if (value instanceof ColumnReference && value.column.name !== "*") {
|
|
114
114
|
// nameless select item
|
|
115
|
+
const selectItem = new SelectItem(value, value.column.name);
|
|
116
|
+
// Apply value token and AS keyword comments directly
|
|
117
|
+
this.applyValueTokenComments(selectItem, valueTokenComments);
|
|
118
|
+
this.applyAsKeywordComments(selectItem, asComments);
|
|
115
119
|
return {
|
|
116
|
-
value:
|
|
120
|
+
value: selectItem,
|
|
117
121
|
newIndex: idx,
|
|
118
122
|
};
|
|
119
123
|
}
|
|
120
124
|
// nameless select item
|
|
125
|
+
const selectItem = new SelectItem(value);
|
|
126
|
+
// Apply comments directly
|
|
127
|
+
this.applyValueTokenComments(selectItem, valueTokenComments);
|
|
128
|
+
this.applyAsKeywordComments(selectItem, asComments);
|
|
121
129
|
return {
|
|
122
|
-
value:
|
|
130
|
+
value: selectItem,
|
|
123
131
|
newIndex: idx,
|
|
124
132
|
};
|
|
125
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Recursively clear positioned comments from all nested components to prevent duplication
|
|
136
|
+
*/
|
|
137
|
+
static clearPositionedCommentsRecursively(component) {
|
|
138
|
+
if (!component || typeof component !== 'object') {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
// Clear positioned comments from this component
|
|
142
|
+
if ('positionedComments' in component) {
|
|
143
|
+
component.positionedComments = null;
|
|
144
|
+
}
|
|
145
|
+
// Recursively clear from common nested properties
|
|
146
|
+
if (component.left) {
|
|
147
|
+
this.clearPositionedCommentsRecursively(component.left);
|
|
148
|
+
}
|
|
149
|
+
if (component.right) {
|
|
150
|
+
this.clearPositionedCommentsRecursively(component.right);
|
|
151
|
+
}
|
|
152
|
+
if (component.qualifiedName) {
|
|
153
|
+
this.clearPositionedCommentsRecursively(component.qualifiedName);
|
|
154
|
+
}
|
|
155
|
+
if (component.table) {
|
|
156
|
+
this.clearPositionedCommentsRecursively(component.table);
|
|
157
|
+
}
|
|
158
|
+
if (component.name) {
|
|
159
|
+
this.clearPositionedCommentsRecursively(component.name);
|
|
160
|
+
}
|
|
161
|
+
if (component.args && Array.isArray(component.args)) {
|
|
162
|
+
component.args.forEach((arg) => {
|
|
163
|
+
this.clearPositionedCommentsRecursively(arg);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
if (component.value) {
|
|
167
|
+
this.clearPositionedCommentsRecursively(component.value);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// Extract positioned comments from value token (no collection arrays)
|
|
171
|
+
static extractValueTokenComments(lexemes, index) {
|
|
172
|
+
if (index >= lexemes.length) {
|
|
173
|
+
return { positioned: null, legacy: null };
|
|
174
|
+
}
|
|
175
|
+
const token = lexemes[index];
|
|
176
|
+
return {
|
|
177
|
+
positioned: token.positionedComments && token.positionedComments.length > 0 ? token.positionedComments : null,
|
|
178
|
+
legacy: null // Value token legacy comments are not typically used
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
// Parse AS keyword and extract its comments directly
|
|
182
|
+
static parseAsKeyword(lexemes, index) {
|
|
183
|
+
if (index >= lexemes.length || lexemes[index].value !== 'as') {
|
|
184
|
+
return { asComments: { positioned: null, legacy: null }, newIndex: index };
|
|
185
|
+
}
|
|
186
|
+
const asToken = lexemes[index];
|
|
187
|
+
const asComments = {
|
|
188
|
+
positioned: asToken.positionedComments && asToken.positionedComments.length > 0 ? asToken.positionedComments : null,
|
|
189
|
+
legacy: asToken.comments && asToken.comments.length > 0 ? asToken.comments : null
|
|
190
|
+
};
|
|
191
|
+
return { asComments, newIndex: index + 1 };
|
|
192
|
+
}
|
|
193
|
+
// Apply value token comments directly to selectItem
|
|
194
|
+
static applyValueTokenComments(selectItem, valueTokenComments) {
|
|
195
|
+
if (valueTokenComments.positioned) {
|
|
196
|
+
for (const posComment of valueTokenComments.positioned) {
|
|
197
|
+
selectItem.addPositionedComments(posComment.position, posComment.comments);
|
|
198
|
+
}
|
|
199
|
+
this.clearValueTokenComments(selectItem);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// Apply AS keyword comments directly to selectItem
|
|
203
|
+
static applyAsKeywordComments(selectItem, asComments) {
|
|
204
|
+
if (asComments.positioned) {
|
|
205
|
+
selectItem.asKeywordPositionedComments = asComments.positioned;
|
|
206
|
+
}
|
|
207
|
+
else if (asComments.legacy) {
|
|
208
|
+
selectItem.asKeywordComments = asComments.legacy;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// Apply alias comments directly to selectItem
|
|
212
|
+
static applyAliasComments(selectItem, aliasComments, aliasPositionedComments) {
|
|
213
|
+
if (aliasPositionedComments && aliasPositionedComments.length > 0) {
|
|
214
|
+
selectItem.aliasPositionedComments = aliasPositionedComments;
|
|
215
|
+
}
|
|
216
|
+
else if (aliasComments && aliasComments.length > 0) {
|
|
217
|
+
selectItem.aliasComments = aliasComments;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// Clear positioned comments from value to avoid duplication
|
|
221
|
+
static clearValueTokenComments(selectItem) {
|
|
222
|
+
// Clear both positioned and legacy comments from the value to avoid duplication
|
|
223
|
+
if ('positionedComments' in selectItem.value) {
|
|
224
|
+
selectItem.value.positionedComments = null;
|
|
225
|
+
}
|
|
226
|
+
// Also clear positioned comments from nested IdentifierString (in QualifiedName)
|
|
227
|
+
if (selectItem.value.constructor.name === 'ColumnReference') {
|
|
228
|
+
const columnRef = selectItem.value;
|
|
229
|
+
if (columnRef.qualifiedName && columnRef.qualifiedName.name) {
|
|
230
|
+
columnRef.qualifiedName.name.positionedComments = null;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
// Clear positioned comments from BinaryExpression children only to avoid duplication
|
|
234
|
+
if (selectItem.value.constructor.name === 'BinaryExpression') {
|
|
235
|
+
this.clearPositionedCommentsRecursively(selectItem.value);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
126
238
|
}
|
|
127
239
|
//# sourceMappingURL=SelectClauseParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectClauseParser.js","sourceRoot":"","sources":["../../../../src/parsers/SelectClauseParser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SelectClauseParser.js","sourceRoot":"","sources":["../../../../src/parsers/SelectClauseParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,11 +37,23 @@ export declare class SelectQueryParser {
|
|
|
37
37
|
* @param target Target query to receive headerComments
|
|
38
38
|
*/
|
|
39
39
|
private static transferHeaderComments;
|
|
40
|
+
private static extractUnionTokenComments;
|
|
40
41
|
static parseFromLexeme(lexemes: Lexeme[], index: number): {
|
|
41
42
|
value: SelectQuery;
|
|
42
43
|
newIndex: number;
|
|
43
44
|
};
|
|
44
45
|
private static parseSimpleSelectQuery;
|
|
46
|
+
private static parseWithClauseAndComments;
|
|
47
|
+
private static parseAllClauses;
|
|
48
|
+
private static parseOptionalClause;
|
|
49
|
+
private static collectHeaderComments;
|
|
50
|
+
private static collectWithTokenHeaderComments;
|
|
51
|
+
private static collectMainSelectPrefixComments;
|
|
52
|
+
private static collectBetweenClauseComments;
|
|
53
|
+
private static findMainSelectIndex;
|
|
54
|
+
private static findMainSelectToken;
|
|
55
|
+
private static collectSelectTokenComments;
|
|
56
|
+
private static applyCommentsToQuery;
|
|
45
57
|
private static parseValuesQuery;
|
|
46
58
|
/**
|
|
47
59
|
* Get the CTE name at the specified cursor position.
|