From f3cb13ba8a8ed6c7f3aeef0d1bf4a552bf084ddd Mon Sep 17 00:00:00 2001 From: Tiger Oakes Date: Tue, 3 Jan 2023 11:12:39 -1000 Subject: [PATCH] refactor: use `Object.fromEntries` to build rule config maps (#1320) --- src/index.ts | 47 +++++++++++++++++++---------------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/src/index.ts b/src/index.ts index 06e45e2e1..d3af4248b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -27,36 +27,27 @@ const importDefault = (moduleName: string) => const rulesDir = join(__dirname, 'rules'); const excludedFiles = ['__tests__', 'detectJestVersion', 'utils']; -const rules = readdirSync(rulesDir) - .map(rule => parse(rule).name) - .filter(rule => !excludedFiles.includes(rule)) - .reduce>( - (acc, curr) => ({ - ...acc, - [curr]: importDefault(join(rulesDir, curr)) as RuleModule, - }), - {}, - ); +const rules = Object.fromEntries( + readdirSync(rulesDir) + .map(rule => parse(rule).name) + .filter(rule => !excludedFiles.includes(rule)) + .map(rule => [rule, importDefault(join(rulesDir, rule)) as RuleModule]), +); -const recommendedRules = Object.entries(rules) - .filter(([, rule]) => rule.meta.docs.recommended) - .reduce( - (acc, [name, rule]) => ({ - ...acc, - [`jest/${name}`]: rule.meta.docs.recommended, - }), - {}, - ); +const recommendedRules = Object.fromEntries( + Object.entries(rules) + .filter(([, rule]) => rule.meta.docs.recommended) + .map(([name, rule]) => [ + `jest/${name}`, + rule.meta.docs.recommended as TSESLint.Linter.RuleLevel, + ]), +); -const allRules = Object.entries(rules) - .filter(([, rule]) => !rule.meta.deprecated) - .reduce( - (acc, [name]) => ({ - ...acc, - [`jest/${name}`]: 'error', - }), - {}, - ); +const allRules = Object.fromEntries( + Object.entries(rules) + .filter(([, rule]) => !rule.meta.deprecated) + .map(([name]) => [`jest/${name}`, 'error']), +); const createConfig = (rules: Record) => ({ plugins: ['jest'],