bridgelist 1.0.3 → 1.0.5
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 +203 -255
- package/dist/analyzers/ast-analyzer.js.map +1 -1
- package/docs/example-mapping.html +254 -116
- 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,232 @@ function analyzeMethod(filePath, className, methodName) {
|
|
|
76
77
|
}
|
|
77
78
|
});
|
|
78
79
|
}
|
|
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);
|
|
90
|
+
}
|
|
91
|
+
typescript_1.default.forEachChild(modifier, addAllChildren);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
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
|
+
});
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Constant values
|
|
160
|
+
results.push({
|
|
161
|
+
targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
|
|
162
|
+
sourceField: "Constant value",
|
|
163
|
+
transformation: initializer.getText()
|
|
164
|
+
});
|
|
165
|
+
}
|
|
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
|
+
}
|
|
177
|
+
});
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
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
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Find all property accesses in an expression
|
|
79
218
|
function findPropertyAccesses(node) {
|
|
80
219
|
const sourceFields = new Set();
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const
|
|
220
|
+
const visitedNodes = new Set();
|
|
221
|
+
// Track most specific property paths
|
|
222
|
+
const allPropertyPaths = new Set();
|
|
223
|
+
const partialPropertyPaths = new Set();
|
|
85
224
|
function visit(n) {
|
|
86
|
-
//
|
|
225
|
+
// Avoid duplicate processing
|
|
226
|
+
if (visitedNodes.has(n)) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
visitedNodes.add(n);
|
|
230
|
+
// Skip decorator nodes
|
|
231
|
+
if (isPartOfDecorator(n)) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
// Handle nested PropertyAccessExpression
|
|
87
235
|
if (typescript_1.default.isPropertyAccessExpression(n)) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
let
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
236
|
+
// For nested property accesses, we want the full chain
|
|
237
|
+
// e.g., hubspotContact.properties.fieldName
|
|
238
|
+
let current = n;
|
|
239
|
+
let isFromParam = false;
|
|
240
|
+
// Traverse to the base of the expression
|
|
241
|
+
while (typescript_1.default.isPropertyAccessExpression(current.expression)) {
|
|
242
|
+
// Add each partial path to the set of partial paths
|
|
243
|
+
partialPropertyPaths.add(current.expression.getText());
|
|
94
244
|
current = current.expression;
|
|
95
245
|
}
|
|
96
|
-
//
|
|
97
|
-
if (typescript_1.default.isIdentifier(current)
|
|
98
|
-
|
|
246
|
+
// Check if the base is a parameter
|
|
247
|
+
if (typescript_1.default.isIdentifier(current.expression) &&
|
|
248
|
+
parameterNames.has(current.expression.getText())) {
|
|
249
|
+
isFromParam = true;
|
|
99
250
|
}
|
|
100
|
-
//
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (isSourceObject && typescript_1.default.isIdentifier(n.name)) {
|
|
104
|
-
allPropertyAccesses.add(fullText);
|
|
251
|
+
// If this is a property access based on a method parameter, add it
|
|
252
|
+
if (isFromParam) {
|
|
253
|
+
allPropertyPaths.add(n.getText());
|
|
105
254
|
}
|
|
106
255
|
}
|
|
107
|
-
//
|
|
108
|
-
else if (typescript_1.default.isElementAccessExpression(n)
|
|
109
|
-
|
|
256
|
+
// Handle ElementAccessExpression (e.g., obj['property'] or obj[variable])
|
|
257
|
+
else if (typescript_1.default.isElementAccessExpression(n) &&
|
|
258
|
+
n.expression &&
|
|
259
|
+
typescript_1.default.isPropertyAccessExpression(n.expression)) {
|
|
110
260
|
let current = n.expression;
|
|
111
|
-
let
|
|
112
|
-
//
|
|
113
|
-
while (typescript_1.default.isPropertyAccessExpression(current)) {
|
|
114
|
-
|
|
261
|
+
let isFromParam = false;
|
|
262
|
+
// Traverse to the base of the expression and track partial paths
|
|
263
|
+
while (typescript_1.default.isPropertyAccessExpression(current.expression)) {
|
|
264
|
+
partialPropertyPaths.add(current.expression.getText());
|
|
115
265
|
current = current.expression;
|
|
116
266
|
}
|
|
117
|
-
//
|
|
118
|
-
if (typescript_1.default.isIdentifier(current)
|
|
119
|
-
|
|
267
|
+
// Check if the base is a parameter
|
|
268
|
+
if (typescript_1.default.isIdentifier(current.expression) &&
|
|
269
|
+
parameterNames.has(current.expression.getText())) {
|
|
270
|
+
isFromParam = true;
|
|
120
271
|
}
|
|
121
|
-
//
|
|
122
|
-
|
|
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'])
|
|
272
|
+
// If this is an element access based on a method parameter
|
|
273
|
+
if (isFromParam) {
|
|
126
274
|
if (typescript_1.default.isStringLiteral(n.argumentExpression)) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
275
|
+
allPropertyPaths.add(`${n.expression.getText()}['${n.argumentExpression.text}']`);
|
|
276
|
+
}
|
|
277
|
+
else if (typescript_1.default.isBinaryExpression(n.argumentExpression) &&
|
|
278
|
+
n.argumentExpression.operatorToken.kind === typescript_1.default.SyntaxKind.PlusToken &&
|
|
279
|
+
typescript_1.default.isPropertyAccessExpression(n.argumentExpression.left) &&
|
|
280
|
+
typescript_1.default.isStringLiteral(n.argumentExpression.right)) {
|
|
281
|
+
const prefix = n.argumentExpression.left.getText();
|
|
282
|
+
const suffix = n.argumentExpression.right.text;
|
|
283
|
+
allPropertyPaths.add(`${n.expression.getText()}[${prefix} + '${suffix}']`);
|
|
131
284
|
}
|
|
132
285
|
else {
|
|
133
|
-
|
|
134
|
-
allPropertyAccesses.add(fullText);
|
|
286
|
+
allPropertyPaths.add(n.getText());
|
|
135
287
|
}
|
|
288
|
+
// Add the base of the element access as a partial path
|
|
289
|
+
partialPropertyPaths.add(n.expression.getText());
|
|
136
290
|
}
|
|
137
291
|
}
|
|
138
292
|
typescript_1.default.forEachChild(n, visit);
|
|
139
293
|
}
|
|
140
294
|
visit(node);
|
|
141
|
-
//
|
|
142
|
-
|
|
143
|
-
if (!
|
|
295
|
+
// Only add property paths that are not partial paths
|
|
296
|
+
allPropertyPaths.forEach(path => {
|
|
297
|
+
if (!partialPropertyPaths.has(path)) {
|
|
144
298
|
sourceFields.add(path);
|
|
145
299
|
}
|
|
146
300
|
});
|
|
147
301
|
return Array.from(sourceFields);
|
|
148
302
|
}
|
|
149
|
-
//
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
obj.properties.forEach(prop => {
|
|
153
|
-
if (typescript_1.default.isPropertyAssignment(prop) && prop.name) {
|
|
154
|
-
const propName = prop.name.getText();
|
|
155
|
-
const fieldPath = parentPath ? `${parentPath}.${propName}` : propName;
|
|
156
|
-
const initializer = prop.initializer;
|
|
157
|
-
// process nested objects recursively
|
|
158
|
-
if (typescript_1.default.isObjectLiteralExpression(initializer)) {
|
|
159
|
-
// extracth all PropertyAccessExpressions in the initializer
|
|
160
|
-
const sourceFields = findPropertyAccesses(initializer);
|
|
161
|
-
if (sourceFields.length > 0) {
|
|
162
|
-
nestedResults.push({
|
|
163
|
-
targetField: fieldPath,
|
|
164
|
-
sourceField: sourceFields.join(', '),
|
|
165
|
-
transformation: 'Composite Object'
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
const nestedProps = extractNestedProperties(initializer, fieldPath);
|
|
170
|
-
nestedResults.push(...nestedProps);
|
|
171
|
-
// set constant value if no nested properties are found
|
|
172
|
-
if (nestedProps.length === 0) {
|
|
173
|
-
nestedResults.push({
|
|
174
|
-
targetField: fieldPath,
|
|
175
|
-
sourceField: 'Constant value',
|
|
176
|
-
transformation: initializer.getText()
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
// regular property assignment
|
|
183
|
-
if (typescript_1.default.isPropertyAccessExpression(initializer)) {
|
|
184
|
-
nestedResults.push({
|
|
185
|
-
targetField: fieldPath,
|
|
186
|
-
sourceField: initializer.getText()
|
|
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
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
return nestedResults;
|
|
223
|
-
}
|
|
224
|
-
// iterative AST traversal
|
|
225
|
-
function visit(node) {
|
|
226
|
-
// analysis for VariableStatement
|
|
227
|
-
if (typescript_1.default.isVariableStatement(node)) {
|
|
228
|
-
node.declarationList.declarations.forEach(declaration => {
|
|
229
|
-
if (declaration.initializer && typescript_1.default.isObjectLiteralExpression(declaration.initializer) &&
|
|
230
|
-
declaration.name && typescript_1.default.isIdentifier(declaration.name)) {
|
|
231
|
-
// save variable with object literal initializer
|
|
232
|
-
objectVariables.set(declaration.name.getText(), declaration.initializer);
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
// search for ReturnStatement
|
|
237
|
-
if (typescript_1.default.isReturnStatement(node) && node.expression) {
|
|
238
|
-
let objectLiteral;
|
|
239
|
-
let expression = node.expression;
|
|
240
|
-
// Handle type assertions
|
|
241
|
-
if (typescript_1.default.isAsExpression(expression)) {
|
|
242
|
-
expression = expression.expression;
|
|
243
|
-
}
|
|
244
|
-
// Handle method calls that have an object parameter
|
|
245
|
-
if (typescript_1.default.isCallExpression(expression) && expression.arguments.length > 0) {
|
|
246
|
-
const firstArg = expression.arguments[0];
|
|
247
|
-
if (typescript_1.default.isIdentifier(firstArg)) {
|
|
248
|
-
const variableName = firstArg.getText();
|
|
249
|
-
const varObjectLiteral = objectVariables.get(variableName);
|
|
250
|
-
if (varObjectLiteral) {
|
|
251
|
-
objectLiteral = varObjectLiteral;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
else if (typescript_1.default.isObjectLiteralExpression(firstArg)) {
|
|
255
|
-
objectLiteral = firstArg;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
// Existing cases
|
|
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;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
// if object literal is found, extract mappings from it
|
|
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
|
-
}
|
|
353
|
-
}
|
|
354
|
-
// recursive call for all child nodes
|
|
355
|
-
typescript_1.default.forEachChild(node, visit);
|
|
356
|
-
}
|
|
357
|
-
visit(methodNode);
|
|
303
|
+
// Run our analysis passes
|
|
304
|
+
collectVariables(methodNode);
|
|
305
|
+
analyzePropertyAssignments(methodNode);
|
|
358
306
|
return results;
|
|
359
307
|
}
|
|
360
308
|
// 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":"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"}
|