Skip to content

Commit 31c7cef

Browse files
authored
chore: convert to import/export (#302)
1 parent 9f858cb commit 31c7cef

File tree

74 files changed

+335
-389
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+335
-389
lines changed

.eslintrc.js

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ module.exports = {
99
'plugin:node/recommended',
1010
'prettier',
1111
],
12-
plugins: ['eslint-plugin', 'node', 'prettier'],
12+
plugins: ['eslint-plugin', 'node', 'prettier', 'import'],
1313
parserOptions: {
14-
ecmaVersion: 2017,
14+
ecmaVersion: 2018,
1515
},
1616
env: {
1717
node: true,
@@ -24,21 +24,30 @@ module.exports = {
2424
'object-shorthand': ['warn', 'always', { avoidExplicitReturnArrows: true }],
2525
'prefer-destructuring': [
2626
'error',
27-
{
28-
VariableDeclarator: {
29-
array: true,
30-
object: true,
31-
},
32-
},
27+
{ VariableDeclarator: { array: true, object: true } },
3328
],
3429
'prettier/prettier': 'error',
3530
'node/no-unsupported-features/es-syntax': 'off',
3631
'node/no-unsupported-features/es-builtins': 'error',
32+
'import/no-commonjs': 'error',
33+
'import/no-unused-modules': 'error',
3734
},
3835
overrides: [
3936
{
4037
files: ['*.test.js'],
4138
globals,
4239
},
40+
{
41+
files: 'src/**/*',
42+
parserOptions: {
43+
sourceType: 'module',
44+
},
45+
},
46+
{
47+
files: ['.eslintrc.js', 'babel.config.js'],
48+
rules: {
49+
'import/no-commonjs': 'off',
50+
},
51+
},
4352
],
4453
};

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"eslint": "^5.1.0",
4646
"eslint-config-prettier": "^5.1.0",
4747
"eslint-plugin-eslint-plugin": "^2.0.0",
48+
"eslint-plugin-import": "^2.18.0",
4849
"eslint-plugin-node": "^8.0.0",
4950
"eslint-plugin-prettier": "^3.0.0",
5051
"husky": "^1.0.1",

src/__tests__/rules.test.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
1-
'use strict';
2-
3-
const fs = require('fs');
4-
const path = require('path');
5-
const { rules } = require('../');
1+
import { existsSync } from 'fs';
2+
import { resolve } from 'path';
3+
import { rules } from '../';
64

75
const ruleNames = Object.keys(rules);
86
const numberOfRules = 33;
97

108
describe('rules', () => {
119
it('should have a corresponding doc for each rule', () => {
1210
ruleNames.forEach(rule => {
13-
const docPath = path.resolve(__dirname, '../../docs/rules', `${rule}.md`);
11+
const docPath = resolve(__dirname, '../../docs/rules', `${rule}.md`);
1412

15-
if (!fs.existsSync(docPath)) {
13+
if (!existsSync(docPath)) {
1614
throw new Error(
1715
`Could not find documentation file for rule "${rule}" in path "${docPath}"`,
1816
);

src/index.js

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,31 @@
1-
'use strict';
1+
import { readdirSync } from 'fs';
2+
import { basename, join } from 'path';
3+
import * as snapshotProcessor from './processors/snapshot-processor';
24

3-
const fs = require('fs');
4-
const path = require('path');
5+
// copied from https://github.com/babel/babel/blob/d8da63c929f2d28c401571e2a43166678c555bc4/packages/babel-helpers/src/helpers.js#L602-L606
6+
/* istanbul ignore next */
7+
function interopRequireDefault(obj) {
8+
return obj && obj.__esModule ? obj : { default: obj };
9+
}
510

6-
const rules = fs
7-
.readdirSync(path.join(__dirname, 'rules'))
11+
function importDefault(moduleName) {
12+
return interopRequireDefault(require(moduleName)).default;
13+
}
14+
15+
const rules = readdirSync(join(__dirname, 'rules'))
816
.filter(rule => rule !== '__tests__' && rule !== 'util.js')
9-
.map(rule => path.basename(rule, '.js'))
17+
.map(rule => basename(rule, '.js'))
1018
.reduce(
11-
(acc, curr) => Object.assign(acc, { [curr]: require(`./rules/${curr}`) }),
19+
(acc, curr) =>
20+
Object.assign(acc, { [curr]: importDefault(`./rules/${curr}`) }),
1221
{},
1322
);
1423
let allRules = {};
1524
Object.keys(rules).forEach(function(key) {
1625
allRules[`jest/${key}`] = 'error';
1726
});
1827

19-
const snapshotProcessor = require('./processors/snapshot-processor');
20-
28+
// eslint-disable-next-line import/no-commonjs
2129
module.exports = {
2230
configs: {
2331
all: {

src/processors/__tests__/snapshot-processor.test.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
'use strict';
2-
3-
const snapshotProcessor = require('../snapshot-processor');
1+
import * as snapshotProcessor from '../snapshot-processor';
42

53
describe('snapshot-processor', () => {
64
it('exports an object with preprocess and postprocess functions', () => {
Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
1-
'use strict';
2-
31
// https://eslint.org/docs/developer-guide/working-with-plugins#processors-in-plugins
4-
const preprocess = source => [source];
2+
export const preprocess = source => [source];
53

6-
const postprocess = messages =>
4+
export const postprocess = messages =>
75
messages[0].filter(
86
// snapshot files should only be linted with snapshot specific rules
97
message => message.ruleId === 'jest/no-large-snapshots',
108
);
11-
12-
module.exports = {
13-
preprocess,
14-
postprocess,
15-
};

src/rules/__tests__/consistent-test-it.test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
'use strict';
2-
3-
const { RuleTester } = require('eslint');
4-
const rule = require('../consistent-test-it');
1+
import { RuleTester } from 'eslint';
2+
import rule from '../consistent-test-it';
53

64
const ruleTester = new RuleTester({
75
parserOptions: {

src/rules/__tests__/expect-expect.test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
'use strict';
2-
3-
const { RuleTester } = require('eslint');
4-
const rule = require('../expect-expect');
1+
import { RuleTester } from 'eslint';
2+
import rule from '../expect-expect';
53

64
const ruleTester = new RuleTester({
75
parserOptions: {

src/rules/__tests__/lowercase-name.test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
'use strict';
2-
3-
const { RuleTester } = require('eslint');
4-
const rule = require('../lowercase-name');
1+
import { RuleTester } from 'eslint';
2+
import rule from '../lowercase-name';
53

64
const ruleTester = new RuleTester({
75
parserOptions: {

src/rules/__tests__/no-alias-methods.test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
'use strict';
2-
3-
const { RuleTester } = require('eslint');
4-
const rule = require('../no-alias-methods');
1+
import { RuleTester } from 'eslint';
2+
import rule from '../no-alias-methods';
53

64
const ruleTester = new RuleTester();
75

0 commit comments

Comments
 (0)