bridgelist 1.0.0

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 ADDED
@@ -0,0 +1,108 @@
1
+ # bridgelist
2
+
3
+ [![npm version](https://img.shields.io/npm/v/bridgelist.svg)](https://www.npmjs.com/package/bridgelist)
4
+ [![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue)](https://www.typescriptlang.org/)
6
+
7
+ A TypeScript-based tool for automatically documenting field mappings between different API systems. Generate documentation from your mapping code using simple decorators.
8
+
9
+ ![img.png](img.png)
10
+
11
+ ## Installation
12
+
13
+ ```bash
14
+ npm install bridgelist
15
+ # or
16
+ yarn add bridgelist
17
+ # or
18
+ pnpm add bridgelist
19
+ ```
20
+ ## Features
21
+ - **Automatic Mapping Detection**: Analyzes your TypeScript code to identify mapping relationships
22
+ - **Decorator-based Configuration**: Add metadata to your mapping methods
23
+ - **HTML Documentation Generation**: Creates clear and interactive documentation
24
+ - **Supports Various Mapping Types**:
25
+ - Direct mappings
26
+ - Transformations
27
+ - Constant values
28
+ - Nested objects
29
+
30
+ ## Usage
31
+ ### Basic Usage
32
+ 1. Import the necessary functions:
33
+ ``` typescript
34
+ import { GenerateMappingDocumentation, generateDocumentation } from 'bridgelist';
35
+ ```
36
+ 1. Decorate your mapping methods:
37
+ ``` typescript
38
+ class SimpleMapper {
39
+ @GenerateMappingDocumentation({
40
+ sourceSystem: 'System A',
41
+ targetSystem: 'System B',
42
+ description: 'Converts customer data from System A to System B'
43
+ })
44
+ mapCustomer(sourceData: any): any {
45
+ return {
46
+ id: sourceData.id,
47
+ firstName: sourceData.properties.firstname,
48
+ lastName: sourceData.properties.lastname,
49
+ // more mappings...
50
+ };
51
+ }
52
+ }
53
+ ```
54
+ 1. Generate the documentation:
55
+ ``` typescript
56
+ // Scans the project and creates HTML documentation
57
+ generateDocumentation('./docs/api-mappings.html');
58
+ ```
59
+ ### Complex Mappings
60
+ The tool automatically recognizes different types of mappings:
61
+ ``` typescript
62
+ class ComplexMapper {
63
+ @GenerateMappingDocumentation({
64
+ sourceSystem: 'CRM',
65
+ targetSystem: 'ERP',
66
+ description: 'Converts CRM contacts to ERP customers'
67
+ })
68
+ mapContactToCustomer(contact: any): any {
69
+ return {
70
+ // Direct mapping
71
+ customerId: contact.id,
72
+
73
+ // Constant value
74
+ defaultCountry: 'Germany',
75
+
76
+ // Transformation
77
+ fullName: `${contact.firstName} ${contact.lastName}`,
78
+
79
+ // Nested object
80
+ address: {
81
+ street: contact.address.streetName,
82
+ city: contact.address.city,
83
+ country: defaultCountry
84
+ }
85
+ };
86
+ }
87
+ }
88
+ ```
89
+ ## API Reference
90
+ ### `GenerateMappingDocumentation(options)`
91
+ A decorator to mark mapping methods with metadata.
92
+ #### Parameters
93
+ - `options`: An object with the following properties:
94
+ - `sourceSystem` (string, required): Name of the source system
95
+ - `targetSystem` (string, required): Name of the target system
96
+ - `description` (string, optional): Description of the mapping
97
+
98
+ ### `generateDocumentation(outputPath)`
99
+ Scans the project for decorated methods and generates HTML documentation.
100
+ #### Parameters
101
+ - `outputPath` (string, required): Path where the HTML documentation should be saved
102
+
103
+
104
+ ### `scanProject(rootDir)`
105
+ Recursively scans a directory for TypeScript files with decorated mapping methods.
106
+ #### Parameters
107
+ - `rootDir` (string, required): Path to the root directory of the project to scan
108
+
@@ -0,0 +1,10 @@
1
+ interface MappingRelation {
2
+ sourceField: string;
3
+ targetField: string;
4
+ transformation?: string;
5
+ }
6
+ /**
7
+ * analyzes a TypeScript method and extracts mapping relations
8
+ */
9
+ export declare function analyzeMethod(filePath: string, className: string, methodName: string): MappingRelation[];
10
+ export {};
@@ -0,0 +1,288 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.analyzeMethod = analyzeMethod;
40
+ const typescript_1 = __importDefault(require("typescript"));
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ /**
44
+ * analyzes a TypeScript method and extracts mapping relations
45
+ */
46
+ function analyzeMethod(filePath, className, methodName) {
47
+ const sourceCode = fs.readFileSync(filePath, 'utf-8');
48
+ const sourceFile = typescript_1.default.createSourceFile(path.basename(filePath), sourceCode, typescript_1.default.ScriptTarget.Latest, true);
49
+ function findMethod(node) {
50
+ if (typescript_1.default.isMethodDeclaration(node) &&
51
+ node.name.getText() === methodName &&
52
+ node.parent &&
53
+ typescript_1.default.isClassDeclaration(node.parent) &&
54
+ node.parent.name &&
55
+ node.parent.name.getText() === className) {
56
+ return node;
57
+ }
58
+ let result;
59
+ typescript_1.default.forEachChild(node, child => {
60
+ if (!result) {
61
+ result = findMethod(child);
62
+ }
63
+ });
64
+ return result;
65
+ }
66
+ function extractMappings(methodNode) {
67
+ const results = [];
68
+ // Speichert Variablen, die Objekt-Literale enthalten
69
+ const objectVariables = new Map();
70
+ // identify all parameters of the method
71
+ const parameterNames = new Set();
72
+ if (methodNode.parameters) {
73
+ methodNode.parameters.forEach(param => {
74
+ if (param.name && typescript_1.default.isIdentifier(param.name)) {
75
+ parameterNames.add(param.name.getText());
76
+ }
77
+ });
78
+ }
79
+ function findPropertyAccesses(node) {
80
+ const sourceFields = new Set();
81
+ // save all PropertyAccessExpressions
82
+ const allPropertyAccesses = new Set();
83
+ // save all PropertyAccessExpressions with a partial path
84
+ const partialPaths = new Set();
85
+ function visit(n) {
86
+ if (typescript_1.default.isPropertyAccessExpression(n)) {
87
+ const fullText = n.getText();
88
+ let current = n.expression;
89
+ let baseName = "";
90
+ // navigate through PropertyAccessExpression recursively
91
+ while (typescript_1.default.isPropertyAccessExpression(current)) {
92
+ partialPaths.add(current.getText());
93
+ current = current.expression;
94
+ }
95
+ // now current is the base variable
96
+ if (typescript_1.default.isIdentifier(current)) {
97
+ baseName = current.getText();
98
+ }
99
+ // verify if base variable is a parameter or this
100
+ const isSourceObject = parameterNames.has(baseName) || baseName === "this";
101
+ // if base variable is a parameter or this, save PropertyAccessExpression
102
+ if (isSourceObject && typescript_1.default.isIdentifier(n.name)) {
103
+ allPropertyAccesses.add(fullText);
104
+ }
105
+ }
106
+ typescript_1.default.forEachChild(n, visit);
107
+ }
108
+ visit(node);
109
+ // keep only PropertyAccessExpressions with a full path
110
+ allPropertyAccesses.forEach(path => {
111
+ if (!partialPaths.has(path)) {
112
+ sourceFields.add(path);
113
+ }
114
+ });
115
+ return Array.from(sourceFields);
116
+ }
117
+ // extract nested properties from an object literal expression
118
+ function extractNestedProperties(obj, parentPath) {
119
+ const nestedResults = [];
120
+ obj.properties.forEach(prop => {
121
+ if (typescript_1.default.isPropertyAssignment(prop) && prop.name) {
122
+ const propName = prop.name.getText();
123
+ const fieldPath = parentPath ? `${parentPath}.${propName}` : propName;
124
+ const initializer = prop.initializer;
125
+ // process nested objects recursively
126
+ if (typescript_1.default.isObjectLiteralExpression(initializer)) {
127
+ // extracth all PropertyAccessExpressions in the initializer
128
+ const sourceFields = findPropertyAccesses(initializer);
129
+ if (sourceFields.length > 0) {
130
+ nestedResults.push({
131
+ targetField: fieldPath,
132
+ sourceField: sourceFields.join(', '),
133
+ transformation: 'Composite Object'
134
+ });
135
+ }
136
+ else {
137
+ const nestedProps = extractNestedProperties(initializer, fieldPath);
138
+ nestedResults.push(...nestedProps);
139
+ // set constant value if no nested properties are found
140
+ if (nestedProps.length === 0) {
141
+ nestedResults.push({
142
+ targetField: fieldPath,
143
+ sourceField: 'Constant value',
144
+ transformation: initializer.getText()
145
+ });
146
+ }
147
+ }
148
+ }
149
+ else {
150
+ // regular property assignment
151
+ if (typescript_1.default.isPropertyAccessExpression(initializer)) {
152
+ nestedResults.push({
153
+ targetField: fieldPath,
154
+ sourceField: initializer.getText()
155
+ });
156
+ }
157
+ else if (typescript_1.default.isCallExpression(initializer)) {
158
+ // find all PropertyAccessExpressions in the arguments of the function call
159
+ const sourceFields = initializer.arguments.flatMap(arg => findPropertyAccesses(arg));
160
+ nestedResults.push({
161
+ targetField: fieldPath,
162
+ sourceField: sourceFields.length > 0 ? sourceFields.join(', ') : initializer.arguments.map(arg => arg.getText()).join(', '),
163
+ transformation: initializer.expression.getText()
164
+ });
165
+ }
166
+ else {
167
+ const sourceFields = findPropertyAccesses(initializer);
168
+ if (sourceFields.length > 0) {
169
+ nestedResults.push({
170
+ targetField: fieldPath,
171
+ sourceField: sourceFields.join(', '),
172
+ transformation: initializer.kind !== typescript_1.default.SyntaxKind.StringLiteral &&
173
+ initializer.kind !== typescript_1.default.SyntaxKind.NumericLiteral &&
174
+ initializer.kind !== typescript_1.default.SyntaxKind.TrueKeyword &&
175
+ initializer.kind !== typescript_1.default.SyntaxKind.FalseKeyword ?
176
+ 'Transformed' : 'Direct mapping'
177
+ });
178
+ }
179
+ else {
180
+ nestedResults.push({
181
+ targetField: fieldPath,
182
+ sourceField: 'Constant value',
183
+ transformation: initializer.getText()
184
+ });
185
+ }
186
+ }
187
+ }
188
+ }
189
+ });
190
+ return nestedResults;
191
+ }
192
+ // iterative AST traversal
193
+ function visit(node) {
194
+ // analysis for VariableStatement
195
+ if (typescript_1.default.isVariableStatement(node)) {
196
+ node.declarationList.declarations.forEach(declaration => {
197
+ if (declaration.initializer && typescript_1.default.isObjectLiteralExpression(declaration.initializer) &&
198
+ declaration.name && typescript_1.default.isIdentifier(declaration.name)) {
199
+ // save variable with object literal initializer
200
+ objectVariables.set(declaration.name.getText(), declaration.initializer);
201
+ }
202
+ });
203
+ }
204
+ // search for ReturnStatement
205
+ if (typescript_1.default.isReturnStatement(node) && node.expression) {
206
+ let objectLiteral;
207
+ // Case 1: direct return of an object literal
208
+ if (typescript_1.default.isObjectLiteralExpression(node.expression)) {
209
+ objectLiteral = node.expression;
210
+ }
211
+ // Case 2: return of an object literal from a variable
212
+ else if (typescript_1.default.isIdentifier(node.expression)) {
213
+ const variableName = node.expression.getText();
214
+ const varObjectLiteral = objectVariables.get(variableName);
215
+ if (varObjectLiteral) {
216
+ objectLiteral = varObjectLiteral;
217
+ }
218
+ }
219
+ // if object literal is found, extract mappings from it
220
+ if (objectLiteral) {
221
+ // analyze all properties in the object literal
222
+ objectLiteral.properties.forEach(prop => {
223
+ if (typescript_1.default.isPropertyAssignment(prop)) {
224
+ const targetField = prop.name.getText();
225
+ const initializer = prop.initializer;
226
+ // simple PropertyAccessExpression
227
+ if (typescript_1.default.isPropertyAccessExpression(initializer)) {
228
+ results.push({
229
+ targetField,
230
+ sourceField: initializer.getText()
231
+ });
232
+ }
233
+ // complex case: FunctionCallExpression
234
+ else if (typescript_1.default.isCallExpression(initializer)) {
235
+ // find all PropertyAccessExpressions in the arguments of the function call
236
+ const sourceFields = initializer.arguments.flatMap(arg => findPropertyAccesses(arg));
237
+ results.push({
238
+ targetField,
239
+ sourceField: sourceFields.length > 0 ? sourceFields.join(', ') : initializer.arguments.map(arg => arg.getText()).join(', '),
240
+ transformation: initializer.expression.getText()
241
+ });
242
+ }
243
+ // complex case: nested ObjectLiteralExpression
244
+ else if (typescript_1.default.isObjectLiteralExpression(initializer)) {
245
+ // extract all nested mappings from the nested object literal
246
+ const nestedMappings = extractNestedProperties(initializer, targetField);
247
+ results.push(...nestedMappings);
248
+ }
249
+ // other cases: constant value or transformation
250
+ else {
251
+ const sourceFields = findPropertyAccesses(initializer);
252
+ if (sourceFields.length > 0) {
253
+ results.push({
254
+ targetField,
255
+ sourceField: sourceFields.join(', '),
256
+ transformation: initializer.kind !== typescript_1.default.SyntaxKind.StringLiteral &&
257
+ initializer.kind !== typescript_1.default.SyntaxKind.NumericLiteral &&
258
+ initializer.kind !== typescript_1.default.SyntaxKind.TrueKeyword &&
259
+ initializer.kind !== typescript_1.default.SyntaxKind.FalseKeyword ?
260
+ 'Transformed' : 'Direct mapping'
261
+ });
262
+ }
263
+ else {
264
+ results.push({
265
+ targetField,
266
+ sourceField: 'Constant value',
267
+ transformation: initializer.getText()
268
+ });
269
+ }
270
+ }
271
+ }
272
+ });
273
+ }
274
+ }
275
+ // recursive call for all child nodes
276
+ typescript_1.default.forEachChild(node, visit);
277
+ }
278
+ visit(methodNode);
279
+ return results;
280
+ }
281
+ // find method in AST and extract mappings
282
+ const methodNode = findMethod(sourceFile);
283
+ if (methodNode) {
284
+ return extractMappings(methodNode);
285
+ }
286
+ return [];
287
+ }
288
+ //# sourceMappingURL=ast-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-analyzer.js","sourceRoot":"","sources":["../../src/analyzers/ast-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { MappingDocumentationOptions } from '../types';
2
+ export declare function GenerateMappingDocumentation(options: MappingDocumentationOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping-documentation.d.ts","sourceRoot":"","sources":["../../src/decorators/mapping-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAI5D,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,2BAA2B,IAE7E,QAAQ,GAAG,EACX,aAAa,MAAM,EACnB,YAAY,kBAAkB,wBAgBjC;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,CAErD"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GenerateMappingDocumentation = GenerateMappingDocumentation;
4
+ function GenerateMappingDocumentation(options) {
5
+ return function (target, propertyKey, descriptor) {
6
+ return descriptor;
7
+ };
8
+ }
9
+ //# sourceMappingURL=mapping-documentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping-documentation.js","sourceRoot":"","sources":["../../src/decorators/mapping-documentation.ts"],"names":[],"mappings":";;AAGA,oEAQC;AARD,SAAgB,4BAA4B,CAAC,OAAoC;IAC7E,OAAO,UACH,MAAW,EACX,WAAmB,EACnB,UAA8B;QAE9B,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function generateDocumentation(outputPath: string): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-generator.d.ts","sourceRoot":"","sources":["../../src/generators/html-generator.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE9D"}