@futdevpro/dynamo-eslint 1.15.12 → 1.15.14
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/build/configs/base.js +17 -2
- package/build/configs/base.js.map +1 -1
- package/build/plugin/rules/require-jsdoc-description.d.ts.map +1 -1
- package/build/plugin/rules/require-jsdoc-description.js +59 -1
- package/build/plugin/rules/require-jsdoc-description.js.map +1 -1
- package/build/scripts/fix-return-types.d.ts +48 -1
- package/build/scripts/fix-return-types.d.ts.map +1 -1
- package/build/scripts/fix-return-types.js +62 -15
- package/build/scripts/fix-return-types.js.map +1 -1
- package/package.json +1 -1
- package/src/configs/base.ts +18 -3
- package/src/plugin/rules/require-jsdoc-description.spec.ts +125 -0
- package/src/plugin/rules/require-jsdoc-description.ts +69 -1
- package/src/scripts/fix-return-types.spec.ts +65 -0
- package/src/scripts/fix-return-types.ts +90 -32
package/build/configs/base.js
CHANGED
|
@@ -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
|
-
|
|
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,
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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 =
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
-
//
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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
|
|
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
package/src/configs/base.ts
CHANGED
|
@@ -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
|
-
|
|
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 =
|
|
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 =
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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 =
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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
|
-
//
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
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
|
|