bridgelist 1.0.8 → 1.1.1

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.
Files changed (47) hide show
  1. package/dist/analyzers/array-analyzer.d.ts +14 -0
  2. package/dist/analyzers/array-analyzer.js +103 -0
  3. package/dist/analyzers/array-analyzer.js.map +1 -0
  4. package/dist/analyzers/ast-analyzer.js +11 -65
  5. package/dist/analyzers/ast-analyzer.js.map +1 -1
  6. package/dist/analyzers/method-analyzer.d.ts +3 -2
  7. package/dist/analyzers/method-analyzer.js +91 -89
  8. package/dist/analyzers/method-analyzer.js.map +1 -1
  9. package/dist/analyzers/property-access-analyzer.d.ts +3 -6
  10. package/dist/analyzers/property-access-analyzer.js +62 -58
  11. package/dist/analyzers/property-access-analyzer.js.map +1 -1
  12. package/dist/decorators/array-documentation.d.ts +2 -0
  13. package/dist/decorators/array-documentation.js +9 -0
  14. package/dist/decorators/array-documentation.js.map +1 -0
  15. package/dist/decorators/mapping-documentation.js.map +1 -1
  16. package/dist/generators/array-list-generator.d.ts +1 -0
  17. package/dist/generators/array-list-generator.js +143 -0
  18. package/dist/generators/array-list-generator.js.map +1 -0
  19. package/dist/generators/doc-generator-html.d.ts +1 -0
  20. package/dist/generators/doc-generator-html.js +375 -0
  21. package/dist/generators/doc-generator-html.js.map +1 -0
  22. package/dist/generators/doc-output-registry.d.ts +4 -0
  23. package/dist/generators/doc-output-registry.js +21 -0
  24. package/dist/generators/doc-output-registry.js.map +1 -0
  25. package/dist/generators/mapping-generator.d.ts +2 -0
  26. package/dist/generators/mapping-generator.js +167 -0
  27. package/dist/generators/mapping-generator.js.map +1 -0
  28. package/dist/index.d.ts +9 -3
  29. package/dist/index.js +18 -6
  30. package/dist/index.js.map +1 -1
  31. package/dist/types/index.d.ts +6 -0
  32. package/dist/utils/array-scanner.d.ts +7 -0
  33. package/dist/utils/array-scanner.js +53 -0
  34. package/dist/utils/array-scanner.js.map +1 -0
  35. package/dist/utils/find-all-ts-files.d.ts +1 -0
  36. package/dist/utils/find-all-ts-files.js +25 -0
  37. package/dist/utils/find-all-ts-files.js.map +1 -0
  38. package/dist/utils/find-decorated-methods.d.ts +16 -0
  39. package/dist/utils/find-decorated-methods.js +103 -0
  40. package/dist/utils/find-decorated-methods.js.map +1 -0
  41. package/dist/utils/mapping-scanner.d.ts +7 -0
  42. package/dist/utils/mapping-scanner.js +53 -0
  43. package/dist/utils/mapping-scanner.js.map +1 -0
  44. package/docs/documentation.html +574 -0
  45. package/docs/relevantPropertiesArray.html +266 -0
  46. package/package.json +6 -3
  47. package/docs/example-mapping.html +0 -1170
