@futdevpro/dynamo-eslint 1.20.51 → 1.20.57
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 +35 -2
- package/build/configs/ngx.d.ts +6 -0
- package/build/configs/ngx.d.ts.map +1 -1
- package/build/configs/ngx.js +20 -0
- package/build/configs/ngx.js.map +1 -1
- package/build/plugin/index.d.ts +1 -0
- package/build/plugin/index.d.ts.map +1 -1
- package/build/plugin/index.js +2 -0
- package/build/plugin/index.js.map +1 -1
- package/build/plugin/rules/angular/empty-state-guard.util.d.ts +58 -0
- package/build/plugin/rules/angular/empty-state-guard.util.d.ts.map +1 -0
- package/build/plugin/rules/angular/empty-state-guard.util.js +158 -0
- package/build/plugin/rules/angular/empty-state-guard.util.js.map +1 -0
- package/build/plugin/rules/angular/empty-state-requires-guard.d.ts +10 -0
- package/build/plugin/rules/angular/empty-state-requires-guard.d.ts.map +1 -0
- package/build/plugin/rules/angular/empty-state-requires-guard.js +61 -0
- package/build/plugin/rules/angular/empty-state-requires-guard.js.map +1 -0
- package/build/plugin/rules/angular/ui-building-blocks-baseline.interface.d.ts +5 -0
- package/build/plugin/rules/angular/ui-building-blocks-baseline.interface.d.ts.map +1 -1
- package/build/plugin/rules/angular/ui-building-blocks-element.interface.d.ts +5 -0
- package/build/plugin/rules/angular/ui-building-blocks-element.interface.d.ts.map +1 -1
- package/build/plugin/rules/angular/ui-building-blocks-rule-context.util.js +1 -1
- package/build/plugin/rules/angular/ui-building-blocks-rule-context.util.js.map +1 -1
- package/build/plugin/rules/angular/ui-building-blocks.util.d.ts +10 -1
- package/build/plugin/rules/angular/ui-building-blocks.util.d.ts.map +1 -1
- package/build/plugin/rules/angular/ui-building-blocks.util.js +44 -4
- package/build/plugin/rules/angular/ui-building-blocks.util.js.map +1 -1
- package/build/plugin/rules/prefer-enum-over-string-union.d.ts.map +1 -1
- package/build/plugin/rules/prefer-enum-over-string-union.js +5 -42
- package/build/plugin/rules/prefer-enum-over-string-union.js.map +1 -1
- package/build/plugin/rules/prefer-interface-over-duplicate-types.d.ts.map +1 -1
- package/build/plugin/rules/prefer-interface-over-duplicate-types.js +31 -19
- package/build/plugin/rules/prefer-interface-over-duplicate-types.js.map +1 -1
- package/build/scripts/lint-strict.d.ts +62 -0
- package/build/scripts/lint-strict.d.ts.map +1 -0
- package/build/scripts/lint-strict.js +151 -0
- package/build/scripts/lint-strict.js.map +1 -0
- package/build/scripts/ui-building-blocks-baseline.js +17 -2
- package/build/scripts/ui-building-blocks-baseline.js.map +1 -1
- package/package.json +4 -3
|
@@ -32,6 +32,7 @@ class UiBuildingBlocks_Util {
|
|
|
32
32
|
static ruleIds = [
|
|
33
33
|
'@futdevpro/dynamo/scroll-container-min-h-0',
|
|
34
34
|
'@futdevpro/dynamo/module-load-failed-branch',
|
|
35
|
+
'@futdevpro/dynamo/empty-state-requires-guard',
|
|
35
36
|
];
|
|
36
37
|
/**
|
|
37
38
|
* A loading state in a template. Deliberately NOT a bare spinner / progress bar (status indicators, determinate
|
|
@@ -44,7 +45,14 @@ class UiBuildingBlocks_Util {
|
|
|
44
45
|
static failedPattern = new RegExp('@(?:if|else if)\\s*\\([^)]*(?:[eE]rror|[fF]ail)(?!s\\b)|'
|
|
45
46
|
+ '\\*ngIf\\s*=\\s*"[^"]*(?:[eE]rror|[fF]ail)(?!s\\b)|'
|
|
46
47
|
+ '<[a-z][\\w-]*(?:load-?failed|load-error|error-state)\\b|'
|
|
47
|
-
+ 'data-testid="[^"]*load[a-z-]*(?:error|failed)'
|
|
48
|
+
+ 'data-testid="[^"]*load[a-z-]*(?:error|failed)|'
|
|
49
|
+
// BFR-MASTERPROMPTER-075 ⓑ: the three-state idiom `@if (loading) {…} @else if (data) {…} @else { …-error }` —
|
|
50
|
+
// the closing `@else` branch (⛔ `@else if`) carrying an error / failed test-id, before the next control-flow block
|
|
51
|
+
+ '@else\\s*\\{[^@]*?data-testid="[^"]*-(?:error|failed)"');
|
|
52
|
+
/** BFR-MASTERPROMPTER-075 ⓐ: the `[dynamo-overlay]` directive attribute (runtime `position: absolute`). */
|
|
53
|
+
static outOfFlowAttribute = /(?:^|\s)dynamo-overlay(?=[\s=/]|$)/;
|
|
54
|
+
/** BFR-MASTERPROMPTER-075 ⓒ: a loading match whose condition is the bare `loading` flag (`@if (loading)`). */
|
|
55
|
+
static subFrameLoadingCondition = /\(\s*!?\s*loading\s*$/;
|
|
48
56
|
static voidTags = new Set([
|
|
49
57
|
'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'source', 'track', 'wbr',
|
|
50
58
|
]);
|
|
@@ -110,6 +118,7 @@ class UiBuildingBlocks_Util {
|
|
|
110
118
|
.test(attributes),
|
|
111
119
|
offset: template.offset + match.index,
|
|
112
120
|
parent: stack[stack.length - 1],
|
|
121
|
+
outOfFlow: UiBuildingBlocks_Util.outOfFlowAttribute.test(attributes),
|
|
113
122
|
};
|
|
114
123
|
result.push(element);
|
|
115
124
|
if (!attributes.trim().endsWith('/') && !UiBuildingBlocks_Util.voidTags.has(tag)) {
|
|
@@ -146,7 +155,7 @@ class UiBuildingBlocks_Util {
|
|
|
146
155
|
return;
|
|
147
156
|
}
|
|
148
157
|
const bases = UiBuildingBlocks_Util.bases(ancestor);
|
|
149
|
-
if (bases.includes('absolute') || bases.includes('fixed')) {
|
|
158
|
+
if (bases.includes('absolute') || bases.includes('fixed') || ancestor.outOfFlow) {
|
|
150
159
|
// out of the flex flow: its height comes from the containing block, not from this chain
|
|
151
160
|
return;
|
|
152
161
|
}
|
|
@@ -169,14 +178,36 @@ class UiBuildingBlocks_Util {
|
|
|
169
178
|
UiBuildingBlocks_Util.templates(text, filename).forEach((template) => {
|
|
170
179
|
const code = UiBuildingBlocks_Util.blankComments(template.text);
|
|
171
180
|
const regex = new RegExp(UiBuildingBlocks_Util.loadingPattern.source, 'g');
|
|
181
|
+
const subFrame = UiBuildingBlocks_Util.isSubFrameComponent(text, filename);
|
|
172
182
|
let match = regex.exec(code);
|
|
173
183
|
while (match !== null) {
|
|
174
|
-
|
|
184
|
+
// BFR-MASTERPROMPTER-075 ⓒ: a `DyNX_SubFrame` component's bare `loading` is its ROUTE-CHANGE flag
|
|
185
|
+
// (`updateState(url, loading)`), ⛔ a data load — a failed branch cannot belong to it
|
|
186
|
+
if (!(subFrame && UiBuildingBlocks_Util.subFrameLoadingCondition.test(match[0]))) {
|
|
187
|
+
result.push(template.offset + match.index);
|
|
188
|
+
}
|
|
175
189
|
match = regex.exec(code);
|
|
176
190
|
}
|
|
177
191
|
});
|
|
178
192
|
return result;
|
|
179
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* BFR-MASTERPROMPTER-075 ⓒ: the component (inline template: this file; external template: its sibling `.ts`)
|
|
196
|
+
* extends `DyNX_SubFrame_Component`. An unreadable sibling ⇒ `false` (measure, never silence).
|
|
197
|
+
*/
|
|
198
|
+
static isSubFrameComponent(text, filename) {
|
|
199
|
+
const extendsSubFrame = /\bextends\s+DyNX_SubFrame_Component\b/;
|
|
200
|
+
if (filename.endsWith('.ts')) {
|
|
201
|
+
return extendsSubFrame.test(text);
|
|
202
|
+
}
|
|
203
|
+
const sibling = filename.replace(/\.html$/, '.ts');
|
|
204
|
+
try {
|
|
205
|
+
return sibling !== filename && (0, fs_1.existsSync)(sibling) && extendsSubFrame.test((0, fs_1.readFileSync)(sibling, 'utf8'));
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
180
211
|
/** ② Whether a file's templates show a failed / error state. */
|
|
181
212
|
static hasFailedBranch(text, filename) {
|
|
182
213
|
return UiBuildingBlocks_Util.templates(text, filename).some((template) => UiBuildingBlocks_Util.failedPattern.test(UiBuildingBlocks_Util.blankComments(template.text)));
|
|
@@ -237,7 +268,7 @@ class UiBuildingBlocks_Util {
|
|
|
237
268
|
/** Reads the committed baseline (missing file = empty baseline; a broken file THROWS — never a silent pass). */
|
|
238
269
|
static readBaseline(baselinePath) {
|
|
239
270
|
if (!(0, fs_1.existsSync)(baselinePath)) {
|
|
240
|
-
return { scrollerTags: [], scrollContainers: {}, modulesWithoutLoadFailedBranch: [] };
|
|
271
|
+
return { scrollerTags: [], scrollContainers: {}, modulesWithoutLoadFailedBranch: [], emptyStatesWithoutGuard: {} };
|
|
241
272
|
}
|
|
242
273
|
const stamp = UiBuildingBlocks_Util.stamp(baselinePath);
|
|
243
274
|
const cached = UiBuildingBlocks_Util.baselineCache.get(baselinePath);
|
|
@@ -249,6 +280,7 @@ class UiBuildingBlocks_Util {
|
|
|
249
280
|
const settings = field('settings');
|
|
250
281
|
const scrollContainers = field('scrollContainers');
|
|
251
282
|
const modules = field('modulesWithoutLoadFailedBranch');
|
|
283
|
+
const emptyStates = field('emptyStatesWithoutGuard');
|
|
252
284
|
if (!scrollContainers || typeof scrollContainers !== 'object' || !Array.isArray(modules)) {
|
|
253
285
|
throw new Error(`UI-building-blocks baseline ${baselinePath} has no "scrollContainers" object / `
|
|
254
286
|
+ '"modulesWithoutLoadFailedBranch" array — regenerate it with `npx dynamo-ui-building-blocks-baseline`.');
|
|
@@ -260,6 +292,14 @@ class UiBuildingBlocks_Util {
|
|
|
260
292
|
modulesWithoutLoadFailedBranch: modules.filter((m) => typeof m === 'string')
|
|
261
293
|
.map((m) => UiBuildingBlocks_Util.normalize(m)),
|
|
262
294
|
};
|
|
295
|
+
// BFR-QA-003: optional — a baseline generated before the rule existed simply has none (the preset keeps the rule off)
|
|
296
|
+
if (emptyStates && typeof emptyStates === 'object') {
|
|
297
|
+
baseline.emptyStatesWithoutGuard = {};
|
|
298
|
+
Object.entries(emptyStates).forEach(([key, value]) => {
|
|
299
|
+
baseline.emptyStatesWithoutGuard[UiBuildingBlocks_Util.normalize(key)] =
|
|
300
|
+
typeof value === 'number' && Number.isInteger(value) && value > 0 ? value : 0;
|
|
301
|
+
});
|
|
302
|
+
}
|
|
263
303
|
Object.entries(scrollContainers).forEach(([key, value]) => {
|
|
264
304
|
baseline.scrollContainers[UiBuildingBlocks_Util.normalize(key)] =
|
|
265
305
|
typeof value === 'number' && Number.isInteger(value) && value > 0 ? value : 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-building-blocks.util.js","sourceRoot":"","sources":["../../../../src/plugin/rules/angular/ui-building-blocks.util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui-building-blocks.util.js","sourceRoot":"","sources":["../../../../src/plugin/rules/angular/ui-building-blocks.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-enum-over-string-union.d.ts","sourceRoot":"","sources":["../../../src/plugin/rules/prefer-enum-over-string-union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAO9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"prefer-enum-over-string-union.d.ts","sourceRoot":"","sources":["../../../src/plugin/rules/prefer-enum-over-string-union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAO9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAqRhB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -25,9 +25,11 @@ const rule = {
|
|
|
25
25
|
},
|
|
26
26
|
],
|
|
27
27
|
messages: {
|
|
28
|
-
preferEnum: 'Consider using an enum instead of a union type of {{count}} string literals.',
|
|
28
|
+
preferEnum: 'Consider using an enum (e.g. {{enumName}}) instead of a union type of {{count}} string literals.',
|
|
29
29
|
},
|
|
30
|
-
fixable
|
|
30
|
+
// NO `fixable`: an automatic union → enum rewrite is never safe — string literals are not assignable to a string
|
|
31
|
+
// enum, so every caller passing `'active'` would stop compiling. The old fixer was worse: it replaced the alias'
|
|
32
|
+
// right-hand side with its OWN name (`type X = X;` → TS2456) and never emitted the enum (BFR-WARFACTORY-014 find).
|
|
31
33
|
},
|
|
32
34
|
create(context) {
|
|
33
35
|
const options = context.options[0] || {};
|
|
@@ -117,25 +119,6 @@ const rule = {
|
|
|
117
119
|
return 'StatusEnum';
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
|
-
/**
|
|
121
|
-
* Generate enum values from string literals
|
|
122
|
-
*/
|
|
123
|
-
function generateEnumValues(node) {
|
|
124
|
-
if (node.type !== 'TSUnionType' || !node.types) {
|
|
125
|
-
return [];
|
|
126
|
-
}
|
|
127
|
-
return node.types
|
|
128
|
-
.filter((type) => type.type === 'TSLiteralType' &&
|
|
129
|
-
typeof type.literal?.value === 'string')
|
|
130
|
-
.map((type) => {
|
|
131
|
-
const value = type.literal.value;
|
|
132
|
-
// Convert to PascalCase for enum key
|
|
133
|
-
return value
|
|
134
|
-
.split(/[-_\s]+/)
|
|
135
|
-
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
136
|
-
.join('');
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
122
|
/**
|
|
140
123
|
* Report violation with enum suggestion
|
|
141
124
|
*/
|
|
@@ -143,32 +126,12 @@ const rule = {
|
|
|
143
126
|
const stringLiteralCount = unionNode.types.filter((type) => type.type === 'TSLiteralType' &&
|
|
144
127
|
typeof type.literal?.value === 'string').length;
|
|
145
128
|
const enumName = generateEnumName(node, parent);
|
|
146
|
-
const enumValues = generateEnumValues(unionNode);
|
|
147
129
|
context.report({
|
|
148
130
|
node: unionNode,
|
|
149
131
|
messageId: 'preferEnum',
|
|
150
132
|
data: {
|
|
151
133
|
count: stringLiteralCount.toString(),
|
|
152
|
-
|
|
153
|
-
fix(fixer) {
|
|
154
|
-
try {
|
|
155
|
-
const enumDeclaration = `enum ${enumName} {\n ${enumValues.map((key, index) => {
|
|
156
|
-
const value = unionNode.types[index].literal.value;
|
|
157
|
-
return `${key} = '${value}'`;
|
|
158
|
-
}).join(',\n ')}\n}`;
|
|
159
|
-
// For type aliases, replace the entire declaration
|
|
160
|
-
if (parent?.type === 'TSTypeAliasDeclaration') {
|
|
161
|
-
const typeText = context.sourceCode.getText(parent);
|
|
162
|
-
const newText = typeText.replace(/=.*/, `= ${enumName};`);
|
|
163
|
-
return fixer.replaceText(parent, newText);
|
|
164
|
-
}
|
|
165
|
-
// For other cases, suggest enum creation (no auto-fix for now)
|
|
166
|
-
return null;
|
|
167
|
-
}
|
|
168
|
-
catch (fixError) {
|
|
169
|
-
console.error('[prefer-enum-over-string-union] Error in fix function:', fixError);
|
|
170
|
-
return null;
|
|
171
|
-
}
|
|
134
|
+
enumName: enumName,
|
|
172
135
|
},
|
|
173
136
|
});
|
|
174
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-enum-over-string-union.js","sourceRoot":"","sources":["../../../src/plugin/rules/prefer-enum-over-string-union.ts"],"names":[],"mappings":";;AAOA,MAAM,IAAI,GAAoB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,+DAA+D;YAC5E,WAAW,EAAE,IAAI;SAClB;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,CAAC;qBACX;oBACD,gBAAgB,EAAE;wBAChB,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK;qBACf;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"prefer-enum-over-string-union.js","sourceRoot":"","sources":["../../../src/plugin/rules/prefer-enum-over-string-union.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-interface-over-duplicate-types.d.ts","sourceRoot":"","sources":["../../../src/plugin/rules/prefer-interface-over-duplicate-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"prefer-interface-over-duplicate-types.d.ts","sourceRoot":"","sources":["../../../src/plugin/rules/prefer-interface-over-duplicate-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiB9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAkThB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -16,12 +16,19 @@ const rule = {
|
|
|
16
16
|
minimum: 2,
|
|
17
17
|
default: 3,
|
|
18
18
|
},
|
|
19
|
+
interfacePrefix: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
minLength: 1,
|
|
22
|
+
},
|
|
19
23
|
},
|
|
20
24
|
additionalProperties: false,
|
|
21
25
|
},
|
|
22
26
|
],
|
|
23
27
|
messages: {
|
|
24
|
-
preferInterface: 'Object type used {{count}} times. Consider creating interface "{{interfaceName}}"
|
|
28
|
+
preferInterface: 'Object type used {{count}} times. Consider creating interface "{{interfaceName}}"',
|
|
29
|
+
// BFR-DYNCLI-001: no FDP-conform name can be derived (no `interfacePrefix`, or no property keys) ⇒ report only
|
|
30
|
+
preferInterfaceNoFix: 'Object type used {{count}} times. Extract it into a named, module-prefixed interface'
|
|
31
|
+
+ ' (e.g. "{{suggestion}}") — auto-fix runs only with the `interfacePrefix` option.',
|
|
25
32
|
},
|
|
26
33
|
// BFR-ADVENTOR-009 (2. lépcső): a fixer forrás-szöveg-megőrzőre átírva (`sourceCode.getText` per property)
|
|
27
34
|
// → a komplex/union/qualified/function típusok EXAKT megőrződnek, a generált interface ÉRVÉNYES TS. Ezért
|
|
@@ -104,21 +111,6 @@ const rule = {
|
|
|
104
111
|
return 'complex';
|
|
105
112
|
}
|
|
106
113
|
}
|
|
107
|
-
/**
|
|
108
|
-
* Generate interface name based on context
|
|
109
|
-
*/
|
|
110
|
-
function generateInterfaceName(signature, usageCount) {
|
|
111
|
-
// Try to extract meaningful name from signature
|
|
112
|
-
const properties = signature.split(';');
|
|
113
|
-
if (properties.length === 1) {
|
|
114
|
-
const prop = properties[0].split(':')[0].replace('readonly ', '').replace('?', '');
|
|
115
|
-
if (prop && prop !== 'unknown') {
|
|
116
|
-
return `${prop.charAt(0).toUpperCase() + prop.slice(1)}Interface`;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
// Fallback to generic name
|
|
120
|
-
return `GeneratedInterface${usageCount}`;
|
|
121
|
-
}
|
|
122
114
|
/**
|
|
123
115
|
* Check if interface name conflicts with existing identifiers
|
|
124
116
|
*/
|
|
@@ -169,8 +161,10 @@ const rule = {
|
|
|
169
161
|
.map((m) => String(m.key?.name ?? m.key?.value ?? ''))
|
|
170
162
|
.filter((k) => !!k)
|
|
171
163
|
.slice(0, 3);
|
|
164
|
+
// no property keys ⇒ no meaningful name (the former `Generated_Interface` / `GeneratedInterfaceN` fallback
|
|
165
|
+
// wrote meaningless, convention-breaking names into the source — BFR-DYNCLI-001)
|
|
172
166
|
if (!keys.length) {
|
|
173
|
-
return
|
|
167
|
+
return undefined;
|
|
174
168
|
}
|
|
175
169
|
const pascal = keys
|
|
176
170
|
.map((k) => k.charAt(0).toUpperCase() + k.slice(1))
|
|
@@ -202,8 +196,26 @@ const rule = {
|
|
|
202
196
|
// Process all collected type usages
|
|
203
197
|
for (const [signature, usages] of typeUsages) {
|
|
204
198
|
if (usages.length >= threshold) {
|
|
205
|
-
// beszédes név a property-kulcsokból (
|
|
206
|
-
|
|
199
|
+
// beszédes név a property-kulcsokból; BFR-DYNCLI-001: FDP-konform (modul-prefixes) név CSAK az
|
|
200
|
+
// `interfacePrefix` opcióval vezethető le — enélkül (vagy kulcsok nélkül) a szabály csak jelez, ⛔ fixel
|
|
201
|
+
const derived = deriveInterfaceName(usages[0].node);
|
|
202
|
+
const prefix = options.interfacePrefix;
|
|
203
|
+
const interfaceName = derived && prefix
|
|
204
|
+
? generateUniqueInterfaceName(`${prefix}${derived}`)
|
|
205
|
+
: undefined;
|
|
206
|
+
if (!interfaceName) {
|
|
207
|
+
for (const usage of usages) {
|
|
208
|
+
context.report({
|
|
209
|
+
node: usage.node,
|
|
210
|
+
messageId: 'preferInterfaceNoFix',
|
|
211
|
+
data: {
|
|
212
|
+
count: usages.length.toString(),
|
|
213
|
+
suggestion: derived ? `<ModulePrefix>_${derived}` : '<ModulePrefix>_<Name>_Interface',
|
|
214
|
+
},
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
207
219
|
// a törzs a FORRÁS-SZÖVEGBŐL (getText) — a komplex/union/qualified típusok EXAKT megőrződnek
|
|
208
220
|
const interfaceBody = buildInterfaceBody(usages[0].node);
|
|
209
221
|
// Report on each usage
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-interface-over-duplicate-types.js","sourceRoot":"","sources":["../../../src/plugin/rules/prefer-interface-over-duplicate-types.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"prefer-interface-over-duplicate-types.js","sourceRoot":"","sources":["../../../src/plugin/rules/prefer-interface-over-duplicate-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Strict lint entry point — `dynamo-lint-strict` (BFR-WARFACTORY-003)
|
|
4
|
+
*
|
|
5
|
+
* Runs ESLint (flat config, the project's own `eslint.config.*`) and sets the process exit code from the
|
|
6
|
+
* AGGREGATED result counters — never from a wrapper's own success path:
|
|
7
|
+
*
|
|
8
|
+
* | exit | meaning |
|
|
9
|
+
* |---|---|
|
|
10
|
+
* | `0` | 0 errors (incl. fatal/parsing errors) and the warnings are within the budget |
|
|
11
|
+
* | `1` | at least one error, OR more warnings than `--max-warnings` |
|
|
12
|
+
* | `2` | lint could not run (config error, NO file linted, crash) — never reported as a pass |
|
|
13
|
+
*
|
|
14
|
+
* **Warning budget:** without `--max-warnings` warnings are reported but do not fail (the budget is unlimited);
|
|
15
|
+
* `--max-warnings 0` is the zero-warning gate; `--max-warnings <n>` a ratchet for a known backlog.
|
|
16
|
+
*
|
|
17
|
+
* **`.eslintignore`:** flat config does NOT read it (ESLint 9) — files listed there ARE linted. If one exists, the
|
|
18
|
+
* run says so loudly and points at the `ignores` migration; it does not fail on it.
|
|
19
|
+
*
|
|
20
|
+
* @usage
|
|
21
|
+
* ```bash
|
|
22
|
+
* dynamo-lint-strict [patterns...] [--max-warnings <n>] [--json]
|
|
23
|
+
* dynamo-lint-strict src --max-warnings 0
|
|
24
|
+
* dynamo-lint-strict --json # last stdout line: machine-readable summary (CI)
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
import { ESLint } from 'eslint';
|
|
28
|
+
/** Parsed command-line options of `dynamo-lint-strict`. */
|
|
29
|
+
export interface DyESL_LintStrictOptions_Interface {
|
|
30
|
+
patterns: string[];
|
|
31
|
+
/** `undefined` = unlimited warning budget */
|
|
32
|
+
maxWarnings?: number;
|
|
33
|
+
json: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** Aggregated result of one strict lint run. */
|
|
36
|
+
export interface DyESL_LintStrictSummary_Interface {
|
|
37
|
+
errorCount: number;
|
|
38
|
+
fatalErrorCount: number;
|
|
39
|
+
warningCount: number;
|
|
40
|
+
fileCount: number;
|
|
41
|
+
maxWarnings: number | null;
|
|
42
|
+
legacyEslintignore: boolean;
|
|
43
|
+
passed: boolean;
|
|
44
|
+
exitCode: number;
|
|
45
|
+
}
|
|
46
|
+
/** Strict lint runner — pure helpers (unit-testable) + the CLI `run`. */
|
|
47
|
+
export declare class DyESL_LintStrict_Util {
|
|
48
|
+
/**
|
|
49
|
+
* Parses `[patterns...] [--max-warnings <n>] [--json]`.
|
|
50
|
+
* @throws Error on an invalid / missing `--max-warnings` value or an unknown option
|
|
51
|
+
*/
|
|
52
|
+
static parseArgs(argv: string[]): DyESL_LintStrictOptions_Interface;
|
|
53
|
+
/** Aggregates the ESLint results into the summary + the exit code (0 pass / 1 fail). */
|
|
54
|
+
static summarize(results: ESLint.LintResult[], maxWarnings: number | undefined, legacyEslintignore: boolean): DyESL_LintStrictSummary_Interface;
|
|
55
|
+
/** Human-readable one-line verdict. */
|
|
56
|
+
static formatVerdict(summary: DyESL_LintStrictSummary_Interface): string;
|
|
57
|
+
/**
|
|
58
|
+
* Runs the strict lint in `cwd` and returns the exit code (0 / 1 / 2). Output goes to stdout/stderr.
|
|
59
|
+
*/
|
|
60
|
+
static run(argv: string[], cwd?: string): Promise<number>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=lint-strict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint-strict.d.ts","sourceRoot":"","sources":["../../src/scripts/lint-strict.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,2DAA2D;AAC3D,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,gDAAgD;AAChD,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,yEAAyE;AACzE,qBAAa,qBAAqB;IAEhC;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iCAAiC;IA6BnE,wFAAwF;IACxF,MAAM,CAAC,SAAS,CACd,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,kBAAkB,EAAE,OAAO,GAC1B,iCAAiC;IAsBpC,uCAAuC;IACvC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,iCAAiC,GAAG,MAAM;IAQxE;;OAEG;WACU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC;CAkD/E"}
|