Skip to content

Commit a334368

Browse files
G-RathSimenB
authored andcommitted
chore: convert index file to typescript (#372)
1 parent e060061 commit a334368

File tree

2 files changed

+19
-23
lines changed

2 files changed

+19
-23
lines changed

src/__tests__/rules.test.js renamed to src/__tests__/rules.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { existsSync } from 'fs';
22
import { resolve } from 'path';
3+
// @ts-ignore
34
import { rules } from '../';
45

56
const ruleNames = Object.keys(rules);

src/index.js renamed to src/index.ts

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,33 @@
11
import { readdirSync } from 'fs';
2-
import { basename, join } from 'path';
2+
import { join, parse } from 'path';
33
import globals from './globals.json';
44
import * as snapshotProcessor from './processors/snapshot-processor';
55

66
// copied from https://github.com/babel/babel/blob/d8da63c929f2d28c401571e2a43166678c555bc4/packages/babel-helpers/src/helpers.js#L602-L606
77
/* 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 };
1110

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;
1514

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))
2721
.reduce(
2822
(acc, curr) =>
29-
Object.assign(acc, { [curr]: importDefault(`./rules/${curr}`) }),
23+
Object.assign(acc, { [curr]: importDefault(join(rulesDir, curr)) }),
3024
{},
3125
);
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+
);
3631

3732
// eslint-disable-next-line import/no-commonjs
3833
module.exports = {

0 commit comments

Comments
 (0)