@@ -0,0 +1,14 @@
1
+ import { MethodDeclaration } from 'ts-morph';
2
+ export declare class ArrayAnalyzer {
3
+ private readonly methodNode;
4
+ private decoratorNodes;
5
+ constructor(methodNode: MethodDeclaration);
6
+ extractArrayElements(): string[];
7
+ private initializeDecorators;
8
+ private addAllChildrenToDecoratorSet;
9
+ private isPartOfDecorator;
10
+ private findMainArray;
11
+ private processArrayElements;
12
+ private formatObjectLiteral;
13
+ }
14
+ export declare function analyzeArrayInMethod(filePath: string, className: string, methodName: string): string[];
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArrayAnalyzer = void 0;
4
+ exports.analyzeArrayInMethod = analyzeArrayInMethod;
5
+ const ts_morph_1 = require("ts-morph");
6
+ class ArrayAnalyzer {
7
+ constructor(methodNode) {
8
+ this.decoratorNodes = new Set();
9
+ this.methodNode = methodNode;
10
+ this.initializeDecorators();
11
+ }
12
+ extractArrayElements() {
13
+ const arrayLiterals = this.methodNode.getDescendantsOfKind(ts_morph_1.SyntaxKind.ArrayLiteralExpression)
14
+ .filter(arrayLiteral => !this.isPartOfDecorator(arrayLiteral));
15
+ if (arrayLiterals.length === 0) {
16
+ return [];
17
+ }
18
+ // When multiple arrays exist, choose the largest as it's likely the main data array
19
+ const mainArray = this.findMainArray(arrayLiterals);
20
+ return this.processArrayElements(mainArray);
21
+ }
22
+ initializeDecorators() {
23
+ this.methodNode.getDecorators().forEach(decorator => {
24
+ this.decoratorNodes.add(decorator);
25
+ this.addAllChildrenToDecoratorSet(decorator);
26
+ });
27
+ }
28
+ addAllChildrenToDecoratorSet(node) {
29
+ // Recursively mark all decorator child nodes to exclude them from analysis
30
+ this.decoratorNodes.add(node);
31
+ node.getChildren().forEach(child => this.addAllChildrenToDecoratorSet(child));
32
+ }
33
+ isPartOfDecorator(node) {
34
+ return this.decoratorNodes.has(node) ||
35
+ node.getAncestors().some(ancestor => this.decoratorNodes.has(ancestor));
36
+ }
37
+ findMainArray(arrayLiterals) {
38
+ if (arrayLiterals.length === 1) {
39
+ return arrayLiterals[0];
40
+ }
41
+ return arrayLiterals.reduce((largest, current) => {
42
+ return current.getElements().length > largest.getElements().length ? current : largest;
43
+ }, arrayLiterals[0]);
44
+ }
45
+ processArrayElements(arrayLiteral) {
46
+ const elements = [];
47
+ arrayLiteral.getElements().forEach(element => {
48
+ const elementKind = element.getKind();
49
+ switch (elementKind) {
50
+ case ts_morph_1.SyntaxKind.StringLiteral:
51
+ elements.push(element.asKindOrThrow(ts_morph_1.SyntaxKind.StringLiteral).getLiteralValue());
52
+ break;
53
+ case ts_morph_1.SyntaxKind.NumericLiteral:
54
+ case ts_morph_1.SyntaxKind.TrueKeyword:
55
+ case ts_morph_1.SyntaxKind.FalseKeyword:
56
+ elements.push(element.getText());
57
+ break;
58
+ case ts_morph_1.SyntaxKind.ObjectLiteralExpression:
59
+ elements.push(this.formatObjectLiteral(element));
60
+ break;
61
+ default:
62
+ elements.push(element.getText());
63
+ break;
64
+ }
65
+ });
66
+ return elements;
67
+ }
68
+ formatObjectLiteral(objectLiteral) {
69
+ const propertyAssignments = objectLiteral.getDescendantsOfKind(ts_morph_1.SyntaxKind.PropertyAssignment);
70
+ if (propertyAssignments.length === 0) {
71
+ return '{}';
72
+ }
73
+ const formattedProps = propertyAssignments.map(prop => {
74
+ const name = prop.getName();
75
+ const initializer = prop.getInitializer();
76
+ if (!initializer) {
77
+ return `${name}: undefined`;
78
+ }
79
+ let value = initializer.getText();
80
+ if (initializer.getKind() === ts_morph_1.SyntaxKind.StringLiteral) {
81
+ value = initializer.asKindOrThrow(ts_morph_1.SyntaxKind.StringLiteral).getLiteralValue();
82
+ }
83
+ return `${name}: ${value}`;
84
+ });
85
+ return `{ ${formattedProps.join(', ')} }`;
86
+ }
87
+ }
88
+ exports.ArrayAnalyzer = ArrayAnalyzer;
89
+ function analyzeArrayInMethod(filePath, className, methodName) {
90
+ const project = new ts_morph_1.Project();
91
+ const sourceFile = project.addSourceFileAtPath(filePath);
92
+ const classDeclaration = sourceFile.getClass(className);
93
+ if (!classDeclaration) {
94
+ return [];
95
+ }
96
+ const methodDeclaration = classDeclaration.getMethod(methodName);
97
+ if (!methodDeclaration) {
98
+ return [];
99
+ }
100
+ const analyzer = new ArrayAnalyzer(methodDeclaration);
101
+ return analyzer.extractArrayElements();
102
+ }
103
+ //# sourceMappingURL=array-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-analyzer.js","sourceRoot":"","sources":["../../src/analyzers/array-analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,74 +1,20 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.analyzeMethod = analyzeMethod;
40
- const typescript_1 = __importDefault(require("typescript"));
41
- const fs = __importStar(require("fs"));
42
- const path = __importStar(require("path"));
4
+ const ts_morph_1 = require("ts-morph");
43
5
  const method_analyzer_1 = require("./method-analyzer");
