Skip to content

Commit f3cb13b

Browse files
authored
refactor: use Object.fromEntries to build rule config maps (#1320)
1 parent 3718e82 commit f3cb13b

File tree

1 file changed

+19
-28
lines changed

1 file changed

+19
-28
lines changed

src/index.ts

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -27,36 +27,27 @@ const importDefault = (moduleName: string) =>
2727
const rulesDir = join(__dirname, 'rules');
2828
const excludedFiles = ['__tests__', 'detectJestVersion', 'utils'];
2929

30-
const rules = readdirSync(rulesDir)
31-
.map(rule => parse(rule).name)
32-
.filter(rule => !excludedFiles.includes(rule))
33-
.reduce<Record<string, RuleModule>>(
34-
(acc, curr) => ({
35-
...acc,
36-
[curr]: importDefault(join(rulesDir, curr)) as RuleModule,
37-
}),
38-
{},
39-
);
30+
const rules = Object.fromEntries(
31+
readdirSync(rulesDir)
32+
.map(rule => parse(rule).name)
33+
.filter(rule => !excludedFiles.includes(rule))
34+
.map(rule => [rule, importDefault(join(rulesDir, rule)) as RuleModule]),
35+
);
4036

41-
const recommendedRules = Object.entries(rules)
42-
.filter(([, rule]) => rule.meta.docs.recommended)
43-
.reduce(
44-
(acc, [name, rule]) => ({
45-
...acc,
46-
[`jest/${name}`]: rule.meta.docs.recommended,
47-
}),
48-
{},
49-
);
37+
const recommendedRules = Object.fromEntries(
38+
Object.entries(rules)
39+
.filter(([, rule]) => rule.meta.docs.recommended)
40+
.map(([name, rule]) => [
41+
`jest/${name}`,
42+
rule.meta.docs.recommended as TSESLint.Linter.RuleLevel,
43+
]),
44+
);
5045

51-
const allRules = Object.entries(rules)
52-
.filter(([, rule]) => !rule.meta.deprecated)
53-
.reduce(
54-
(acc, [name]) => ({
55-
...acc,
56-
[`jest/${name}`]: 'error',
57-
}),
58-
{},
59-
);
46+
const allRules = Object.fromEntries<TSESLint.Linter.RuleLevel>(
47+
Object.entries(rules)
48+
.filter(([, rule]) => !rule.meta.deprecated)
49+
.map(([name]) => [`jest/${name}`, 'error']),
50+
);
6051

6152
const createConfig = (rules: Record<string, TSESLint.Linter.RuleLevel>) => ({
6253
plugins: ['jest'],

0 commit comments

Comments
 (0)