|
1 | 1 | import { readdirSync } from 'fs';
|
2 |
| -import { basename, join } from 'path'; |
| 2 | +import { join, parse } from 'path'; |
3 | 3 | import globals from './globals.json';
|
4 | 4 | import * as snapshotProcessor from './processors/snapshot-processor';
|
5 | 5 |
|
6 | 6 | // copied from https://github.com/babel/babel/blob/d8da63c929f2d28c401571e2a43166678c555bc4/packages/babel-helpers/src/helpers.js#L602-L606
|
7 | 7 | /* istanbul ignore next */
|
8 |
| -function interopRequireDefault(obj) { |
9 |
| - return obj && obj.__esModule ? obj : { default: obj }; |
10 |
| -} |
| 8 | +const interopRequireDefault = (obj: any): { default: any } => |
| 9 | + obj && obj.__esModule ? obj : { default: obj }; |
11 | 10 |
|
12 |
| -function importDefault(moduleName) { |
13 |
| - return interopRequireDefault(require(moduleName)).default; |
14 |
| -} |
| 11 | +const importDefault = (moduleName: string) => |
| 12 | + // eslint-disable-next-line @typescript-eslint/no-require-imports |
| 13 | + interopRequireDefault(require(moduleName)).default; |
15 | 14 |
|
16 |
| -const rules = readdirSync(join(__dirname, 'rules')) |
17 |
| - .filter( |
18 |
| - rule => |
19 |
| - rule !== '__tests__' && |
20 |
| - rule !== 'util.js' && |
21 |
| - rule !== 'tsUtils.ts' && |
22 |
| - rule !== 'tsUtils.js', |
23 |
| - ) |
24 |
| - .map(rule => |
25 |
| - rule.endsWith('js') ? basename(rule, '.js') : basename(rule, '.ts'), |
26 |
| - ) |
| 15 | +const rulesDir = join(__dirname, 'rules'); |
| 16 | +const excludedFiles = ['__tests__', 'util', 'tsUtils']; |
| 17 | + |
| 18 | +const rules = readdirSync(rulesDir) |
| 19 | + .map(rule => parse(rule).name) |
| 20 | + .filter(rule => !excludedFiles.includes(rule)) |
27 | 21 | .reduce(
|
28 | 22 | (acc, curr) =>
|
29 |
| - Object.assign(acc, { [curr]: importDefault(`./rules/${curr}`) }), |
| 23 | + Object.assign(acc, { [curr]: importDefault(join(rulesDir, curr)) }), |
30 | 24 | {},
|
31 | 25 | );
|
32 |
| -let allRules = {}; |
33 |
| -Object.keys(rules).forEach(function(key) { |
34 |
| - allRules[`jest/${key}`] = 'error'; |
35 |
| -}); |
| 26 | + |
| 27 | +const allRules = Object.keys(rules).reduce<Record<string, string>>( |
| 28 | + (rules, key) => ({ ...rules, [`jest/${key}`]: 'error' }), |
| 29 | + {}, |
| 30 | +); |
36 | 31 |
|
37 | 32 | // eslint-disable-next-line import/no-commonjs
|
38 | 33 | module.exports = {
|
|
0 commit comments