bridgelist 1.0.3 → 1.0.4
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/analyzers/ast-analyzer.js +166 -264
- package/dist/analyzers/ast-analyzer.js.map +1 -1
- package/docs/example-mapping.html +1170 -1032
- package/package.json +1 -1
|
@@ -64,10 +64,11 @@ function analyzeMethod(filePath, className, methodName) {
|
|
|
64
64
|
return result;
|
|
65
65
|
}
|
|
66
66
|
function extractMappings(methodNode) {
|
|
67
|
+
// Initialize results array
|
|
67
68
|
const results = [];
|
|
68
|
-
//
|
|
69
|
-
const
|
|
70
|
-
//
|
|
69
|
+
// Store all variable declarations with their initializers
|
|
70
|
+
const variableDeclarations = new Map();
|
|
71
|
+
// Identify all parameters of the method
|
|
71
72
|
const parameterNames = new Set();
|
|
72
73
|
if (methodNode.parameters) {
|
|
73
74
|
methodNode.parameters.forEach(param => {
|
|
@@ -76,285 +77,186 @@ function analyzeMethod(filePath, className, methodName) {
|
|
|
76
77
|
}
|
|
77
78
|
});
|
|
78
79
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
let current = n.expression;
|
|
90
|
-
let baseName = "";
|
|
91
|
-
// navigate through PropertyAccessExpression recursively
|
|
92
|
-
while (typescript_1.default.isPropertyAccessExpression(current)) {
|
|
93
|
-
partialPaths.add(current.getText());
|
|
94
|
-
current = current.expression;
|
|
95
|
-
}
|
|
96
|
-
// now current is the base variable
|
|
97
|
-
if (typescript_1.default.isIdentifier(current)) {
|
|
98
|
-
baseName = current.getText();
|
|
99
|
-
}
|
|
100
|
-
// verify if base variable is a parameter or this
|
|
101
|
-
const isSourceObject = parameterNames.has(baseName) || baseName === "this";
|
|
102
|
-
// if base variable is a parameter or this, save PropertyAccessExpression
|
|
103
|
-
if (isSourceObject && typescript_1.default.isIdentifier(n.name)) {
|
|
104
|
-
allPropertyAccesses.add(fullText);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// Eckige Klammern-Zugriff: obj['property'] oder obj[variable]
|
|
108
|
-
else if (typescript_1.default.isElementAccessExpression(n)) {
|
|
109
|
-
const fullText = n.getText();
|
|
110
|
-
let current = n.expression;
|
|
111
|
-
let baseName = "";
|
|
112
|
-
// Navigiere durch verschachtelte PropertyAccessExpressions
|
|
113
|
-
while (typescript_1.default.isPropertyAccessExpression(current)) {
|
|
114
|
-
partialPaths.add(current.getText());
|
|
115
|
-
current = current.expression;
|
|
116
|
-
}
|
|
117
|
-
// Wenn wir bei der Basis-Variable angelangt sind
|
|
118
|
-
if (typescript_1.default.isIdentifier(current)) {
|
|
119
|
-
baseName = current.getText();
|
|
120
|
-
}
|
|
121
|
-
// Überprüfe, ob die Basis-Variable ein Parameter oder 'this' ist
|
|
122
|
-
const isSourceObject = parameterNames.has(baseName) || baseName === "this";
|
|
123
|
-
// Wenn es ein Element-Zugriff auf eine gültige Quellvariable ist
|
|
124
|
-
if (isSourceObject) {
|
|
125
|
-
// Versuche, den String-Literal-Wert zu extrahieren (bei obj['property'])
|
|
126
|
-
if (typescript_1.default.isStringLiteral(n.argumentExpression)) {
|
|
127
|
-
const propertyName = n.argumentExpression.text;
|
|
128
|
-
// Erstelle eine lesbare Darstellung für die Dokumentation
|
|
129
|
-
const readableForm = `${baseName}.properties['${propertyName}']`;
|
|
130
|
-
allPropertyAccesses.add(readableForm);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
// Andernfalls verwende den Originaltext (bei dynamischen Zugriffen)
|
|
134
|
-
allPropertyAccesses.add(fullText);
|
|
135
|
-
}
|
|
80
|
+
// Keep track of decorator nodes to exclude them from analysis
|
|
81
|
+
const decoratorNodes = new Set();
|
|
82
|
+
if (methodNode.modifiers) {
|
|
83
|
+
methodNode.modifiers.forEach(modifier => {
|
|
84
|
+
if (typescript_1.default.isDecorator(modifier)) {
|
|
85
|
+
decoratorNodes.add(modifier);
|
|
86
|
+
// Also add the decorator's children to the exclusion set
|
|
87
|
+
function addAllChildren(node) {
|
|
88
|
+
decoratorNodes.add(node);
|
|
89
|
+
typescript_1.default.forEachChild(node, addAllChildren);
|
|
136
90
|
}
|
|
137
|
-
|
|
138
|
-
typescript_1.default.forEachChild(n, visit);
|
|
139
|
-
}
|
|
140
|
-
visit(node);
|
|
141
|
-
// keep only PropertyAccessExpressions with a full path
|
|
142
|
-
allPropertyAccesses.forEach(path => {
|
|
143
|
-
if (!partialPaths.has(path)) {
|
|
144
|
-
sourceFields.add(path);
|
|
91
|
+
typescript_1.default.forEachChild(modifier, addAllChildren);
|
|
145
92
|
}
|
|
146
93
|
});
|
|
147
|
-
return Array.from(sourceFields);
|
|
148
94
|
}
|
|
149
|
-
//
|
|
150
|
-
function
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
95
|
+
// Check if a node is part of a decorator
|
|
96
|
+
function isPartOfDecorator(node) {
|
|
97
|
+
return decoratorNodes.has(node);
|
|
98
|
+
}
|
|
99
|
+
// First pass: collect all variable declarations
|
|
100
|
+
function collectVariables(node) {
|
|
101
|
+
// Skip decorator nodes
|
|
102
|
+
if (isPartOfDecorator(node)) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
// Handle variable declarations
|
|
106
|
+
if (typescript_1.default.isVariableDeclaration(node) && typescript_1.default.isIdentifier(node.name) && node.initializer) {
|
|
107
|
+
variableDeclarations.set(node.name.getText(), node.initializer);
|
|
108
|
+
}
|
|
109
|
+
typescript_1.default.forEachChild(node, collectVariables);
|
|
110
|
+
}
|
|
111
|
+
// Second pass: analyze object property assignments and mapping relations
|
|
112
|
+
function analyzePropertyAssignments(node) {
|
|
113
|
+
// Skip decorator nodes
|
|
114
|
+
if (isPartOfDecorator(node)) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
// Handle object literal properties
|
|
118
|
+
if (typescript_1.default.isPropertyAssignment(node) && node.parent && typescript_1.default.isObjectLiteralExpression(node.parent)) {
|
|
119
|
+
const targetField = node.name.getText();
|
|
120
|
+
const initializer = node.initializer;
|
|
121
|
+
// Find the variable that this object belongs to
|
|
122
|
+
let containerVar = findContainingVariable(node.parent);
|
|
123
|
+
// Process different types of initializers
|
|
124
|
+
if (typescript_1.default.isElementAccessExpression(initializer)) {
|
|
125
|
+
// Handle element access (e.g., obj[key])
|
|
126
|
+
processElementAccess(initializer, targetField, containerVar);
|
|
127
|
+
}
|
|
128
|
+
else if (typescript_1.default.isPropertyAccessExpression(initializer)) {
|
|
129
|
+
// Handle property access (e.g., obj.prop)
|
|
130
|
+
results.push({
|
|
131
|
+
targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
|
|
132
|
+
sourceField: initializer.getText()
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
else if (typescript_1.default.isCallExpression(initializer)) {
|
|
136
|
+
// Handle function calls
|
|
137
|
+
const sourceFields = findPropertyAccesses(initializer);
|
|
138
|
+
results.push({
|
|
139
|
+
targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
|
|
140
|
+
sourceField: sourceFields.length > 0 ? sourceFields.join(', ') : initializer.getText(),
|
|
141
|
+
transformation: initializer.expression.getText()
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
else if (typescript_1.default.isObjectLiteralExpression(initializer)) {
|
|
145
|
+
// For nested objects, we'll handle them recursively
|
|
146
|
+
// Child properties will be analyzed in subsequent recursive calls
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Handle other expressions or literals
|
|
150
|
+
const sourceFields = findPropertyAccesses(initializer);
|
|
151
|
+
if (sourceFields.length > 0) {
|
|
152
|
+
results.push({
|
|
153
|
+
targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
|
|
154
|
+
sourceField: sourceFields.join(', '),
|
|
155
|
+
transformation: "Expression"
|
|
156
|
+
});
|
|
180
157
|
}
|
|
181
158
|
else {
|
|
182
|
-
//
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
189
|
-
else if (typescript_1.default.isCallExpression(initializer)) {
|
|
190
|
-
// find all PropertyAccessExpressions in the arguments of the function call
|
|
191
|
-
const sourceFields = initializer.arguments.flatMap(arg => findPropertyAccesses(arg));
|
|
192
|
-
nestedResults.push({
|
|
193
|
-
targetField: fieldPath,
|
|
194
|
-
sourceField: sourceFields.length > 0 ? sourceFields.join(', ') : initializer.arguments.map(arg => arg.getText()).join(', '),
|
|
195
|
-
transformation: initializer.expression.getText()
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
const sourceFields = findPropertyAccesses(initializer);
|
|
200
|
-
if (sourceFields.length > 0) {
|
|
201
|
-
nestedResults.push({
|
|
202
|
-
targetField: fieldPath,
|
|
203
|
-
sourceField: sourceFields.join(', '),
|
|
204
|
-
transformation: initializer.kind !== typescript_1.default.SyntaxKind.StringLiteral &&
|
|
205
|
-
initializer.kind !== typescript_1.default.SyntaxKind.NumericLiteral &&
|
|
206
|
-
initializer.kind !== typescript_1.default.SyntaxKind.TrueKeyword &&
|
|
207
|
-
initializer.kind !== typescript_1.default.SyntaxKind.FalseKeyword ?
|
|
208
|
-
'Transformed' : 'Direct mapping'
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
nestedResults.push({
|
|
213
|
-
targetField: fieldPath,
|
|
214
|
-
sourceField: 'Constant value',
|
|
215
|
-
transformation: initializer.getText()
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
}
|
|
159
|
+
// Constant values
|
|
160
|
+
results.push({
|
|
161
|
+
targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
|
|
162
|
+
sourceField: "Constant value",
|
|
163
|
+
transformation: initializer.getText()
|
|
164
|
+
});
|
|
219
165
|
}
|
|
220
166
|
}
|
|
167
|
+
}
|
|
168
|
+
typescript_1.default.forEachChild(node, analyzePropertyAssignments);
|
|
169
|
+
}
|
|
170
|
+
// Helper to find the variable an object belongs to
|
|
171
|
+
function findContainingVariable(objectLiteral) {
|
|
172
|
+
let result;
|
|
173
|
+
variableDeclarations.forEach((value, key) => {
|
|
174
|
+
if (value === objectLiteral) {
|
|
175
|
+
result = key;
|
|
176
|
+
}
|
|
221
177
|
});
|
|
222
|
-
return
|
|
178
|
+
return result;
|
|
223
179
|
}
|
|
224
|
-
//
|
|
225
|
-
function
|
|
226
|
-
|
|
227
|
-
if (typescript_1.default.
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
180
|
+
// Helper to process element access expressions
|
|
181
|
+
function processElementAccess(expr, targetField, containerVar) {
|
|
182
|
+
const objExpr = expr.expression;
|
|
183
|
+
if (typescript_1.default.isPropertyAccessExpression(objExpr) &&
|
|
184
|
+
objExpr.expression &&
|
|
185
|
+
typescript_1.default.isIdentifier(objExpr.expression) &&
|
|
186
|
+
parameterNames.has(objExpr.expression.getText())) {
|
|
187
|
+
// Handle dynamic property access with string concatenation
|
|
188
|
+
if (typescript_1.default.isBinaryExpression(expr.argumentExpression) &&
|
|
189
|
+
expr.argumentExpression.operatorToken.kind === typescript_1.default.SyntaxKind.PlusToken &&
|
|
190
|
+
typescript_1.default.isPropertyAccessExpression(expr.argumentExpression.left) &&
|
|
191
|
+
typescript_1.default.isStringLiteral(expr.argumentExpression.right)) {
|
|
192
|
+
const prefix = expr.argumentExpression.left.getText();
|
|
193
|
+
const suffix = expr.argumentExpression.right.text;
|
|
194
|
+
results.push({
|
|
195
|
+
targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
|
|
196
|
+
sourceField: `Dynamic access: ${objExpr.getText()}[${prefix} + '${suffix}']`,
|
|
197
|
+
transformation: "Dynamic property mapping"
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
// Handle direct string literal access
|
|
201
|
+
else if (typescript_1.default.isStringLiteral(expr.argumentExpression)) {
|
|
202
|
+
results.push({
|
|
203
|
+
targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
|
|
204
|
+
sourceField: `${objExpr.getText()}['${expr.argumentExpression.text}']`
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
// Handle other dynamic access
|
|
208
|
+
else {
|
|
209
|
+
results.push({
|
|
210
|
+
targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
|
|
211
|
+
sourceField: `Dynamic access: ${expr.getText()}`,
|
|
212
|
+
transformation: "Dynamic property mapping"
|
|
213
|
+
});
|
|
214
|
+
}
|
|
235
215
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
216
|
+
}
|
|
217
|
+
// Find all property accesses in an expression
|
|
218
|
+
function findPropertyAccesses(node) {
|
|
219
|
+
const sourceFields = new Set();
|
|
220
|
+
function visit(n) {
|
|
221
|
+
// Skip decorator nodes
|
|
222
|
+
if (isPartOfDecorator(n)) {
|
|
223
|
+
return;
|
|
243
224
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
225
|
+
if (typescript_1.default.isPropertyAccessExpression(n) &&
|
|
226
|
+
n.expression &&
|
|
227
|
+
typescript_1.default.isIdentifier(n.expression) &&
|
|
228
|
+
parameterNames.has(n.expression.getText())) {
|
|
229
|
+
sourceFields.add(n.getText());
|
|
230
|
+
}
|
|
231
|
+
else if (typescript_1.default.isElementAccessExpression(n) &&
|
|
232
|
+
n.expression &&
|
|
233
|
+
typescript_1.default.isPropertyAccessExpression(n.expression) &&
|
|
234
|
+
n.expression.expression &&
|
|
235
|
+
typescript_1.default.isIdentifier(n.expression.expression) &&
|
|
236
|
+
parameterNames.has(n.expression.expression.getText())) {
|
|
237
|
+
if (typescript_1.default.isStringLiteral(n.argumentExpression)) {
|
|
238
|
+
sourceFields.add(`${n.expression.getText()}['${n.argumentExpression.text}']`);
|
|
253
239
|
}
|
|
254
|
-
else if (typescript_1.default.
|
|
255
|
-
|
|
240
|
+
else if (typescript_1.default.isBinaryExpression(n.argumentExpression) &&
|
|
241
|
+
n.argumentExpression.operatorToken.kind === typescript_1.default.SyntaxKind.PlusToken &&
|
|
242
|
+
typescript_1.default.isPropertyAccessExpression(n.argumentExpression.left) &&
|
|
243
|
+
typescript_1.default.isStringLiteral(n.argumentExpression.right)) {
|
|
244
|
+
const prefix = n.argumentExpression.left.getText();
|
|
245
|
+
const suffix = n.argumentExpression.right.text;
|
|
246
|
+
sourceFields.add(`${n.expression.getText()}[${prefix} + '${suffix}']`);
|
|
256
247
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
else if (typescript_1.default.isObjectLiteralExpression(expression)) {
|
|
260
|
-
objectLiteral = expression;
|
|
261
|
-
}
|
|
262
|
-
else if (typescript_1.default.isIdentifier(expression)) {
|
|
263
|
-
const variableName = expression.getText();
|
|
264
|
-
const varObjectLiteral = objectVariables.get(variableName);
|
|
265
|
-
if (varObjectLiteral) {
|
|
266
|
-
objectLiteral = varObjectLiteral;
|
|
248
|
+
else {
|
|
249
|
+
sourceFields.add(n.getText());
|
|
267
250
|
}
|
|
268
251
|
}
|
|
269
|
-
|
|
270
|
-
if (objectLiteral) {
|
|
271
|
-
// analyze all properties in the object literal
|
|
272
|
-
objectLiteral.properties.forEach(prop => {
|
|
273
|
-
// im Hauptteil der visit-Funktion, bei der Analyse der Property-Initialisierungen
|
|
274
|
-
if (typescript_1.default.isPropertyAssignment(prop)) {
|
|
275
|
-
const targetField = prop.name.getText();
|
|
276
|
-
const initializer = prop.initializer;
|
|
277
|
-
// simple PropertyAccessExpression
|
|
278
|
-
if (typescript_1.default.isPropertyAccessExpression(initializer)) {
|
|
279
|
-
results.push({
|
|
280
|
-
targetField,
|
|
281
|
-
sourceField: initializer.getText()
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
// Element-Zugriff: obj['property']
|
|
285
|
-
else if (typescript_1.default.isElementAccessExpression(initializer)) {
|
|
286
|
-
const expression = initializer.expression;
|
|
287
|
-
let baseName = "";
|
|
288
|
-
// Finde den Basis-Variablennamen
|
|
289
|
-
if (typescript_1.default.isPropertyAccessExpression(expression)) {
|
|
290
|
-
const baseExp = expression.expression;
|
|
291
|
-
if (typescript_1.default.isIdentifier(baseExp)) {
|
|
292
|
-
baseName = baseExp.getText();
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
else if (typescript_1.default.isIdentifier(expression)) {
|
|
296
|
-
baseName = expression.getText();
|
|
297
|
-
}
|
|
298
|
-
// Nur hinzufügen, wenn es ein Parameter oder 'this' ist
|
|
299
|
-
if (parameterNames.has(baseName) || baseName === "this") {
|
|
300
|
-
let sourceFieldText = initializer.getText();
|
|
301
|
-
// Versuche eine lesbarere Form zu erstellen
|
|
302
|
-
if (typescript_1.default.isStringLiteral(initializer.argumentExpression)) {
|
|
303
|
-
const propertyName = initializer.argumentExpression.text;
|
|
304
|
-
sourceFieldText = `${baseName}.properties['${propertyName}']`;
|
|
305
|
-
}
|
|
306
|
-
results.push({
|
|
307
|
-
targetField,
|
|
308
|
-
sourceField: sourceFieldText
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
// complex case: FunctionCallExpression
|
|
313
|
-
else if (typescript_1.default.isCallExpression(initializer)) {
|
|
314
|
-
// find all PropertyAccessExpressions in the arguments of the function call
|
|
315
|
-
const sourceFields = initializer.arguments.flatMap(arg => findPropertyAccesses(arg));
|
|
316
|
-
results.push({
|
|
317
|
-
targetField,
|
|
318
|
-
sourceField: sourceFields.length > 0 ? sourceFields.join(', ') : initializer.arguments.map(arg => arg.getText()).join(', '),
|
|
319
|
-
transformation: initializer.expression.getText()
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
// complex case: nested ObjectLiteralExpression
|
|
323
|
-
else if (typescript_1.default.isObjectLiteralExpression(initializer)) {
|
|
324
|
-
// extract all nested mappings from the nested object literal
|
|
325
|
-
const nestedMappings = extractNestedProperties(initializer, targetField);
|
|
326
|
-
results.push(...nestedMappings);
|
|
327
|
-
}
|
|
328
|
-
// other cases: constant value or transformation
|
|
329
|
-
else {
|
|
330
|
-
const sourceFields = findPropertyAccesses(initializer);
|
|
331
|
-
if (sourceFields.length > 0) {
|
|
332
|
-
results.push({
|
|
333
|
-
targetField,
|
|
334
|
-
sourceField: sourceFields.join(', '),
|
|
335
|
-
transformation: initializer.kind !== typescript_1.default.SyntaxKind.StringLiteral &&
|
|
336
|
-
initializer.kind !== typescript_1.default.SyntaxKind.NumericLiteral &&
|
|
337
|
-
initializer.kind !== typescript_1.default.SyntaxKind.TrueKeyword &&
|
|
338
|
-
initializer.kind !== typescript_1.default.SyntaxKind.FalseKeyword ?
|
|
339
|
-
'Transformed' : 'Direct mapping'
|
|
340
|
-
});
|
|
341
|
-
}
|
|
342
|
-
else {
|
|
343
|
-
results.push({
|
|
344
|
-
targetField,
|
|
345
|
-
sourceField: 'Constant value',
|
|
346
|
-
transformation: initializer.getText()
|
|
347
|
-
});
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
});
|
|
352
|
-
}
|
|
252
|
+
typescript_1.default.forEachChild(n, visit);
|
|
353
253
|
}
|
|
354
|
-
|
|
355
|
-
|
|
254
|
+
visit(node);
|
|
255
|
+
return Array.from(sourceFields);
|
|
356
256
|
}
|
|
357
|
-
|
|
257
|
+
// Run our analysis passes
|
|
258
|
+
collectVariables(methodNode);
|
|
259
|
+
analyzePropertyAssignments(methodNode);
|
|
358
260
|
return results;
|
|
359
261
|
}
|
|
360
262
|
// find method in AST and extract mappings
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast-analyzer.js","sourceRoot":"","sources":["../../src/analyzers/ast-analyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ast-analyzer.js","sourceRoot":"","sources":["../../src/analyzers/ast-analyzer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,sCAwQC;AAtRD,4DAA4B;AAC5B,uCAAyB;AACzB,2CAA6B;AAS7B;;GAEG;AACH,SAAgB,aAAa,CAAC,QAAgB,EAAE,SAAiB,EAAE,UAAkB;IACjF,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEtD,MAAM,UAAU,GAAG,oBAAE,CAAC,gBAAgB,CAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACvB,UAAU,EACV,oBAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,CACP,CAAC;IAEF,SAAS,UAAU,CAAC,IAAa;QAC7B,IACI,oBAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,UAAU;YAClC,IAAI,CAAC,MAAM;YACX,oBAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,EAC1C,CAAC;YACC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,MAAwC,CAAC;QAC7C,oBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,SAAS,eAAe,CAAC,UAAgC;QACrD,2BAA2B;QAC3B,MAAM,OAAO,GAAsB,EAAE,CAAC;QAEtC,0DAA0D;QAC1D,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAmB,CAAC;QAExD,wCAAwC;QACxC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YACxB,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClC,IAAI,KAAK,CAAC,IAAI,IAAI,oBAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5C,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,8DAA8D;QAC9D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAW,CAAC;QAC1C,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACvB,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACpC,IAAI,oBAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC7B,yDAAyD;oBACzD,SAAS,cAAc,CAAC,IAAa;wBACjC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACzB,oBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;oBAC1C,CAAC;oBACD,oBAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAC9C,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,yCAAyC;QACzC,SAAS,iBAAiB,CAAC,IAAa;YACpC,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,gDAAgD;QAChD,SAAS,gBAAgB,CAAC,IAAa;YACnC,uBAAuB;YACvB,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO;YACX,CAAC;YAED,+BAA+B;YAC/B,IAAI,oBAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,oBAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnF,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACpE,CAAC;YAED,oBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC5C,CAAC;QAED,yEAAyE;QACzE,SAAS,0BAA0B,CAAC,IAAa;YAC7C,uBAAuB;YACvB,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO;YACX,CAAC;YAED,mCAAmC;YACnC,IAAI,oBAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,oBAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5F,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;gBAErC,gDAAgD;gBAChD,IAAI,YAAY,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEvD,0CAA0C;gBAC1C,IAAI,oBAAE,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC5C,yCAAyC;oBACzC,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBACjE,CAAC;qBACI,IAAI,oBAAE,CAAC,0BAA0B,CAAC,WAAW,CAAC,EAAE,CAAC;oBAClD,0CAA0C;oBAC1C,OAAO,CAAC,IAAI,CAAC;wBACT,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW;wBAC1E,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE;qBACrC,CAAC,CAAC;gBACP,CAAC;qBACI,IAAI,oBAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;oBACxC,wBAAwB;oBACxB,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;oBACvD,OAAO,CAAC,IAAI,CAAC;wBACT,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW;wBAC1E,WAAW,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE;wBACtF,cAAc,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE;qBACnD,CAAC,CAAC;gBACP,CAAC;qBACI,IAAI,oBAAE,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;oBACjD,oDAAoD;oBACpD,kEAAkE;gBACtE,CAAC;qBACI,CAAC;oBACF,uCAAuC;oBACvC,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;oBACvD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,OAAO,CAAC,IAAI,CAAC;4BACT,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW;4BAC1E,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;4BACpC,cAAc,EAAE,YAAY;yBAC/B,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACJ,kBAAkB;wBAClB,OAAO,CAAC,IAAI,CAAC;4BACT,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW;4BAC1E,WAAW,EAAE,gBAAgB;4BAC7B,cAAc,EAAE,WAAW,CAAC,OAAO,EAAE;yBACxC,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;YACL,CAAC;YAED,oBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;QACtD,CAAC;QAED,mDAAmD;QACnD,SAAS,sBAAsB,CAAC,aAAyC;YACrE,IAAI,MAA0B,CAAC;YAE/B,oBAAoB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACxC,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;oBAC1B,MAAM,GAAG,GAAG,CAAC;gBACjB,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,+CAA+C;QAC/C,SAAS,oBAAoB,CAAC,IAAgC,EAAE,WAAmB,EAAE,YAAqB;YACtG,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;YAEhC,IAAI,oBAAE,CAAC,0BAA0B,CAAC,OAAO,CAAC;gBACtC,OAAO,CAAC,UAAU;gBAClB,oBAAE,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC;gBACnC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAEnD,2DAA2D;gBAC3D,IAAI,oBAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC;oBAC9C,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,SAAS;oBACtE,oBAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAC3D,oBAAE,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAEpD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;oBAElD,OAAO,CAAC,IAAI,CAAC;wBACT,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW;wBAC1E,WAAW,EAAE,mBAAmB,OAAO,CAAC,OAAO,EAAE,IAAI,MAAM,OAAO,MAAM,IAAI;wBAC5E,cAAc,EAAE,0BAA0B;qBAC7C,CAAC,CAAC;gBACP,CAAC;gBACD,sCAAsC;qBACjC,IAAI,oBAAE,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACnD,OAAO,CAAC,IAAI,CAAC;wBACT,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW;wBAC1E,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI;qBACzE,CAAC,CAAC;gBACP,CAAC;gBACD,8BAA8B;qBACzB,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC;wBACT,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW;wBAC1E,WAAW,EAAE,mBAAmB,IAAI,CAAC,OAAO,EAAE,EAAE;wBAChD,cAAc,EAAE,0BAA0B;qBAC7C,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,8CAA8C;QAC9C,SAAS,oBAAoB,CAAC,IAAa;YACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;YAEvC,SAAS,KAAK,CAAC,CAAU;gBACrB,uBAAuB;gBACvB,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvB,OAAO;gBACX,CAAC;gBAED,IAAI,oBAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC;oBAChC,CAAC,CAAC,UAAU;oBACZ,oBAAE,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC7B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBAE7C,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClC,CAAC;qBACI,IAAI,oBAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;oBACpC,CAAC,CAAC,UAAU;oBACZ,oBAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC3C,CAAC,CAAC,UAAU,CAAC,UAAU;oBACvB,oBAAE,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;oBACxC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBAExD,IAAI,oBAAE,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC;wBAC3C,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,CAAC;oBAClF,CAAC;yBACI,IAAI,oBAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;wBAChD,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,SAAS;wBACnE,oBAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC;wBACxD,oBAAE,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAEjD,MAAM,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACnD,MAAM,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;wBAC/C,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,MAAM,OAAO,MAAM,IAAI,CAAC,CAAC;oBAC3E,CAAC;yBACI,CAAC;wBACF,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;gBAED,oBAAE,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC9B,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,CAAC;YACZ,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;QAED,0BAA0B;QAC1B,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC7B,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAEvC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,0CAA0C;IAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC"}
|