@futdevpro/dynamo-eslint 1.15.12 → 1.15.15

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.
@@ -92,8 +92,23 @@ module.exports = [
92
92
  'quotes': ['warn', 'single', { allowTemplateLiterals: true }],
93
93
  // CCAP no-object-shorthand: tilos a `{ foo }` shorthand, mindig `{ foo: foo }`
94
94
  'object-shorthand': ['warn', 'never'],
95
- // CCAP no-bracket-property-access: dot-notation előnyben (ahol lehetséges)
96
- 'dot-notation': 'warn',
95
+ // CCAP no-bracket-property-access: dot-notation előnyben (ahol lehetséges).
96
+ // A STOCK `dot-notation`-t KIKAPCSOLJUK és a type-aware
97
+ // `@typescript-eslint/dot-notation`-t hasznaljuk helyette: a stock variant
98
+ // a `service['protectedMember']` bracket-access-t is `service.protectedMember`-re
99
+ // javitana (--fix), ami a class-hierarchian KIVULROL (pl. spec fajlbol) elert
100
+ // protected/private tagnal TS2445 fordito-hibat okoz. A bracket-forma ott a
101
+ // kanonikus TS escape-hatch. A type-aware variant a checker-bol latja a
102
+ // modositokat, ezert NEM nyul a protected/private/index-signature elerese-hez.
103
+ 'dot-notation': 'off',
104
+ '@typescript-eslint/dot-notation': [
105
+ 'warn',
106
+ {
107
+ allowProtectedClassPropertyAccess: true,
108
+ allowPrivateClassPropertyAccess: true,
109
+ allowIndexSignaturePropertyAccess: true,
110
+ },
111
+ ],
97
112
  // TypeScript rules
98
113
  '@typescript-eslint/no-unused-vars': 'warn',
99
114
  '@typescript-eslint/explicit-function-return-type': ['warn', { allowTypedFunctionExpressions: false }],
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"require-jsdoc-description.d.ts","sourceRoot":"","sources":["../../../src/plugin/rules/require-jsdoc-description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAM9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UA+ehB,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"require-jsdoc-description.d.ts","sourceRoot":"","sources":["../../../src/plugin/rules/require-jsdoc-description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAM9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAmjBhB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -151,12 +151,70 @@ const rule = {
151
151
  return '';
152
152
  }
153
153
  }
154
+ /**
155
+ * Egy node "tartalmi" leading-comment-jenek megtalalasahoz fel kell masznunk a
156
+ * szintaktikai burkokon, mert a JSDoc nem mindig a belso deklaracio ele kerul:
157
+ * - `export class X` / `export interface Y` / `export type Z` / `export enum E`:
158
+ * a JSDoc az ExportNamedDeclaration / ExportDefaultDeclaration ELE kerul, NEM
159
+ * a belso deklaracio-node ele.
160
+ * - arrow-const (`export const fn = () => {}`): a JSDoc a VariableDeclaration
161
+ * (ill. annak export-wrapper-e) ele kerul, nem a VariableDeclarator ele.
162
+ * - dekorator (pl. `@Component()`-tel annotalt class): a JSDoc a dekorator-stack
163
+ * fole kerul, igy a belso class-node kozvetlen elott nincs comment.
164
+ * Ez a helper visszaadja azokat a "horgony" node-okat, amik ele a
165
+ * getCommentsBefore-t erdemes hivni — sorrendben a legkulso burkolotol befele.
166
+ */
167
+ function getCommentAnchors(node) {
168
+ const anchors = [node];
169
+ try {
170
+ let climbed = node;
171
+ // arrow-const: VariableDeclarator → VariableDeclaration
172
+ if (climbed.parent && climbed.parent.type === 'VariableDeclaration') {
173
+ climbed = climbed.parent;
174
+ }
175
+ // export-wrapper: <decl> → ExportNamedDeclaration / ExportDefaultDeclaration
176
+ // (csak akkor maszunk fel, ha a wrapper tenyleg EZT a node-ot exportalja)
177
+ if (climbed.parent
178
+ && (climbed.parent.type === 'ExportNamedDeclaration' || climbed.parent.type === 'ExportDefaultDeclaration')
179
+ && climbed.parent.declaration === climbed) {
180
+ climbed = climbed.parent;
181
+ }
182
+ // a legkulso burkolo elore kerul (ott van a tartalmi JSDoc tipikusan)
183
+ if (climbed !== node) {
184
+ anchors.unshift(climbed);
185
+ }
186
+ // dekorator: a JSDoc a dekorator-stack fole is kerulhet
187
+ if (Array.isArray(node.decorators) && node.decorators.length > 0) {
188
+ anchors.push(node.decorators[0]);
189
+ }
190
+ }
191
+ catch (error) {
192
+ console.error('[require-jsdoc-description] Error in getCommentAnchors:', error);
193
+ }
194
+ return anchors;
195
+ }
196
+ /**
197
+ * Az osszes szoba johheto "horgony" elott levo comment osszegyujtese. A
198
+ * getLeadingComments a getCommentsBefore-t MINDEN anchor-ra meghivja es
199
+ * osszefuzi az eredmenyt — a hasValidJSDoc utana az elso JSDoc-blokkot
200
+ * keresi ki belole, igy mindegy hogy melyik burok elott talalja meg.
201
+ */
202
+ function getLeadingComments(node) {
203
+ const all = [];
204
+ for (const anchor of getCommentAnchors(node)) {
205
+ const before = sourceCode.getCommentsBefore(anchor) || [];
206
+ for (const comment of before) {
207
+ all.push(comment);
208
+ }
209
+ }
210
+ return all;
211
+ }
154
212
  /**
155
213
  * Check if node has valid JSDoc comment
156
214
  */
157
215
  function hasValidJSDoc(node) {
158
216
  try {
159
- const comments = sourceCode.getCommentsBefore(node);
217
+ const comments = getLeadingComments(node);
160
218
  // Find JSDoc comment (/** ... */)
161
219
  // JSDoc comments are Block comments where the value (content between /** and */) starts with *
162
220
  const jsdocComment = comments.find((comment) => {
@@ -1 +1 @@
1
- {"version":3,"file":"require-jsdoc-description.js","sourceRoot":"","sources":["../../../src/plugin/rules/require-jsdoc-description.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"require-jsdoc-description.js","sourceRoot":"","sources":["../../../src/plugin/rules/require-jsdoc-description.ts"],"names":[],"mappings":"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"}
@@ -24,5 +24,52 @@
24
24
  * @author Future Development Program Ltd.
25
25
  * @version 1.14.3
26
26
  */
27
- export {};
27
+ import * as ts from 'typescript';
28
+ /**
29
+ * Result of fixing type annotations in a single file
30
+ */
31
+ interface FixResult {
32
+ /** Path to the file that was processed */
33
+ file: string;
34
+ /** Whether the file was actually modified */
35
+ fixed: boolean;
36
+ /** Number of type annotations added to the file */
37
+ changes: number;
38
+ }
39
+ /**
40
+ * Egy `checker.typeToString(...)`-bol jovo TIPUS-STRING-et valodi `ts.TypeNode`-da
41
+ * alakit ugy, hogy egy eldobhato `type __T = <typeString>;` forrast parse-ol es
42
+ * kiszedi belole a TypeNode-ot.
43
+ *
44
+ * MIERT: a regi megoldas `ts.factory.createTypeReferenceNode(typeString)`-et hivott,
45
+ * ami CSAK bare identifier-t (entity-name-et) fogad el. Egy generic/union/stb.
46
+ * tipus-string (pl. `Record<string, unknown>`) eseten ez tort node-ot epitett, amit
47
+ * a printer csonka `Record`-kent (type-argumentumok nelkul) emittalt — ami EGYSZERRE
48
+ * tsc-hiba ES uj lint-hiba, igy egyetlen fix-futas 0 → 1+ lint-szamot regresszalt.
49
+ * A `typeToString` mindig syntactically valid TS tipus-syntaxot ad vissza, ezert a
50
+ * `type __T = …;` parse-olas minden esetre korrekt TypeNode-ot allit elo.
51
+ *
52
+ * BAIL-OUT: ha a tipus nem alakithato biztonsagos node-da — pl. inline
53
+ * `import("/abs/path").Foo` format tartalmaz, ami abszolut path-t szivarogtatna a
54
+ * fajlba —, `undefined`-et adunk vissza. A hivo ilyenkor KIHAGYJA az annotaciot:
55
+ * jobb annotalatlanul hagyni (marad a figyelmeztetes), mint tort kodot irni.
56
+ */
57
+ declare function buildTypeNodeFromString(typeString: string): ts.TypeNode | undefined;
58
+ /**
59
+ * Adds type annotations to functions and arrow functions in a TypeScript file
60
+ *
61
+ * Uses TypeScript's compiler API to analyze the file, infer return types,
62
+ * and automatically add explicit type annotations where missing.
63
+ *
64
+ * @param filePath - Path to the TypeScript file to process
65
+ * @returns FixResult object containing statistics about the changes made
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * const result = addTypesToFile('./src/utils.ts');
70
+ * console.log(`Added ${result.changes} type annotations to ${result.file}`);
71
+ * ```
72
+ */
73
+ declare function addTypesToFile(filePath: string): FixResult;
74
+ export { buildTypeNodeFromString, addTypesToFile };
28
75
  //# sourceMappingURL=fix-return-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix-return-types.d.ts","sourceRoot":"","sources":["../../src/scripts/fix-return-types.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}
1
+ {"version":3,"file":"fix-return-types.d.ts","sourceRoot":"","sources":["../../src/scripts/fix-return-types.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAMjC;;GAEG;AACH,UAAU,SAAS;IACjB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,EAAE,CAAC,QAAQ,GAAG,SAAS,CAqB5E;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CA+GnD;AAyED,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,CAAC"}
@@ -26,11 +26,45 @@
26
26
  * @version 1.14.3
27
27
  */
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.buildTypeNodeFromString = buildTypeNodeFromString;
30
+ exports.addTypesToFile = addTypesToFile;
29
31
  const tslib_1 = require("tslib");
30
32
  const ts = tslib_1.__importStar(require("typescript"));
31
33
  const fs = tslib_1.__importStar(require("fs"));
32
34
  const fast_glob_1 = tslib_1.__importDefault(require("fast-glob"));
33
35
  const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
36
+ /**
37
+ * Egy `checker.typeToString(...)`-bol jovo TIPUS-STRING-et valodi `ts.TypeNode`-da
38
+ * alakit ugy, hogy egy eldobhato `type __T = <typeString>;` forrast parse-ol es
39
+ * kiszedi belole a TypeNode-ot.
40
+ *
41
+ * MIERT: a regi megoldas `ts.factory.createTypeReferenceNode(typeString)`-et hivott,
42
+ * ami CSAK bare identifier-t (entity-name-et) fogad el. Egy generic/union/stb.
43
+ * tipus-string (pl. `Record<string, unknown>`) eseten ez tort node-ot epitett, amit
44
+ * a printer csonka `Record`-kent (type-argumentumok nelkul) emittalt — ami EGYSZERRE
45
+ * tsc-hiba ES uj lint-hiba, igy egyetlen fix-futas 0 → 1+ lint-szamot regresszalt.
46
+ * A `typeToString` mindig syntactically valid TS tipus-syntaxot ad vissza, ezert a
47
+ * `type __T = …;` parse-olas minden esetre korrekt TypeNode-ot allit elo.
48
+ *
49
+ * BAIL-OUT: ha a tipus nem alakithato biztonsagos node-da — pl. inline
50
+ * `import("/abs/path").Foo` format tartalmaz, ami abszolut path-t szivarogtatna a
51
+ * fajlba —, `undefined`-et adunk vissza. A hivo ilyenkor KIHAGYJA az annotaciot:
52
+ * jobb annotalatlanul hagyni (marad a figyelmeztetes), mint tort kodot irni.
53
+ */
54
+ function buildTypeNodeFromString(typeString) {
55
+ // Inline `import(...)` tipus → projekt-specifikus abszolut/relativ path-t vinne a
56
+ // fajlba; sosem biztonsagos textualisan beilleszteni, ezert bail.
57
+ if (typeString.includes('import(')) {
58
+ return undefined;
59
+ }
60
+ const probe = ts.createSourceFile('__dynamo_type_probe__.ts', `type __T = ${typeString};`, ts.ScriptTarget.Latest,
61
+ /* setParentNodes */ false);
62
+ const statement = probe.statements[0];
63
+ if (!statement || !ts.isTypeAliasDeclaration(statement) || !statement.type) {
64
+ return undefined;
65
+ }
66
+ return statement.type;
67
+ }
34
68
  /**
35
69
  * Adds type annotations to functions and arrow functions in a TypeScript file
36
70
  *
@@ -75,11 +109,15 @@ function addTypesToFile(filePath) {
75
109
  const typeString = checker.typeToString(returnType);
76
110
  // Add type annotation if it's not void or any
77
111
  if (typeString !== 'void' && typeString !== 'any') {
78
- const newType = ts.factory.createTypeReferenceNode(typeString);
79
- const updatedNode = ts.factory.updateFunctionDeclaration(node, node.modifiers, node.asteriskToken, node.name, node.typeParameters, node.parameters, newType, node.body);
80
- changes++;
81
- hasChanges = true;
82
- return ts.visitEachChild(updatedNode, visit, {});
112
+ const newType = buildTypeNodeFromString(typeString);
113
+ // newType === undefined → a tipus nem serializalhato biztonsagosan,
114
+ // kihagyjuk az annotaciot ahelyett hogy tort kodot irnank (B2 bail-out).
115
+ if (newType) {
116
+ const updatedNode = ts.factory.updateFunctionDeclaration(node, node.modifiers, node.asteriskToken, node.name, node.typeParameters, node.parameters, newType, node.body);
117
+ changes++;
118
+ hasChanges = true;
119
+ return ts.visitEachChild(updatedNode, visit, {});
120
+ }
83
121
  }
84
122
  }
85
123
  }
@@ -91,11 +129,15 @@ function addTypesToFile(filePath) {
91
129
  const typeString = checker.typeToString(returnType);
92
130
  // Add type annotation if it's not void or any
93
131
  if (typeString !== 'void' && typeString !== 'any') {
94
- const newType = ts.factory.createTypeReferenceNode(typeString);
95
- const updatedNode = ts.factory.updateArrowFunction(node, node.modifiers, node.typeParameters, node.parameters, newType, node.equalsGreaterThanToken, node.body);
96
- changes++;
97
- hasChanges = true;
98
- return ts.visitEachChild(updatedNode, visit, {});
132
+ const newType = buildTypeNodeFromString(typeString);
133
+ // newType === undefined → a tipus nem serializalhato biztonsagosan,
134
+ // kihagyjuk az annotaciot ahelyett hogy tort kodot irnank (B2 bail-out).
135
+ if (newType) {
136
+ const updatedNode = ts.factory.updateArrowFunction(node, node.modifiers, node.typeParameters, node.parameters, newType, node.equalsGreaterThanToken, node.body);
137
+ changes++;
138
+ hasChanges = true;
139
+ return ts.visitEachChild(updatedNode, visit, {});
140
+ }
99
141
  }
100
142
  }
101
143
  }
@@ -172,9 +214,14 @@ async function main() {
172
214
  fsm_dynamo_1.DyFM_Log.log('✅ No files needed type annotation fixes!');
173
215
  }
174
216
  }
175
- // Execute the main function and handle any errors
176
- main().catch((err) => {
177
- fsm_dynamo_1.DyFM_Log.error('Fix script failed:', err);
178
- process.exit(1);
179
- });
217
+ // Csak akkor futtatjuk a teljes fajl-scan-t, ha a scriptet KOZVETLENUL hivjak
218
+ // (CLI bin / `npm run fix:return-types`). Import eseten (pl. spec a helper-ekhez)
219
+ // NEM indul el a main(), igy a tiszta segedfuggvenyek unit-tesztelhetok.
220
+ if (require.main === module) {
221
+ // Execute the main function and handle any errors
222
+ main().catch((err) => {
223
+ fsm_dynamo_1.DyFM_Log.error('Fix script failed:', err);
224
+ process.exit(1);
225
+ });
226
+ }
180
227
  //# sourceMappingURL=fix-return-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix-return-types.js","sourceRoot":"","sources":["../../src/scripts/fix-return-types.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAEH,uDAAiC;AACjC,+CAAyB;AAEzB,kEAA2B;AAC3B,sDAAiD;AAcjD;;;;;;;;;;;;;;GAcG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,iCAAiC;IACjC,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE3F,8CAA8C;IAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE;QAC3C,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;QAC9B,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;QAC5B,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB;;;;;OAKG;IACH,SAAS,KAAK,CAAC,IAAa;QAC1B,oDAAoD;QACpD,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;YAE5D,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;gBAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAEpD,8CAA8C;gBAC9C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;oBAClD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;oBAC/D,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,CACtD,IAAI,EACJ,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,UAAU,EACf,OAAO,EACP,IAAI,CAAC,IAAI,CACV,CAAC;oBACF,OAAO,EAAE,CAAC;oBACV,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,EAA8B,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;YAE5D,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;gBAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAEpD,8CAA8C;gBAC9C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;oBAClD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;oBAC/D,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAChD,IAAI,EACJ,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,UAAU,EACf,OAAO,EACP,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,IAAI,CACV,CAAC;oBACF,OAAO,EAAE,CAAC;oBACV,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,EAA8B,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,8DAA8D;QAC9D,0CAA0C;QAE1C,OAAO,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,EAA8B,CAAC,CAAC;IACxE,CAAC;IAED,sCAAsC;IACtC,MAAM,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,EAA8B,CAAC,CAAC;IAEpF,gEAAgE;IAChE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,UAAU;QACjB,OAAO;KACR,CAAC;AACJ,CAAC;AAGD;;;;;;;;;GASG;AACH,KAAK,UAAU,IAAI;IACjB,yEAAyE;IACzE,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAE,EAAC,CAAE,eAAe,CAAE,EAAE;QAC1C,MAAM,EAAE;YACN,oBAAoB;YACpB,aAAa;YACb,YAAY;YACZ,cAAc;YACd,cAAc;SACf;KACF,CAAC,CAAC;IAEH,qBAAQ,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,MAAM,WAAW,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,iCAAiC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErB,yBAAyB;YACzB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,UAAU,EAAE,CAAC;gBACb,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC;gBAC/B,qBAAQ,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,OAAO,wBAAwB,IAAI,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAQ,CAAC,KAAK,CAAC,sBAAsB,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,qBAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAClC,qBAAQ,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,qBAAQ,CAAC,GAAG,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IAC9C,qBAAQ,CAAC,GAAG,CAAC,oCAAoC,YAAY,EAAE,CAAC,CAAC;IAEjE,8CAA8C;IAC9C,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,qBAAQ,CAAC,GAAG,CAAC,6CAA6C,UAAU,SAAS,CAAC,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,qBAAQ,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,kDAAkD;AAClD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,qBAAQ,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"fix-return-types.js","sourceRoot":"","sources":["../../src/scripts/fix-return-types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/dynamo-eslint",
3
- "version": "1.15.12",
3
+ "version": "1.15.15",
4
4
  "description": "Shared ESLint configs, Dynamo-powered plugin and validators for FutDevPro stacks",
5
5
  "author": "Future Development Program Ltd.",
6
6
  "license": "ISC",
@@ -94,9 +94,24 @@ module.exports = [
94
94
  'quotes': [ 'warn', 'single', { allowTemplateLiterals: true }],
95
95
  // CCAP no-object-shorthand: tilos a `{ foo }` shorthand, mindig `{ foo: foo }`
96
96
  'object-shorthand': [ 'warn', 'never' ],
97
- // CCAP no-bracket-property-access: dot-notation előnyben (ahol lehetséges)
98
- 'dot-notation': 'warn',
99
-
97
+ // CCAP no-bracket-property-access: dot-notation előnyben (ahol lehetséges).
98
+ // A STOCK `dot-notation`-t KIKAPCSOLJUK és a type-aware
99
+ // `@typescript-eslint/dot-notation`-t hasznaljuk helyette: a stock variant
100
+ // a `service['protectedMember']` bracket-access-t is `service.protectedMember`-re
101
+ // javitana (--fix), ami a class-hierarchian KIVULROL (pl. spec fajlbol) elert
102
+ // protected/private tagnal TS2445 fordito-hibat okoz. A bracket-forma ott a
103
+ // kanonikus TS escape-hatch. A type-aware variant a checker-bol latja a
104
+ // modositokat, ezert NEM nyul a protected/private/index-signature elerese-hez.
105
+ 'dot-notation': 'off',
106
+ '@typescript-eslint/dot-notation': [
107
+ 'warn',
108
+ {
109
+ allowProtectedClassPropertyAccess: true,
110
+ allowPrivateClassPropertyAccess: true,
111
+ allowIndexSignaturePropertyAccess: true,
112
+ },
113
+ ],
114
+
100
115
  // TypeScript rules
101
116
  '@typescript-eslint/no-unused-vars': 'warn',
102
117
  '@typescript-eslint/explicit-function-return-type': [ 'warn', { allowTypedFunctionExpressions: false }],
@@ -622,6 +622,131 @@ describe('| require-jsdoc-description', () => {
622
622
  rule.FunctionDeclaration(mockNode);
623
623
  });
624
624
 
625
+ it('| should find JSDoc on the export wrapper for `export class X`', () => {
626
+ // A belso ClassDeclaration ele NINCS comment — csak az ExportNamedDeclaration ele.
627
+ // A fix nelkul a szabaly tevesen "missingJSDoc"-ot jelez.
628
+ const jsdoc = {
629
+ type: 'Block',
630
+ value: '* Exported class with JSDoc above the export keyword.',
631
+ loc: { end: { line: 1 } },
632
+ };
633
+ const exportNode: any = { type: 'ExportNamedDeclaration' };
634
+ const mockContext = {
635
+ report: () => {
636
+ fail('Should not report — JSDoc is present above the export wrapper');
637
+ },
638
+ options: [{ scope: 'public' }],
639
+ sourceCode: {
640
+ getCommentsBefore: (anchor: any): any[] => (anchor === exportNode ? [ jsdoc ] : []),
641
+ },
642
+ } as any;
643
+
644
+ const rule = requireJSDocRule.create(mockContext);
645
+
646
+ const mockNode: any = {
647
+ type: 'ClassDeclaration',
648
+ id: { name: 'X' },
649
+ loc: { start: { line: 2 } },
650
+ };
651
+ mockNode.parent = exportNode;
652
+ exportNode.declaration = mockNode;
653
+
654
+ rule.ClassDeclaration(mockNode);
655
+ });
656
+
657
+ it('| should find JSDoc on the export wrapper for an arrow-const function', () => {
658
+ const jsdoc = {
659
+ type: 'Block',
660
+ value: '* Arrow-const with explicit JSDoc above the export.',
661
+ loc: { end: { line: 1 } },
662
+ };
663
+ const varDecl: any = { type: 'VariableDeclaration' };
664
+ const exportNode: any = { type: 'ExportNamedDeclaration', declaration: varDecl };
665
+ varDecl.parent = exportNode;
666
+
667
+ const mockContext = {
668
+ report: () => {
669
+ fail('Should not report — arrow-const JSDoc is present above the export');
670
+ },
671
+ options: [{ scope: 'public' }],
672
+ sourceCode: {
673
+ getCommentsBefore: (anchor: any): any[] => (anchor === exportNode ? [ jsdoc ] : []),
674
+ },
675
+ } as any;
676
+
677
+ const rule = requireJSDocRule.create(mockContext);
678
+
679
+ const mockNode: any = {
680
+ type: 'VariableDeclarator',
681
+ id: { name: 'fn' },
682
+ init: { type: 'ArrowFunctionExpression' },
683
+ loc: { start: { line: 2 } },
684
+ parent: varDecl,
685
+ };
686
+
687
+ rule.VariableDeclarator(mockNode);
688
+ });
689
+
690
+ it('| should find JSDoc above a decorator stack', () => {
691
+ const jsdoc = {
692
+ type: 'Block',
693
+ value: '* Decorated component with JSDoc above the decorator.',
694
+ loc: { end: { line: 1 } },
695
+ };
696
+ const decorator: any = { type: 'Decorator' };
697
+
698
+ const mockContext = {
699
+ report: () => {
700
+ fail('Should not report — JSDoc is present above the decorator stack');
701
+ },
702
+ options: [{ scope: 'public' }],
703
+ sourceCode: {
704
+ getCommentsBefore: (anchor: any): any[] => (anchor === decorator ? [ jsdoc ] : []),
705
+ },
706
+ } as any;
707
+
708
+ const rule = requireJSDocRule.create(mockContext);
709
+
710
+ const mockNode: any = {
711
+ type: 'ClassDeclaration',
712
+ id: { name: 'X' },
713
+ loc: { start: { line: 2 } },
714
+ decorators: [ decorator ],
715
+ };
716
+
717
+ rule.ClassDeclaration(mockNode);
718
+ });
719
+
720
+ it('| should still report a genuinely missing JSDoc on an export-wrapped class', () => {
721
+ let reportCalled = false;
722
+ const exportNode: any = { type: 'ExportNamedDeclaration' };
723
+ const mockContext = {
724
+ report: (options: any) => {
725
+ reportCalled = true;
726
+ expect(options.messageId).toBe('missingJSDoc');
727
+ expect(options.data.name).toBe('Undocumented');
728
+ },
729
+ options: [{ scope: 'public' }],
730
+ sourceCode: {
731
+ getCommentsBefore: (): any[] => [],
732
+ },
733
+ } as any;
734
+
735
+ const rule = requireJSDocRule.create(mockContext);
736
+
737
+ const mockNode: any = {
738
+ type: 'ClassDeclaration',
739
+ id: { name: 'Undocumented' },
740
+ loc: { start: { line: 1 } },
741
+ };
742
+ mockNode.parent = exportNode;
743
+ exportNode.declaration = mockNode;
744
+
745
+ rule.ClassDeclaration(mockNode);
746
+
747
+ expect(reportCalled).toBe(true);
748
+ });
749
+
625
750
  it('| should report when abstract class is missing JSDoc', () => {
626
751
  let reportCalled = false;
627
752
  const mockContext = {
@@ -178,12 +178,80 @@ const rule: Rule.RuleModule = {
178
178
  }
179
179
  }
180
180
 
181
+ /**
182
+ * Egy node "tartalmi" leading-comment-jenek megtalalasahoz fel kell masznunk a
183
+ * szintaktikai burkokon, mert a JSDoc nem mindig a belso deklaracio ele kerul:
184
+ * - `export class X` / `export interface Y` / `export type Z` / `export enum E`:
185
+ * a JSDoc az ExportNamedDeclaration / ExportDefaultDeclaration ELE kerul, NEM
186
+ * a belso deklaracio-node ele.
187
+ * - arrow-const (`export const fn = () => {}`): a JSDoc a VariableDeclaration
188
+ * (ill. annak export-wrapper-e) ele kerul, nem a VariableDeclarator ele.
189
+ * - dekorator (pl. `@Component()`-tel annotalt class): a JSDoc a dekorator-stack
190
+ * fole kerul, igy a belso class-node kozvetlen elott nincs comment.
191
+ * Ez a helper visszaadja azokat a "horgony" node-okat, amik ele a
192
+ * getCommentsBefore-t erdemes hivni — sorrendben a legkulso burkolotol befele.
193
+ */
194
+ function getCommentAnchors(node: any): any[] {
195
+ const anchors: any[] = [ node ];
196
+
197
+ try {
198
+ let climbed: any = node;
199
+
200
+ // arrow-const: VariableDeclarator → VariableDeclaration
201
+ if (climbed.parent && climbed.parent.type === 'VariableDeclaration') {
202
+ climbed = climbed.parent;
203
+ }
204
+
205
+ // export-wrapper: <decl> → ExportNamedDeclaration / ExportDefaultDeclaration
206
+ // (csak akkor maszunk fel, ha a wrapper tenyleg EZT a node-ot exportalja)
207
+ if (climbed.parent
208
+ && (climbed.parent.type === 'ExportNamedDeclaration' || climbed.parent.type === 'ExportDefaultDeclaration')
209
+ && climbed.parent.declaration === climbed) {
210
+ climbed = climbed.parent;
211
+ }
212
+
213
+ // a legkulso burkolo elore kerul (ott van a tartalmi JSDoc tipikusan)
214
+ if (climbed !== node) {
215
+ anchors.unshift(climbed);
216
+ }
217
+
218
+ // dekorator: a JSDoc a dekorator-stack fole is kerulhet
219
+ if (Array.isArray(node.decorators) && node.decorators.length > 0) {
220
+ anchors.push(node.decorators[0]);
221
+ }
222
+ } catch (error) {
223
+ console.error('[require-jsdoc-description] Error in getCommentAnchors:', error);
224
+ }
225
+
226
+ return anchors;
227
+ }
228
+
229
+ /**
230
+ * Az osszes szoba johheto "horgony" elott levo comment osszegyujtese. A
231
+ * getLeadingComments a getCommentsBefore-t MINDEN anchor-ra meghivja es
232
+ * osszefuzi az eredmenyt — a hasValidJSDoc utana az elso JSDoc-blokkot
233
+ * keresi ki belole, igy mindegy hogy melyik burok elott talalja meg.
234
+ */
235
+ function getLeadingComments(node: any): any[] {
236
+ const all: any[] = [];
237
+
238
+ for (const anchor of getCommentAnchors(node)) {
239
+ const before: any[] = sourceCode.getCommentsBefore(anchor) || [];
240
+
241
+ for (const comment of before) {
242
+ all.push(comment);
243
+ }
244
+ }
245
+
246
+ return all;
247
+ }
248
+
181
249
  /**
182
250
  * Check if node has valid JSDoc comment
183
251
  */
184
252
  function hasValidJSDoc(node: any): { hasJSDoc: boolean; isValid: boolean; isOnPreviousLine: boolean } {
185
253
  try {
186
- const comments = sourceCode.getCommentsBefore(node);
254
+ const comments = getLeadingComments(node);
187
255
 
188
256
  // Find JSDoc comment (/** ... */)
189
257
  // JSDoc comments are Block comments where the value (content between /** and */) starts with *
@@ -0,0 +1,65 @@
1
+ import * as ts from 'typescript';
2
+
3
+ import { buildTypeNodeFromString } from './fix-return-types';
4
+
5
+ /**
6
+ * A `buildTypeNodeFromString` helper-t fedi le — ez a B2 regresszio magja: a regi
7
+ * `ts.factory.createTypeReferenceNode(typeString)` csonka `Record`-ot emittalt a
8
+ * generic tipusoknal. A helper most a teljes tipus-stringet valodi TypeNode-da
9
+ * parse-olja, vagy bail-el (undefined), ha nem biztonsagos.
10
+ */
11
+ describe('| fix-return-types buildTypeNodeFromString', () => {
12
+ const printer: ts.Printer = ts.createPrinter();
13
+ const dummySource: ts.SourceFile = ts.createSourceFile('__dummy__.ts', '', ts.ScriptTarget.Latest, false);
14
+
15
+ /** Egy TypeNode-ot vissza-printel forras-szovegge az assert-hez. */
16
+ function printType(node: ts.TypeNode): string {
17
+ return printer.printNode(ts.EmitHint.Unspecified, node, dummySource);
18
+ }
19
+
20
+ it('| should keep the type arguments of a generic Record (no truncation)', () => {
21
+ const node: ts.TypeNode | undefined = buildTypeNodeFromString('Record<string, unknown>');
22
+
23
+ expect(node).toBeDefined();
24
+
25
+ const printed: string = printType(node as ts.TypeNode);
26
+
27
+ // A regi bug itt csonka "Record"-ot adott — most a teljes generic megmarad.
28
+ expect(printed).toContain('Record');
29
+ expect(printed).toContain('<');
30
+ expect(printed).toContain('string');
31
+ expect(printed).toContain('unknown');
32
+ expect(printed).not.toMatch(/^Record;?$/);
33
+ });
34
+
35
+ it('| should preserve a union type', () => {
36
+ const node: ts.TypeNode | undefined = buildTypeNodeFromString('string | null');
37
+
38
+ expect(node).toBeDefined();
39
+ expect(printType(node as ts.TypeNode)).toContain('|');
40
+ });
41
+
42
+ it('| should preserve a nested generic (Promise of array)', () => {
43
+ const node: ts.TypeNode | undefined = buildTypeNodeFromString('Promise<number[]>');
44
+
45
+ expect(node).toBeDefined();
46
+
47
+ const printed: string = printType(node as ts.TypeNode);
48
+ expect(printed).toContain('Promise');
49
+ expect(printed).toContain('number');
50
+ expect(printed).toContain('[]');
51
+ });
52
+
53
+ it('| should bail (undefined) on an inline import() type to avoid leaking a path', () => {
54
+ const node: ts.TypeNode | undefined = buildTypeNodeFromString('import("/abs/path/to/mod").Foo');
55
+
56
+ expect(node).toBeUndefined();
57
+ });
58
+
59
+ it('| should still handle a plain identifier type', () => {
60
+ const node: ts.TypeNode | undefined = buildTypeNodeFromString('MyType');
61
+
62
+ expect(node).toBeDefined();
63
+ expect(printType(node as ts.TypeNode)).toBe('MyType');
64
+ });
65
+ });
@@ -43,6 +43,47 @@ interface FixResult {
43
43
  changes: number;
44
44
  }
45
45
 
46
+ /**
47
+ * Egy `checker.typeToString(...)`-bol jovo TIPUS-STRING-et valodi `ts.TypeNode`-da
48
+ * alakit ugy, hogy egy eldobhato `type __T = <typeString>;` forrast parse-ol es
49
+ * kiszedi belole a TypeNode-ot.
50
+ *
51
+ * MIERT: a regi megoldas `ts.factory.createTypeReferenceNode(typeString)`-et hivott,
52
+ * ami CSAK bare identifier-t (entity-name-et) fogad el. Egy generic/union/stb.
53
+ * tipus-string (pl. `Record<string, unknown>`) eseten ez tort node-ot epitett, amit
54
+ * a printer csonka `Record`-kent (type-argumentumok nelkul) emittalt — ami EGYSZERRE
55
+ * tsc-hiba ES uj lint-hiba, igy egyetlen fix-futas 0 → 1+ lint-szamot regresszalt.
56
+ * A `typeToString` mindig syntactically valid TS tipus-syntaxot ad vissza, ezert a
57
+ * `type __T = …;` parse-olas minden esetre korrekt TypeNode-ot allit elo.
58
+ *
59
+ * BAIL-OUT: ha a tipus nem alakithato biztonsagos node-da — pl. inline
60
+ * `import("/abs/path").Foo` format tartalmaz, ami abszolut path-t szivarogtatna a
61
+ * fajlba —, `undefined`-et adunk vissza. A hivo ilyenkor KIHAGYJA az annotaciot:
62
+ * jobb annotalatlanul hagyni (marad a figyelmeztetes), mint tort kodot irni.
63
+ */
64
+ function buildTypeNodeFromString(typeString: string): ts.TypeNode | undefined {
65
+ // Inline `import(...)` tipus → projekt-specifikus abszolut/relativ path-t vinne a
66
+ // fajlba; sosem biztonsagos textualisan beilleszteni, ezert bail.
67
+ if (typeString.includes('import(')) {
68
+ return undefined;
69
+ }
70
+
71
+ const probe: ts.SourceFile = ts.createSourceFile(
72
+ '__dynamo_type_probe__.ts',
73
+ `type __T = ${typeString};`,
74
+ ts.ScriptTarget.Latest,
75
+ /* setParentNodes */ false,
76
+ );
77
+
78
+ const statement: ts.Statement | undefined = probe.statements[0];
79
+
80
+ if (!statement || !ts.isTypeAliasDeclaration(statement) || !statement.type) {
81
+ return undefined;
82
+ }
83
+
84
+ return statement.type;
85
+ }
86
+
46
87
  /**
47
88
  * Adds type annotations to functions and arrow functions in a TypeScript file
48
89
  *
@@ -92,20 +133,25 @@ function addTypesToFile(filePath: string): FixResult {
92
133
 
93
134
  // Add type annotation if it's not void or any
94
135
  if (typeString !== 'void' && typeString !== 'any') {
95
- const newType = ts.factory.createTypeReferenceNode(typeString);
96
- const updatedNode = ts.factory.updateFunctionDeclaration(
97
- node,
98
- node.modifiers,
99
- node.asteriskToken,
100
- node.name,
101
- node.typeParameters,
102
- node.parameters,
103
- newType,
104
- node.body
105
- );
106
- changes++;
107
- hasChanges = true;
108
- return ts.visitEachChild(updatedNode, visit, {} as ts.TransformationContext);
136
+ const newType = buildTypeNodeFromString(typeString);
137
+
138
+ // newType === undefined → a tipus nem serializalhato biztonsagosan,
139
+ // kihagyjuk az annotaciot ahelyett hogy tort kodot irnank (B2 bail-out).
140
+ if (newType) {
141
+ const updatedNode = ts.factory.updateFunctionDeclaration(
142
+ node,
143
+ node.modifiers,
144
+ node.asteriskToken,
145
+ node.name,
146
+ node.typeParameters,
147
+ node.parameters,
148
+ newType,
149
+ node.body
150
+ );
151
+ changes++;
152
+ hasChanges = true;
153
+ return ts.visitEachChild(updatedNode, visit, {} as ts.TransformationContext);
154
+ }
109
155
  }
110
156
  }
111
157
  }
@@ -120,19 +166,24 @@ function addTypesToFile(filePath: string): FixResult {
120
166
 
121
167
  // Add type annotation if it's not void or any
122
168
  if (typeString !== 'void' && typeString !== 'any') {
123
- const newType = ts.factory.createTypeReferenceNode(typeString);
124
- const updatedNode = ts.factory.updateArrowFunction(
125
- node,
126
- node.modifiers,
127
- node.typeParameters,
128
- node.parameters,
129
- newType,
130
- node.equalsGreaterThanToken,
131
- node.body
132
- );
133
- changes++;
134
- hasChanges = true;
135
- return ts.visitEachChild(updatedNode, visit, {} as ts.TransformationContext);
169
+ const newType = buildTypeNodeFromString(typeString);
170
+
171
+ // newType === undefined → a tipus nem serializalhato biztonsagosan,
172
+ // kihagyjuk az annotaciot ahelyett hogy tort kodot irnank (B2 bail-out).
173
+ if (newType) {
174
+ const updatedNode = ts.factory.updateArrowFunction(
175
+ node,
176
+ node.modifiers,
177
+ node.typeParameters,
178
+ node.parameters,
179
+ newType,
180
+ node.equalsGreaterThanToken,
181
+ node.body
182
+ );
183
+ changes++;
184
+ hasChanges = true;
185
+ return ts.visitEachChild(updatedNode, visit, {} as ts.TransformationContext);
186
+ }
136
187
  }
137
188
  }
138
189
  }
@@ -221,10 +272,17 @@ async function main() {
221
272
  }
222
273
  }
223
274
 
224
- // Execute the main function and handle any errors
225
- main().catch((err) => {
226
- DyFM_Log.error('Fix script failed:', err);
227
- process.exit(1);
228
- });
275
+ // Csak akkor futtatjuk a teljes fajl-scan-t, ha a scriptet KOZVETLENUL hivjak
276
+ // (CLI bin / `npm run fix:return-types`). Import eseten (pl. spec a helper-ekhez)
277
+ // NEM indul el a main(), igy a tiszta segedfuggvenyek unit-tesztelhetok.
278
+ if (require.main === module) {
279
+ // Execute the main function and handle any errors
280
+ main().catch((err) => {
281
+ DyFM_Log.error('Fix script failed:', err);
282
+ process.exit(1);
283
+ });
284
+ }
285
+
286
+ export { buildTypeNodeFromString, addTypesToFile };
229
287
 
230
288