44
6
  function analyzeMethod(filePath, className, methodName) {
45
- const sourceCode = fs.readFileSync(filePath, 'utf-8');
46
- const sourceFile = typescript_1.default.createSourceFile(path.basename(filePath), sourceCode, typescript_1.default.ScriptTarget.Latest, true);
47
- const methodNode = findMethodInAST(sourceFile, className, methodName);
48
- if (methodNode) {
49
- const analyzer = new method_analyzer_1.MethodAnalyzer(methodNode);
50
- return analyzer.extractMappings();
7
+ const project = new ts_morph_1.Project();
8
+ const sourceFile = project.addSourceFileAtPath(filePath);
9
+ const classDeclaration = sourceFile.getClass(className);
10
+ if (!classDeclaration) {
11
+ return [];
51
12
  }
52
- return [];
53
- }
54
- function findMethodInAST(sourceFile, className, methodName) {
55
- function findMethod(node) {
56
- if (typescript_1.default.isMethodDeclaration(node) &&
57
- node.name.getText() === methodName &&
58
- node.parent &&
59
- typescript_1.default.isClassDeclaration(node.parent) &&
60
- node.parent.name &&
61
- node.parent.name.getText() === className) {
62
- return node;
63
- }
64
- let result;
65
- typescript_1.default.forEachChild(node, child => {
66
- if (!result) {
67
- result = findMethod(child);
68
- }
69
- });
70
- return result;
13
+ const methodDeclaration = classDeclaration.getMethod(methodName);
14
+ if (!methodDeclaration) {
15
+ return [];
71
16
  }
72
- return findMethod(sourceFile);
17
+ const analyzer = new method_analyzer_1.MethodAnalyzer(methodDeclaration);
18
+ return analyzer.extractMappings();
73
19
  }
74
20
  //# sourceMappingURL=ast-analyzer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast-analyzer.js","sourceRoot":"","sources":["../../src/analyzers/ast-analyzer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,sCAgBC;AA5BD,4DAA4B;AAC5B,uCAAyB;AACzB,2CAA6B;AAC7B,uDAAmD;AASnD,SAAgB,aAAa,CAAC,QAAgB,EAAE,SAAiB,EAAE,UAAkB;IACjF,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtD,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,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACtE,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,UAAyB,EAAE,SAAiB,EAAE,UAAkB;IACrF,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,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"ast-analyzer.js","sourceRoot":"","sources":["../../src/analyzers/ast-analyzer.ts"],"names":[],"mappings":";;AAUA,sCAqBC;AA9BD,uCAAmC;AACnC,uDAAmD;AAQnD,SAAgB,aAAa,CACzB,QAAgB,EAChB,SAAiB,EACjB,UAAkB;IAElB,MAAM,OAAO,GAAG,IAAI,kBAAO,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAEzD,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC,iBAAiB,CAAC,CAAC;IAEvD,OAAO,QAAQ,CAAC,eAAe,EAAE,CAAC;AACtC,CAAC"}
@@ -1,4 +1,4 @@
1
- import ts from 'typescript';
1
+ import { MethodDeclaration } from 'ts-morph';
2
2
  import { MappingRelation } from './ast-analyzer';
3
3
  export declare class MethodAnalyzer {
4
4
  private readonly methodNode;
@@ -6,7 +6,7 @@ export declare class MethodAnalyzer {
6
6
  private variableDeclarations;
7
7
  private parameterNames;
8
8
  private decoratorNodes;
9
- constructor(methodNode: ts.MethodDeclaration);
9
+ constructor(methodNode: MethodDeclaration);
10
10
  extractMappings(): MappingRelation[];
11
11
  private initializeParameters;
12
12
  private initializeDecorators;
@@ -20,6 +20,7 @@ export declare class MethodAnalyzer {
20
20
  private processOtherExpression;
21
21
  private findContainingVariable;
22
22
  private processElementAccess;
23
+ private isParameterBasedExpression;
23
24
  private processDynamicConcatenation;
24
25
  private processStringLiteralAccess;
25
26
  private processOtherDynamicAccess;
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.MethodAnalyzer = void 0;
4
+ const ts_morph_1 = require("ts-morph");
7
5
  const property_access_analyzer_1 = require("./property-access-analyzer");
8
- const typescript_1 = __importDefault(require("typescript"));
9
6
  class MethodAnalyzer {
10
7
  constructor(methodNode) {
11
8
  this.results = [];
@@ -17,75 +14,76 @@ class MethodAnalyzer {
17
14
  this.initializeDecorators();
18
15
  }
19
16
  extractMappings() {
20
- this.collectVariables(this.methodNode);
21
- this.analyzePropertyAssignments(this.methodNode);
17
+ this.collectVariables();
18
+ this.analyzePropertyAssignments();
22
19
  return this.results;
23
20
  }
24
21
  initializeParameters() {
25
- if (this.methodNode.parameters) {
26
- this.methodNode.parameters.forEach(param => {
27
- if (param.name && typescript_1.default.isIdentifier(param.name)) {
28
- this.parameterNames.add(param.name.getText());
29
- }
30
- });
31
- }
22
+ this.methodNode.getParameters().forEach(param => {
23
+ const name = param.getName();
24
+ if (name) {
25
+ this.parameterNames.add(name);
26
+ }
27
+ });
32
28
  }
33
29
  initializeDecorators() {
34
- if (this.methodNode.modifiers) {
35
- this.methodNode.modifiers.forEach(modifier => {
36
- if (typescript_1.default.isDecorator(modifier)) {
37
- this.decoratorNodes.add(modifier);
38
- this.addAllChildrenToDecoratorSet(modifier);
39
- }
40
- });
41
- }
30
+ this.methodNode.getDecorators().forEach(decorator => {
31
+ this.decoratorNodes.add(decorator);
32
+ this.addAllChildrenToDecoratorSet(decorator);
33
+ });
42
34
  }
43
35
  addAllChildrenToDecoratorSet(node) {
44
36
  this.decoratorNodes.add(node);
45
- typescript_1.default.forEachChild(node, child => this.addAllChildrenToDecoratorSet(child));
37
+ node.getChildren().forEach(child => this.addAllChildrenToDecoratorSet(child));
46
38
  }
47
39
  isPartOfDecorator(node) {
48
- return this.decoratorNodes.has(node);
49
- }
50
- collectVariables(node) {
51
- if (this.isPartOfDecorator(node)) {
52
- return;
53
- }
54
- if (typescript_1.default.isVariableDeclaration(node) && typescript_1.default.isIdentifier(node.name) && node.initializer) {
55
- this.variableDeclarations.set(node.name.getText(), node.initializer);
56
- }
57
- typescript_1.default.forEachChild(node, child => this.collectVariables(child));
40
+ return this.decoratorNodes.has(node) ||
41
+ node.getAncestors().some(ancestor => this.decoratorNodes.has(ancestor));
42
+ }
43
+ collectVariables() {
44
+ // Verwende ts-morph's Built-in Methoden
45
+ this.methodNode.getDescendantsOfKind(ts_morph_1.SyntaxKind.VariableDeclaration)
46
+ .filter(varDecl => !this.isPartOfDecorator(varDecl))
47
+ .forEach(varDecl => {
48
+ const name = varDecl.getName();
49
+ const initializer = varDecl.getInitializer();
50
+ if (name && initializer) {
51
+ this.variableDeclarations.set(name, initializer);
52
+ }
53
+ });
58
54
  }
59
- // PropertyAssignment = ObjectProperty in AST
60
- analyzePropertyAssignments(node) {
61
- if (this.isPartOfDecorator(node)) {
55
+ analyzePropertyAssignments(parentPath = "") {
56
+ // Direkte Suche nach PropertyAssignments
57
+ this.methodNode.getDescendantsOfKind(ts_morph_1.SyntaxKind.PropertyAssignment)
58
+ .filter(propAssign => !this.isPartOfDecorator(propAssign))
59
+ .filter(propAssign => { var _a; return ((_a = propAssign.getParent()) === null || _a === void 0 ? void 0 : _a.getKind()) === ts_morph_1.SyntaxKind.ObjectLiteralExpression; })
60
+ .forEach(propAssign => this.processPropertyAssignment(propAssign, parentPath));
61
+ }
62
+ processPropertyAssignment(node, parentPath = "") {
63
+ const targetField = node.getName();
64
+ const fullTargetPath = parentPath ? `${parentPath}.${targetField}` : targetField;
65
+ const initializer = node.getInitializer();
66
+ const containerVar = this.findContainingVariable(node.getParent());
67
+ if (!initializer)
62
68
  return;
63
- }
64
- // ObjectLiteralExpression = ObjectExpression in AST
65
- if (typescript_1.default.isPropertyAssignment(node) && node.parent && typescript_1.default.isObjectLiteralExpression(node.parent)) {
66
- this.processPropertyAssignment(node);
67
- }
68
- typescript_1.default.forEachChild(node, child => this.analyzePropertyAssignments(child));
69
- }
70
- processPropertyAssignment(node) {
71
- const targetField = node.name.getText();
72
- const initializer = node.initializer;
73
- const containerVar = this.findContainingVariable(node.parent);
74
- if (typescript_1.default.isElementAccessExpression(initializer)) {
75
- this.processElementAccess(initializer, targetField, containerVar);
76
- }
77
- else if (typescript_1.default.isPropertyAccessExpression(initializer)) {
78
- this.processPropertyAccess(initializer, targetField, containerVar);
79
- }
80
- else if (typescript_1.default.isCallExpression(initializer)) {
81
- this.processCallExpression(initializer, targetField, containerVar);
82
- }
83
- else if (typescript_1.default.isObjectLiteralExpression(initializer)) {
84
- // For nested objects, we'll handle them recursively
85
- // Child properties will be analyzed in subsequent recursive calls
86
- }
87
- else {
88
- this.processOtherExpression(initializer, targetField, containerVar);
69
+ const kind = initializer.getKind();
70
+ switch (kind) {
71
+ case ts_morph_1.SyntaxKind.ElementAccessExpression:
72
+ this.processElementAccess(initializer, fullTargetPath, containerVar);
73
+ break;
74
+ case ts_morph_1.SyntaxKind.PropertyAccessExpression:
75
+ this.processPropertyAccess(initializer, fullTargetPath, containerVar);
76
+ break;
77
+ case ts_morph_1.SyntaxKind.CallExpression:
78
+ this.processCallExpression(initializer, fullTargetPath, containerVar);
79
+ break;
80
+ case ts_morph_1.SyntaxKind.ObjectLiteralExpression:
81
+ // Verschachtelte Objekte: mit vollständigem Pfad verarbeiten
82
+ initializer.getDescendantsOfKind(ts_morph_1.SyntaxKind.PropertyAssignment)
83
+ .forEach(propAssign => this.processPropertyAssignment(propAssign, fullTargetPath));
84
+ break;
85
+ default:
86
+ this.processOtherExpression(initializer, fullTargetPath, containerVar);
89
87
  }
90
88
  }
91
89
  processPropertyAccess(initializer, targetField, containerVar) {
@@ -96,10 +94,12 @@ class MethodAnalyzer {
96
94
  }
97
95
  processCallExpression(initializer, targetField, containerVar) {
98
96
  const sourceFields = this.findPropertyAccesses(initializer);
97
+ // Mit ts-morph können wir sicher auf Expression zugreifen
98
+ const callExpr = initializer.asKindOrThrow(ts_morph_1.SyntaxKind.CallExpression);
99
99
  this.results.push({
100
100
  targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
101
101
  sourceField: sourceFields.length > 0 ? sourceFields.join(', ') : initializer.getText(),
102
- transformation: initializer.expression.getText()
102
+ transformation: callExpr.getExpression().getText()
103
103
  });
104
104
  }
105
105
  processOtherExpression(initializer, targetField, containerVar) {
@@ -112,7 +112,6 @@ class MethodAnalyzer {
112
112
  });
113
113
  }
114
114
  else {
115
- // Constant values
116
115
  this.results.push({
117
116
  targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
118
117
  sourceField: "Constant value",
@@ -121,52 +120,55 @@ class MethodAnalyzer {
121
120
  }
122
121
  }
123
122
  findContainingVariable(objectLiteral) {
124
- let result;
125
- this.variableDeclarations.forEach((value, key) => {
123
+ for (const [key, value] of this.variableDeclarations) {
126
124
  if (value === objectLiteral) {
127
- result = key;
125
+ return key;
128
126
  }
129
- });
130
- return result;
127
+ }
128
+ return undefined;
131
129
  }
132
130
  processElementAccess(expr, targetField, containerVar) {
133
- const objExpr = expr.expression;
134
- if (typescript_1.default.isPropertyAccessExpression(objExpr) &&
135
- objExpr.expression &&
136
- typescript_1.default.isIdentifier(objExpr.expression) &&
137
- this.parameterNames.has(objExpr.expression.getText())) {
138
- // Handle dynamic property access with string concatenation
139
- if (typescript_1.default.isBinaryExpression(expr.argumentExpression) &&
140
- expr.argumentExpression.operatorToken.kind === typescript_1.default.SyntaxKind.PlusToken &&
141
- typescript_1.default.isPropertyAccessExpression(expr.argumentExpression.left) &&
142
- typescript_1.default.isStringLiteral(expr.argumentExpression.right)) {
143
- this.processDynamicConcatenation(expr, objExpr, targetField, containerVar);
131
+ const elemAccess = expr.asKindOrThrow(ts_morph_1.SyntaxKind.ElementAccessExpression);
132
+ const objExpr = elemAccess.getExpression();
133
+ const argExpr = elemAccess.getArgumentExpression();
134
+ if (objExpr.getKind() === ts_morph_1.SyntaxKind.PropertyAccessExpression &&
135
+ this.isParameterBasedExpression(objExpr)) {
136
+ if ((argExpr === null || argExpr === void 0 ? void 0 : argExpr.getKind()) === ts_morph_1.SyntaxKind.BinaryExpression) {
137
+ this.processDynamicConcatenation(elemAccess, objExpr, targetField, containerVar);
144
138
  }
145
- // Handle direct string literal access
146
- else if (typescript_1.default.isStringLiteral(expr.argumentExpression)) {
147
- this.processStringLiteralAccess(expr, objExpr, targetField, containerVar);
139
+ else if ((argExpr === null || argExpr === void 0 ? void 0 : argExpr.getKind()) === ts_morph_1.SyntaxKind.StringLiteral) {
140
+ this.processStringLiteralAccess(elemAccess, objExpr, targetField, containerVar);
148
141
  }
149
- // Handle other dynamic access
150
142
  else {
151
143
  this.processOtherDynamicAccess(expr, targetField, containerVar);
152
144
  }
153
145
  }
154
146
  }
147
+ isParameterBasedExpression(expr) {
148
+ if (expr.getKind() !== ts_morph_1.SyntaxKind.PropertyAccessExpression)
149
+ return false;
150
+ const propAccess = expr.asKindOrThrow(ts_morph_1.SyntaxKind.PropertyAccessExpression);
151
+ const baseExpr = propAccess.getExpression();
152
+ return baseExpr.getKind() === ts_morph_1.SyntaxKind.Identifier &&
153
+ this.parameterNames.has(baseExpr.getText());
154
+ }
155
155
  processDynamicConcatenation(expr, objExpr, targetField, containerVar) {
156
- const binaryExpr = expr.argumentExpression;
157
- const prefix = binaryExpr.left.getText();
158
- const suffix = binaryExpr.right.text;
156
+ const elemAccess = expr.asKindOrThrow(ts_morph_1.SyntaxKind.ElementAccessExpression);
157
+ const binaryExpr = elemAccess.getArgumentExpression().asKindOrThrow(ts_morph_1.SyntaxKind.BinaryExpression);
158
+ const left = binaryExpr.getLeft().asKindOrThrow(ts_morph_1.SyntaxKind.PropertyAccessExpression);
159
+ const right = binaryExpr.getRight().asKindOrThrow(ts_morph_1.SyntaxKind.StringLiteral);
159
160
  this.results.push({
160
161
  targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
161
- sourceField: `Dynamic access: ${objExpr.getText()}[${prefix} + '${suffix}']`,
162
+ sourceField: `Dynamic access: ${objExpr.getText()}[${left.getText()} + '${right.getLiteralValue()}']`,
162
163
  transformation: "Dynamic property mapping"
163
164
  });
164
165
  }
165
166
  processStringLiteralAccess(expr, objExpr, targetField, containerVar) {
166
- const stringLiteral = expr.argumentExpression;
167
+ const elemAccess = expr.asKindOrThrow(ts_morph_1.SyntaxKind.ElementAccessExpression);
168
+ const stringLiteral = elemAccess.getArgumentExpression().asKindOrThrow(ts_morph_1.SyntaxKind.StringLiteral);
167
169
  this.results.push({
168
170
  targetField: containerVar ? `${containerVar}.${targetField}` : targetField,
169
- sourceField: `${objExpr.getText()}['${stringLiteral.text}']`
171
+ sourceField: `${objExpr.getText()}['${stringLiteral.getLiteralValue()}']`
170
172
  });
171
173
  }
172
174
  processOtherDynamicAccess(expr, targetField, containerVar) {
@@ -1 +1 @@
1
- {"version":3,"file":"method-analyzer.js","sourceRoot":"","sources":["../../src/analyzers/method-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"method-analyzer.js","sourceRoot":"","sources":["../../src/analyzers/method-analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,4 @@
1
- import ts from 'typescript';
2
- /**
3
- * Analyzes property accesses in TypeScript expressions
4
- */
1
+ import { Node } from 'ts-morph';
5
2
  export declare class PropertyAccessAnalyzer {
6
3
  private sourceFields;
7
4
  private visitedNodes;
@@ -9,8 +6,8 @@ export declare class PropertyAccessAnalyzer {
9
6
  private partialPropertyPaths;
10
7
  private parameterNames;
11
8
  private decoratorNodes;
12
- constructor(parameterNames: Set<string>, decoratorNodes: Set<ts.Node>);
13
- findPropertyAccesses(node: ts.Node): string[];
9
+ constructor(parameterNames: Set<string>, decoratorNodes: Set<Node>);
10
+ findPropertyAccesses(node: Node): string[];
14
11
  private visit;
15
12
  private isPartOfDecorator;
16
13
  private isRelevantElementAccessExpression;