Skip to content

Commit 058a505

Browse files
committed
feat: re-export flat configs "flat/*"
long-time plan: v6: no action v7: rename 'flat/*' => '*'; eslintrc config '*' => 'legacy/*'? v8~: remove eslintrc supports
1 parent f4d8cb1 commit 058a505

9 files changed

+61
-50
lines changed

configs/all-type-checked.js

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
/**
2+
* @deprecated use 'flat/all-type-checked' instead
3+
* @author 唯然<[email protected]>
4+
*/
15
'use strict';
26

3-
const mod = require('../lib/index.js');
7+
const plugin = require('../lib/index.js');
48

5-
module.exports = {
6-
plugins: { 'eslint-plugin': mod },
7-
rules: mod.configs['all-type-checked'].rules,
8-
};
9+
module.exports = plugin.configs['flat/all-type-checked']

configs/all.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
/**
22
* @fileoverview the `all` config for `eslint.config.js`
3+
* @deprecated use 'flat/all' instead
34
* @author 唯然<[email protected]>
45
*/
56

67
'use strict';
78

8-
const mod = require('../lib/index.js');
9+
const plugin = require('../lib/index.js');
910

10-
module.exports = {
11-
plugins: { 'eslint-plugin': mod },
12-
rules: mod.configs.all.rules,
13-
};
11+
module.exports = plugin.configs['flat/all']

configs/recommended.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
/**
22
* @fileoverview the `recommended` config for `eslint.config.js`
3+
* @deprecated use 'flat/recommended' instead
34
* @author 唯然<[email protected]>
45
*/
56

67
'use strict';
78

8-
const mod = require('../lib/index.js');
9+
const plugin = require('../lib/index.js');
910

10-
module.exports = {
11-
plugins: { 'eslint-plugin': mod },
12-
rules: mod.configs.recommended.rules,
13-
};
11+
module.exports = plugin.configs['flat/recommended']

configs/rules-recommended.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
/**
22
* @fileoverview the `rules-recommended` config for `eslint.config.js`
3+
* @deprecated use 'flat/rules-recommended' instead
34
* @author 唯然<[email protected]>
45
*/
56

67
'use strict';
78

8-
const mod = require('../lib/index.js');
9+
const plugin = require('../lib/index.js');
910

10-
module.exports = {
11-
plugins: { 'eslint-plugin': mod },
12-
rules: mod.configs['rules-recommended'].rules,
13-
};
11+
module.exports = plugin.configs['flat/rules-recommended']

configs/rules.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
/**
22
* @fileoverview the `rules` config for `eslint.config.js`
3+
* @deprecated use 'flat/rules' instead
34
* @author 唯然<[email protected]>
45
*/
56

67
'use strict';
78

8-
const mod = require('../lib/index.js');
9+
const plugin = require('../lib/index.js');
910

10-
module.exports = {
11-
plugins: { 'eslint-plugin': mod },
12-
rules: mod.configs.rules.rules,
13-
};
11+
module.exports = plugin.configs['flat/rules']

configs/tests-recommended.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
/**
22
* @fileoverview the `tests-recommended` config for `eslint.config.js`
3+
* @deprecated use 'flat/tests-recommended' instead
34
* @author 唯然<[email protected]>
45
*/
56

67
'use strict';
78

8-
const mod = require('../lib/index.js');
9+
const plugin = require('../lib/index.js');
910

10-
module.exports = {
11-
plugins: { 'eslint-plugin': mod },
12-
rules: mod.configs['tests-recommended'].rules,
13-
};
11+
module.exports = plugin.configs['flat/tests-recommended']

configs/tests.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
/**
22
* @fileoverview the `tests` config for `eslint.config.js`
3+
* @deprecated use 'flat/tests' instead
34
* @author 唯然<[email protected]>
45
*/
56

67
'use strict';
78

8-
const mod = require('../lib/index.js');
9+
const plugin = require('../lib/index.js');
910

10-
module.exports = {
11-
plugins: { 'eslint-plugin': mod },
12-
rules: mod.configs.tests.rules,
13-
};
11+
module.exports = plugin.configs['flat/tests']

lib/index.js

+30-8
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,17 @@ const allRules = Object.fromEntries(
4242
])
4343
);
4444

45-
module.exports.meta = {
46-
name: packageMetadata.name,
47-
version: packageMetadata.version,
48-
};
49-
50-
module.exports.rules = allRules;
45+
const plugin = {
46+
meta: {
47+
name: packageMetadata.name,
48+
version: packageMetadata.version,
49+
},
50+
rules: allRules,
51+
configs: {}, // assigned later
52+
}
5153

52-
module.exports.configs = Object.keys(configFilters).reduce(
54+
// eslintrc configs
55+
Object.assign(plugin.configs, Object.keys(configFilters).reduce(
5356
(configs, configName) => {
5457
return Object.assign(configs, {
5558
[configName]: {
@@ -63,4 +66,23 @@ module.exports.configs = Object.keys(configFilters).reduce(
6366
});
6467
},
6568
{}
66-
);
69+
));
70+
71+
// flat configs
72+
Object.assign(plugin.configs, Object.keys(configFilters).reduce(
73+
(configs, configName) => {
74+
return Object.assign(configs, {
75+
[`flat/${configName}`]: {
76+
plugins: { 'eslint-plugin': plugin},
77+
rules: Object.fromEntries(
78+
Object.keys(allRules)
79+
.filter((ruleName) => configFilters[configName](allRules[ruleName]))
80+
.map((ruleName) => [`${PLUGIN_NAME}/${ruleName}`, 'error'])
81+
),
82+
},
83+
});
84+
},
85+
{}
86+
));
87+
88+
module.exports = plugin;

package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,15 @@
5353
"@commitlint/cli": "^17.1.2",
5454
"@commitlint/config-conventional": "^17.1.0",
5555
"@eslint/eslintrc": "^2.0.2",
56-
"@eslint/js": "^8.37.0",
56+
"@eslint/js": "^8.57.0",
5757
"@release-it/conventional-changelog": "^4.3.0",
58-
"@types/eslint": "^8.56.2",
58+
"@types/eslint": "^8.56.6",
5959
"@types/estree": "^1.0.5",
6060
"@typescript-eslint/parser": "^5.62.0",
6161
"@typescript-eslint/utils": "^5.62.0",
6262
"chai": "^4.3.6",
6363
"dirty-chai": "^2.0.1",
64-
"eslint": "^8.23.0",
64+
"eslint": "^8.57.0",
6565
"eslint-config-not-an-aardvark": "^2.1.0",
6666
"eslint-config-prettier": "^8.5.0",
6767
"eslint-doc-generator": "^1.7.0",
@@ -78,13 +78,13 @@
7878
"husky": "^8.0.1",
7979
"lodash": "^4.17.21",
8080
"markdownlint-cli": "^0.39.0",
81-
"mocha": "^10.0.0",
82-
"npm-package-json-lint": "^7.0.0",
83-
"npm-run-all2": "^5.0.0",
81+
"mocha": "^10.4.0",
82+
"npm-package-json-lint": "^7.1.0",
83+
"npm-run-all2": "^6.1.2",
8484
"nyc": "^15.1.0",
8585
"prettier": "^2.7.1",
8686
"release-it": "^14.14.3",
87-
"typescript": "^5.1.3"
87+
"typescript": "^5.4.3"
8888
},
8989
"peerDependencies": {
9090
"eslint": ">=7.0.0"

0 commit comments

Comments
 (0)