rawsql-ts 0.11.4-beta → 0.11.6-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 +735 -735
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +14 -14
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/index.js +1 -1
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/models/ValueComponent.js +2 -1
- package/dist/esm/src/models/ValueComponent.js.map +1 -1
- package/dist/esm/src/parsers/FunctionExpressionParser.js +47 -4
- package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +28 -6
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/tokenReaders/CommandTokenReader.js +2 -0
- package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/esm/src/transformers/SchemaCollector.js +76 -9
- package/dist/esm/src/transformers/SchemaCollector.js.map +1 -1
- package/dist/esm/src/utils/CommentEditor.js +190 -0
- package/dist/esm/src/utils/CommentEditor.js.map +1 -0
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/esm/types/src/index.d.ts +1 -2
- package/dist/esm/types/src/models/ValueComponent.d.ts +2 -1
- package/dist/esm/types/src/parsers/FunctionExpressionParser.d.ts +7 -0
- package/dist/esm/types/src/parsers/SqlPrintTokenParser.d.ts +1 -0
- package/dist/esm/types/src/transformers/SchemaCollector.d.ts +6 -1
- package/dist/esm/types/src/utils/CommentEditor.d.ts +72 -0
- package/dist/index.min.js +15 -15
- package/dist/index.min.js.map +4 -4
- package/dist/src/index.d.ts +1 -2
- package/dist/src/index.js +2 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/ValueComponent.d.ts +2 -1
- package/dist/src/models/ValueComponent.js +2 -1
- package/dist/src/models/ValueComponent.js.map +1 -1
- package/dist/src/parsers/FunctionExpressionParser.d.ts +7 -0
- package/dist/src/parsers/FunctionExpressionParser.js +47 -4
- package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/src/parsers/SqlPrintTokenParser.d.ts +1 -0
- package/dist/src/parsers/SqlPrintTokenParser.js +28 -6
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/tokenReaders/CommandTokenReader.js +2 -0
- package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/src/transformers/SchemaCollector.d.ts +6 -1
- package/dist/src/transformers/SchemaCollector.js +76 -9
- package/dist/src/transformers/SchemaCollector.js.map +1 -1
- package/dist/src/utils/CommentEditor.d.ts +72 -0
- package/dist/src/utils/CommentEditor.js +194 -0
- package/dist/src/utils/CommentEditor.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/esm/src/transformers/UnifiedJsonMapping.js +0 -57
- package/dist/esm/src/transformers/UnifiedJsonMapping.js.map +0 -1
- package/dist/esm/types/src/transformers/UnifiedJsonMapping.d.ts +0 -53
- package/dist/src/transformers/UnifiedJsonMapping.d.ts +0 -53
- package/dist/src/transformers/UnifiedJsonMapping.js +0 -60
- package/dist/src/transformers/UnifiedJsonMapping.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/CommandTokenReader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CommandTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/CommandTokenReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,13 @@ export declare class TableSchema {
|
|
|
10
10
|
*/
|
|
11
11
|
export declare class SchemaCollector implements SqlComponentVisitor<void> {
|
|
12
12
|
private tableColumnResolver;
|
|
13
|
+
private allowWildcardWithoutResolver;
|
|
13
14
|
private handlers;
|
|
14
15
|
private tableSchemas;
|
|
15
16
|
private visitedNodes;
|
|
16
17
|
private commonTables;
|
|
17
18
|
private running;
|
|
18
|
-
constructor(tableColumnResolver?: TableColumnResolver | null);
|
|
19
|
+
constructor(tableColumnResolver?: TableColumnResolver | null, allowWildcardWithoutResolver?: boolean);
|
|
19
20
|
/**
|
|
20
21
|
* Collects schema information (table names and column names) from a SQL query structure.
|
|
21
22
|
* This method ensures that the collected schema information is unique and sorted.
|
|
@@ -54,5 +55,9 @@ export declare class SchemaCollector implements SqlComponentVisitor<void> {
|
|
|
54
55
|
private handleTableSource;
|
|
55
56
|
private visitSimpleSelectQuery;
|
|
56
57
|
private visitBinarySelectQuery;
|
|
58
|
+
/**
|
|
59
|
+
* Extract column references from the SELECT clause only
|
|
60
|
+
*/
|
|
61
|
+
private getSelectClauseColumns;
|
|
57
62
|
private processCollectTableSchema;
|
|
58
63
|
}
|
|
@@ -18,8 +18,9 @@ exports.TableSchema = TableSchema;
|
|
|
18
18
|
* A visitor that collects schema information (table names and column names) from a SQL query structure.
|
|
19
19
|
*/
|
|
20
20
|
class SchemaCollector {
|
|
21
|
-
constructor(tableColumnResolver = null) {
|
|
21
|
+
constructor(tableColumnResolver = null, allowWildcardWithoutResolver = false) {
|
|
22
22
|
this.tableColumnResolver = tableColumnResolver;
|
|
23
|
+
this.allowWildcardWithoutResolver = allowWildcardWithoutResolver;
|
|
23
24
|
this.tableSchemas = [];
|
|
24
25
|
this.visitedNodes = new Set();
|
|
25
26
|
this.commonTables = [];
|
|
@@ -150,12 +151,61 @@ class SchemaCollector {
|
|
|
150
151
|
// Collect columns used in the query
|
|
151
152
|
const columnCollector = new SelectableColumnCollector_1.SelectableColumnCollector(this.tableColumnResolver, true, SelectableColumnCollector_1.DuplicateDetectionMode.FullName);
|
|
152
153
|
const columns = columnCollector.collect(query);
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
154
|
+
let queryColumns;
|
|
155
|
+
// Only filter JOIN condition columns when allowWildcardWithoutResolver is true
|
|
156
|
+
// This preserves backward compatibility for existing tests
|
|
157
|
+
if (this.allowWildcardWithoutResolver) {
|
|
158
|
+
// Filter to include only columns that are actually selected, not those used in JOIN conditions
|
|
159
|
+
const selectColumns = this.getSelectClauseColumns(query);
|
|
160
|
+
queryColumns = columns.filter((column) => column.value instanceof ValueComponent_1.ColumnReference)
|
|
161
|
+
.map(column => column.value)
|
|
162
|
+
.filter(columnRef => {
|
|
163
|
+
// Only include columns that are either:
|
|
164
|
+
// 1. Explicitly mentioned in SELECT clause (not wildcards)
|
|
165
|
+
// 2. Part of wildcard expansion from SELECT clause (only if we have a resolver)
|
|
166
|
+
const tableName = columnRef.getNamespace();
|
|
167
|
+
const columnName = columnRef.column.name;
|
|
168
|
+
return selectColumns.some(selectCol => {
|
|
169
|
+
if (selectCol.value instanceof ValueComponent_1.ColumnReference) {
|
|
170
|
+
const selectTableName = selectCol.value.getNamespace();
|
|
171
|
+
const selectColumnName = selectCol.value.column.name;
|
|
172
|
+
// Exact match for explicit columns
|
|
173
|
+
if (selectTableName === tableName && selectColumnName === columnName) {
|
|
174
|
+
return true;
|
|
175
|
+
}
|
|
176
|
+
// Wildcard match (table.* or *) - only include if we have a resolver
|
|
177
|
+
if (selectColumnName === "*") {
|
|
178
|
+
// If allowWildcardWithoutResolver is true and no resolver, exclude wildcard expansions
|
|
179
|
+
if (this.allowWildcardWithoutResolver && this.tableColumnResolver === null) {
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
// Full wildcard (*) matches all tables
|
|
183
|
+
if (selectTableName === "") {
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
// Table wildcard (table.*) matches specific table
|
|
187
|
+
if (selectTableName === tableName) {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return false;
|
|
193
|
+
});
|
|
194
|
+
})
|
|
195
|
+
.map(columnRef => ({
|
|
196
|
+
table: columnRef.getNamespace(),
|
|
197
|
+
column: columnRef.column.name
|
|
198
|
+
}));
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
// Original behavior: include all columns including JOIN conditions
|
|
202
|
+
queryColumns = columns.filter((column) => column.value instanceof ValueComponent_1.ColumnReference)
|
|
203
|
+
.map(column => column.value)
|
|
204
|
+
.map(columnRef => ({
|
|
205
|
+
table: columnRef.getNamespace(),
|
|
206
|
+
column: columnRef.column.name
|
|
207
|
+
}));
|
|
208
|
+
}
|
|
159
209
|
// Throw an error if there are columns without table names in queries with joins
|
|
160
210
|
if (query.fromClause.joins !== null && query.fromClause.joins.length > 0) {
|
|
161
211
|
const columnsWithoutTable = queryColumns.filter((columnRef) => columnRef.table === "").map((columnRef) => columnRef.column);
|
|
@@ -187,14 +237,31 @@ class SchemaCollector {
|
|
|
187
237
|
this.visitNode(query.left);
|
|
188
238
|
this.visitNode(query.right);
|
|
189
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* Extract column references from the SELECT clause only
|
|
242
|
+
*/
|
|
243
|
+
getSelectClauseColumns(query) {
|
|
244
|
+
if (!query.selectClause) {
|
|
245
|
+
return [];
|
|
246
|
+
}
|
|
247
|
+
const selectColumns = [];
|
|
248
|
+
for (const item of query.selectClause.items) {
|
|
249
|
+
if (item.value instanceof ValueComponent_1.ColumnReference) {
|
|
250
|
+
const columnName = item.value.column.name;
|
|
251
|
+
selectColumns.push({ name: columnName, value: item.value });
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return selectColumns;
|
|
255
|
+
}
|
|
190
256
|
processCollectTableSchema(tableName, tableAlias, queryColumns, includeUnnamed = false) {
|
|
191
|
-
//
|
|
257
|
+
// Check if wildcard is present and handle based on configuration
|
|
192
258
|
if (this.tableColumnResolver === null) {
|
|
193
259
|
const hasWildcard = queryColumns
|
|
194
260
|
.filter((columnRef) => columnRef.table === tableAlias || (includeUnnamed && columnRef.table === ""))
|
|
195
261
|
.filter((columnRef) => columnRef.column === "*")
|
|
196
262
|
.length > 0;
|
|
197
|
-
if (
|
|
263
|
+
// Throw error if wildcard is found and allowWildcardWithoutResolver is false (default behavior)
|
|
264
|
+
if (hasWildcard && !this.allowWildcardWithoutResolver) {
|
|
198
265
|
const errorMessage = tableName
|
|
199
266
|
? `Wildcard (*) is used. A TableColumnResolver is required to resolve wildcards. Target table: ${tableName}`
|
|
200
267
|
: "Wildcard (*) is used. A TableColumnResolver is required to resolve wildcards.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaCollector.js","sourceRoot":"","sources":["../../../src/transformers/SchemaCollector.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"SchemaCollector.js","sourceRoot":"","sources":["../../../src/transformers/SchemaCollector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { SqlComponent } from '../models/SqlComponent';
|
|
2
|
+
/**
|
|
3
|
+
* Utility class for editing comments on SQL components.
|
|
4
|
+
* Provides functions to add, edit, delete, and search comments in SQL AST.
|
|
5
|
+
*/
|
|
6
|
+
export declare class CommentEditor {
|
|
7
|
+
/**
|
|
8
|
+
* Add a comment to a SQL component
|
|
9
|
+
* @param component The SQL component to add comment to
|
|
10
|
+
* @param comment The comment text to add
|
|
11
|
+
*/
|
|
12
|
+
static addComment(component: SqlComponent, comment: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Edit an existing comment by index
|
|
15
|
+
* @param component The SQL component containing the comment
|
|
16
|
+
* @param index The index of the comment to edit (0-based)
|
|
17
|
+
* @param newComment The new comment text
|
|
18
|
+
* @throws Error if index is invalid
|
|
19
|
+
*/
|
|
20
|
+
static editComment(component: SqlComponent, index: number, newComment: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Delete a comment by index
|
|
23
|
+
* @param component The SQL component containing the comment
|
|
24
|
+
* @param index The index of the comment to delete (0-based)
|
|
25
|
+
* @throws Error if index is invalid
|
|
26
|
+
*/
|
|
27
|
+
static deleteComment(component: SqlComponent, index: number): void;
|
|
28
|
+
/**
|
|
29
|
+
* Delete all comments from a component
|
|
30
|
+
* @param component The SQL component to clear comments from
|
|
31
|
+
*/
|
|
32
|
+
static deleteAllComments(component: SqlComponent): void;
|
|
33
|
+
/**
|
|
34
|
+
* Get all comments from a component
|
|
35
|
+
* @param component The SQL component to get comments from
|
|
36
|
+
* @returns Array of comment strings (empty array if no comments)
|
|
37
|
+
*/
|
|
38
|
+
static getComments(component: SqlComponent): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Find all components in the AST that have comments containing the search text
|
|
41
|
+
* @param root The root SQL component to search from
|
|
42
|
+
* @param searchText The text to search for in comments
|
|
43
|
+
* @param caseSensitive Whether the search should be case-sensitive (default: false)
|
|
44
|
+
* @returns Array of components that have matching comments
|
|
45
|
+
*/
|
|
46
|
+
static findComponentsWithComment(root: SqlComponent, searchText: string, caseSensitive?: boolean): SqlComponent[];
|
|
47
|
+
/**
|
|
48
|
+
* Replace all occurrences of a text in comments across the entire AST
|
|
49
|
+
* @param root The root SQL component to search and replace in
|
|
50
|
+
* @param searchText The text to search for
|
|
51
|
+
* @param replaceText The text to replace with
|
|
52
|
+
* @param caseSensitive Whether the search should be case-sensitive (default: false)
|
|
53
|
+
* @returns Number of replacements made
|
|
54
|
+
*/
|
|
55
|
+
static replaceInComments(root: SqlComponent, searchText: string, replaceText: string, caseSensitive?: boolean): number;
|
|
56
|
+
/**
|
|
57
|
+
* Count total number of comments in the AST
|
|
58
|
+
* @param root The root SQL component to count comments in
|
|
59
|
+
* @returns Total number of comments
|
|
60
|
+
*/
|
|
61
|
+
static countComments(root: SqlComponent): number;
|
|
62
|
+
/**
|
|
63
|
+
* Get all comments from the entire AST as a flat array with their source components
|
|
64
|
+
* @param root The root SQL component to extract comments from
|
|
65
|
+
* @returns Array of objects containing comment text and the component they belong to
|
|
66
|
+
*/
|
|
67
|
+
static getAllComments(root: SqlComponent): {
|
|
68
|
+
comment: string;
|
|
69
|
+
component: SqlComponent;
|
|
70
|
+
index: number;
|
|
71
|
+
}[];
|
|
72
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommentEditor = void 0;
|
|
4
|
+
const SqlComponent_1 = require("../models/SqlComponent");
|
|
5
|
+
/**
|
|
6
|
+
* Utility class for editing comments on SQL components.
|
|
7
|
+
* Provides functions to add, edit, delete, and search comments in SQL AST.
|
|
8
|
+
*/
|
|
9
|
+
class CommentEditor {
|
|
10
|
+
/**
|
|
11
|
+
* Add a comment to a SQL component
|
|
12
|
+
* @param component The SQL component to add comment to
|
|
13
|
+
* @param comment The comment text to add
|
|
14
|
+
*/
|
|
15
|
+
static addComment(component, comment) {
|
|
16
|
+
if (!component.comments) {
|
|
17
|
+
component.comments = [];
|
|
18
|
+
}
|
|
19
|
+
component.comments.push(comment);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Edit an existing comment by index
|
|
23
|
+
* @param component The SQL component containing the comment
|
|
24
|
+
* @param index The index of the comment to edit (0-based)
|
|
25
|
+
* @param newComment The new comment text
|
|
26
|
+
* @throws Error if index is invalid
|
|
27
|
+
*/
|
|
28
|
+
static editComment(component, index, newComment) {
|
|
29
|
+
var _a;
|
|
30
|
+
if (!component.comments || index < 0 || index >= component.comments.length) {
|
|
31
|
+
throw new Error(`Invalid comment index: ${index}. Component has ${((_a = component.comments) === null || _a === void 0 ? void 0 : _a.length) || 0} comments.`);
|
|
32
|
+
}
|
|
33
|
+
component.comments[index] = newComment;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Delete a comment by index
|
|
37
|
+
* @param component The SQL component containing the comment
|
|
38
|
+
* @param index The index of the comment to delete (0-based)
|
|
39
|
+
* @throws Error if index is invalid
|
|
40
|
+
*/
|
|
41
|
+
static deleteComment(component, index) {
|
|
42
|
+
var _a;
|
|
43
|
+
if (!component.comments || index < 0 || index >= component.comments.length) {
|
|
44
|
+
throw new Error(`Invalid comment index: ${index}. Component has ${((_a = component.comments) === null || _a === void 0 ? void 0 : _a.length) || 0} comments.`);
|
|
45
|
+
}
|
|
46
|
+
component.comments.splice(index, 1);
|
|
47
|
+
if (component.comments.length === 0) {
|
|
48
|
+
component.comments = null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Delete all comments from a component
|
|
53
|
+
* @param component The SQL component to clear comments from
|
|
54
|
+
*/
|
|
55
|
+
static deleteAllComments(component) {
|
|
56
|
+
component.comments = null;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get all comments from a component
|
|
60
|
+
* @param component The SQL component to get comments from
|
|
61
|
+
* @returns Array of comment strings (empty array if no comments)
|
|
62
|
+
*/
|
|
63
|
+
static getComments(component) {
|
|
64
|
+
return component.comments || [];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Find all components in the AST that have comments containing the search text
|
|
68
|
+
* @param root The root SQL component to search from
|
|
69
|
+
* @param searchText The text to search for in comments
|
|
70
|
+
* @param caseSensitive Whether the search should be case-sensitive (default: false)
|
|
71
|
+
* @returns Array of components that have matching comments
|
|
72
|
+
*/
|
|
73
|
+
static findComponentsWithComment(root, searchText, caseSensitive = false) {
|
|
74
|
+
const results = [];
|
|
75
|
+
const searchTerm = caseSensitive ? searchText : searchText.toLowerCase();
|
|
76
|
+
const traverse = (component) => {
|
|
77
|
+
if (component && component instanceof SqlComponent_1.SqlComponent) {
|
|
78
|
+
if (component.comments && component.comments.some(c => {
|
|
79
|
+
const commentText = caseSensitive ? c : c.toLowerCase();
|
|
80
|
+
return commentText.includes(searchTerm);
|
|
81
|
+
})) {
|
|
82
|
+
results.push(component);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Traverse all properties recursively
|
|
86
|
+
for (const key in component) {
|
|
87
|
+
if (component[key] && typeof component[key] === 'object') {
|
|
88
|
+
if (Array.isArray(component[key])) {
|
|
89
|
+
component[key].forEach(traverse);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
traverse(component[key]);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
traverse(root);
|
|
98
|
+
return results;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Replace all occurrences of a text in comments across the entire AST
|
|
102
|
+
* @param root The root SQL component to search and replace in
|
|
103
|
+
* @param searchText The text to search for
|
|
104
|
+
* @param replaceText The text to replace with
|
|
105
|
+
* @param caseSensitive Whether the search should be case-sensitive (default: false)
|
|
106
|
+
* @returns Number of replacements made
|
|
107
|
+
*/
|
|
108
|
+
static replaceInComments(root, searchText, replaceText, caseSensitive = false) {
|
|
109
|
+
let replacementCount = 0;
|
|
110
|
+
const traverse = (component) => {
|
|
111
|
+
if (component && component instanceof SqlComponent_1.SqlComponent && component.comments) {
|
|
112
|
+
for (let i = 0; i < component.comments.length; i++) {
|
|
113
|
+
const originalComment = component.comments[i];
|
|
114
|
+
const flags = caseSensitive ? 'g' : 'gi';
|
|
115
|
+
const regex = new RegExp(searchText.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), flags);
|
|
116
|
+
const newComment = originalComment.replace(regex, replaceText);
|
|
117
|
+
if (newComment !== originalComment) {
|
|
118
|
+
component.comments[i] = newComment;
|
|
119
|
+
replacementCount++;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Traverse all properties recursively
|
|
124
|
+
for (const key in component) {
|
|
125
|
+
if (component[key] && typeof component[key] === 'object') {
|
|
126
|
+
if (Array.isArray(component[key])) {
|
|
127
|
+
component[key].forEach(traverse);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
traverse(component[key]);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
traverse(root);
|
|
136
|
+
return replacementCount;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Count total number of comments in the AST
|
|
140
|
+
* @param root The root SQL component to count comments in
|
|
141
|
+
* @returns Total number of comments
|
|
142
|
+
*/
|
|
143
|
+
static countComments(root) {
|
|
144
|
+
let count = 0;
|
|
145
|
+
const traverse = (component) => {
|
|
146
|
+
if (component && component instanceof SqlComponent_1.SqlComponent && component.comments) {
|
|
147
|
+
count += component.comments.length;
|
|
148
|
+
}
|
|
149
|
+
// Traverse all properties recursively
|
|
150
|
+
for (const key in component) {
|
|
151
|
+
if (component[key] && typeof component[key] === 'object') {
|
|
152
|
+
if (Array.isArray(component[key])) {
|
|
153
|
+
component[key].forEach(traverse);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
traverse(component[key]);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
traverse(root);
|
|
162
|
+
return count;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Get all comments from the entire AST as a flat array with their source components
|
|
166
|
+
* @param root The root SQL component to extract comments from
|
|
167
|
+
* @returns Array of objects containing comment text and the component they belong to
|
|
168
|
+
*/
|
|
169
|
+
static getAllComments(root) {
|
|
170
|
+
const results = [];
|
|
171
|
+
const traverse = (component) => {
|
|
172
|
+
if (component && component instanceof SqlComponent_1.SqlComponent && component.comments) {
|
|
173
|
+
component.comments.forEach((comment, index) => {
|
|
174
|
+
results.push({ comment, component, index });
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
// Traverse all properties recursively
|
|
178
|
+
for (const key in component) {
|
|
179
|
+
if (component[key] && typeof component[key] === 'object') {
|
|
180
|
+
if (Array.isArray(component[key])) {
|
|
181
|
+
component[key].forEach(traverse);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
traverse(component[key]);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
traverse(root);
|
|
190
|
+
return results;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
exports.CommentEditor = CommentEditor;
|
|
194
|
+
//# sourceMappingURL=CommentEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentEditor.js","sourceRoot":"","sources":["../../../src/utils/CommentEditor.ts"],"names":[],"mappings":"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"}
|