⬅️ Back to Table of Contents
📄 configs.test.ts
📊 Analysis Summary
Metric |
Count |
🔧 Functions |
2 |
📦 Imports |
4 |
📊 Variables & Constants |
3 |
📐 Interfaces |
1 |
📚 Table of Contents
🛠️ File Location:
📂 packages/typescript-eslint/tests/configs.test.ts
📦 Imports
Name |
Source |
FlatConfig |
@typescript-eslint/utils/ts-eslint |
RuleRecommendation |
@typescript-eslint/utils/ts-eslint |
rules |
@typescript-eslint/eslint-plugin/use-at-your-own-risk/rules |
tseslint |
../src/index.js |
Variables & Constants
Name |
Type |
Kind |
Value |
Exported |
RULE_NAME_PREFIX |
"@typescript-eslint/" |
const |
'@typescript-eslint/' |
✗ |
customRecommendation |
any |
const |
`highestRecommendation && |
|
typeof rule.meta.docs.recommended === 'object' && |
|
|
|
|
rule.meta.docs.recommended[ |
|
|
|
|
highestRecommendation as 'recommended' |
'strict' |
|
|
|
]` |
✗ |
|
|
|
ruleNames |
Set<string> |
let/var |
new Set(Object.keys(unfilteredConfigRules)) |
✗ |
Functions
filterRules(values: FlatConfig.Rules | undefined): [string, FlatConfig.RuleEntry][]
Code
function filterRules(
values: FlatConfig.Rules | undefined,
): [string, FlatConfig.RuleEntry][] {
assert.isDefined(values);
return Object.entries(values)
.filter((pair): pair is [string, FlatConfig.RuleEntry] => pair[1] != null)
.filter(([name]) => name.startsWith(RULE_NAME_PREFIX));
}
- Parameters:
values: FlatConfig.Rules | undefined
- Return Type:
[string, FlatConfig.RuleEntry][]
- Calls:
assert.isDefined
Object.entries(values)
.filter((pair): pair is [string, FlatConfig.RuleEntry] => pair[1] != null)
.filter
name.startsWith
`filterAndMapRuleConfigs({
excludeDeprecated,
recommendations,
typeChecked,
}: FilterAndMapRuleConfigsSettings): [string, unknown][]`
Code
function filterAndMapRuleConfigs({
excludeDeprecated,
recommendations,
typeChecked,
}: FilterAndMapRuleConfigsSettings = {}): [string, unknown][] {
let result = Object.entries(rules);
if (excludeDeprecated) {
result = result.filter(([, rule]) => !rule.meta.deprecated);
}
if (typeChecked) {
result = result.filter(([, rule]) =>
typeChecked === 'exclude'
? !rule.meta.docs.requiresTypeChecking
: rule.meta.docs.requiresTypeChecking,
);
}
if (recommendations) {
result = result.filter(([, rule]) => {
switch (typeof rule.meta.docs.recommended) {
case 'object':
return Object.keys(rule.meta.docs.recommended).some(recommended =>
recommendations.includes(recommended as RuleRecommendation),
);
case 'string':
return recommendations.includes(rule.meta.docs.recommended);
default:
return false;
}
});
}
const highestRecommendation = recommendations?.filter(Boolean).at(-1);
return result.map(([name, rule]) => {
const customRecommendation =
highestRecommendation &&
typeof rule.meta.docs.recommended === 'object' &&
rule.meta.docs.recommended[
highestRecommendation as 'recommended' | 'strict'
];
return [
`${RULE_NAME_PREFIX}${name}`,
customRecommendation && typeof customRecommendation !== 'boolean'
? ['error', customRecommendation[0]]
: 'error',
];
});
}
- Parameters:
{
excludeDeprecated,
recommendations,
typeChecked,
}: FilterAndMapRuleConfigsSettings
- Return Type:
[string, unknown][]
- Calls:
Object.entries
result.filter
Object.keys(rule.meta.docs.recommended).some
recommendations.includes
recommendations?.filter(Boolean).at
result.map
Interfaces
FilterAndMapRuleConfigsSettings
Interface Code
interface FilterAndMapRuleConfigsSettings {
excludeDeprecated?: boolean;
recommendations?: (RuleRecommendation | undefined)[];
typeChecked?: 'exclude' | 'include-only';
}
Properties
Name |
Type |
Optional |
Description |
excludeDeprecated |
boolean |
✓ |
|
recommendations |
(RuleRecommendation | undefined)[] |
✓ |
|
typeChecked |
'exclude' | 'include-only' |
✓ |
|