Skip to content

Commit

Permalink
feat: re-export flat configs "flat/*"
Browse files Browse the repository at this point in the history
long-time plan:

v6: no action
v7: rename 'flat/*' => '*'; eslintrc config '*' => 'legacy/*'?
v8~: remove eslintrc supports
  • Loading branch information
aladdin-add committed Mar 28, 2024
1 parent f4d8cb1 commit e331138
Show file tree
Hide file tree
Showing 8 changed files with 54 additions and 43 deletions.
11 changes: 6 additions & 5 deletions configs/all-type-checked.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
/**
* @deprecated use 'flat/all-type-checked' instead
* @author 唯然<weiran.zsd@outlook.com>
*/
'use strict';

const mod = require('../lib/index.js');
const plugin = require('../lib/index.js');

module.exports = {
plugins: { 'eslint-plugin': mod },
rules: mod.configs['all-type-checked'].rules,
};
module.exports = plugin.configs['flat/all-type-checked']
8 changes: 3 additions & 5 deletions configs/all.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
/**
* @fileoverview the `all` config for `eslint.config.js`
* @deprecated use 'flat/all' instead
* @author 唯然<weiran.zsd@outlook.com>
*/

'use strict';

const mod = require('../lib/index.js');
const plugin = require('../lib/index.js');

module.exports = {
plugins: { 'eslint-plugin': mod },
rules: mod.configs.all.rules,
};
module.exports = plugin.configs['flat/all']
8 changes: 3 additions & 5 deletions configs/recommended.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
/**
* @fileoverview the `recommended` config for `eslint.config.js`
* @deprecated use 'flat/recommended' instead
* @author 唯然<weiran.zsd@outlook.com>
*/

'use strict';

const mod = require('../lib/index.js');
const plugin = require('../lib/index.js');

module.exports = {
plugins: { 'eslint-plugin': mod },
rules: mod.configs.recommended.rules,
};
module.exports = plugin.configs['flat/recommended']
8 changes: 3 additions & 5 deletions configs/rules-recommended.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
/**
* @fileoverview the `rules-recommended` config for `eslint.config.js`
* @deprecated use 'flat/rules-recommended' instead
* @author 唯然<weiran.zsd@outlook.com>
*/

'use strict';

const mod = require('../lib/index.js');
const plugin = require('../lib/index.js');

module.exports = {
plugins: { 'eslint-plugin': mod },
rules: mod.configs['rules-recommended'].rules,
};
module.exports = plugin.configs['flat/rules-recommended']
8 changes: 3 additions & 5 deletions configs/rules.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
/**
* @fileoverview the `rules` config for `eslint.config.js`
* @deprecated use 'flat/rules' instead
* @author 唯然<weiran.zsd@outlook.com>
*/

'use strict';

const mod = require('../lib/index.js');
const plugin = require('../lib/index.js');

module.exports = {
plugins: { 'eslint-plugin': mod },
rules: mod.configs.rules.rules,
};
module.exports = plugin.configs['flat/rules']
8 changes: 3 additions & 5 deletions configs/tests-recommended.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
/**
* @fileoverview the `tests-recommended` config for `eslint.config.js`
* @deprecated use 'flat/tests-recommended' instead
* @author 唯然<weiran.zsd@outlook.com>
*/

'use strict';

const mod = require('../lib/index.js');
const plugin = require('../lib/index.js');

module.exports = {
plugins: { 'eslint-plugin': mod },
rules: mod.configs['tests-recommended'].rules,
};
module.exports = plugin.configs['flat/tests-recommended']
8 changes: 3 additions & 5 deletions configs/tests.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
/**
* @fileoverview the `tests` config for `eslint.config.js`
* @deprecated use 'flat/tests' instead
* @author 唯然<weiran.zsd@outlook.com>
*/

'use strict';

const mod = require('../lib/index.js');
const plugin = require('../lib/index.js');

module.exports = {
plugins: { 'eslint-plugin': mod },
rules: mod.configs.tests.rules,
};
module.exports = plugin.configs['flat/tests']
38 changes: 30 additions & 8 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,38 @@ const allRules = Object.fromEntries(
])
);

module.exports.meta = {
name: packageMetadata.name,
version: packageMetadata.version,
};
const plugin = {
meta: {
name: packageMetadata.name,
version: packageMetadata.version,
},
rules: allRules,
configs: {}, // assigned later
}

module.exports.rules = allRules;
// eslintrc configs
Object.assign(plugin.configs, Object.keys(configFilters).reduce(
(configs, configName) => {
return Object.assign(configs, {
[`flat/${configName}`]: {
plugins: ['eslint-plugin'],
rules: Object.fromEntries(
Object.keys(allRules)
.filter((ruleName) => configFilters[configName](allRules[ruleName]))
.map((ruleName) => [`${PLUGIN_NAME}/${ruleName}`, 'error'])
),
},
});
},
{}
));

module.exports.configs = Object.keys(configFilters).reduce(
// flat configs
Object.assign(plugin.configs, Object.keys(configFilters).reduce(
(configs, configName) => {
return Object.assign(configs, {
[configName]: {
plugins: ['eslint-plugin'],
plugins: { 'eslint-plugin': plugin},
rules: Object.fromEntries(
Object.keys(allRules)
.filter((ruleName) => configFilters[configName](allRules[ruleName]))
Expand All @@ -63,4 +83,6 @@ module.exports.configs = Object.keys(configFilters).reduce(
});
},
{}
);
));

module.exports = plugin;

0 comments on commit e331138

Please sign in to comment.