Skip to content

Commit 1fda8c2

Browse files
committed
refactor: split configs and plugin to resolve circular dependencies
1 parent c36cae5 commit 1fda8c2

File tree

8 files changed

+352
-370
lines changed

8 files changed

+352
-370
lines changed

lib/configs/flat/base.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module.exports = [
88
name: 'vue/base/setup',
99
plugins: {
1010
get vue() {
11-
return require('../../index')
11+
return require('../../plugin')
1212
}
1313
},
1414
languageOptions: {
@@ -20,7 +20,7 @@ module.exports = [
2020
files: ['*.vue', '**/*.vue'],
2121
plugins: {
2222
get vue() {
23-
return require('../../index')
23+
return require('../../plugin')
2424
}
2525
},
2626
languageOptions: {

lib/configs/index.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
const configs = {
2+
// eslintrc configs
3+
base: require('./base'),
4+
5+
'vue2-essential': require('./vue2-essential'),
6+
'vue2-strongly-recommended': require('./vue2-strongly-recommended'),
7+
'vue2-recommended': require('./vue2-recommended'),
8+
9+
essential: require('./vue3-essential'),
10+
'strongly-recommended': require('./vue3-strongly-recommended'),
11+
recommended: require('./vue3-recommended'),
12+
13+
// flat configs
14+
'flat/base': require('./flat/base.js'),
15+
16+
'flat/vue2-essential': require('./flat/vue2-essential.js'),
17+
'flat/vue2-strongly-recommended': require('./flat/vue2-strongly-recommended.js'),
18+
'flat/vue2-recommended': require('./flat/vue2-recommended.js'),
19+
20+
'flat/essential': require('./flat/vue3-essential.js'),
21+
'flat/strongly-recommended': require('./flat/vue3-strongly-recommended.js'),
22+
'flat/recommended': require('./flat/vue3-recommended.js'),
23+
24+
// config-format-agnostic configs
25+
'no-layout-rules': require('./no-layout-rules')
26+
}
27+
28+
module.exports = configs

lib/index.js

Lines changed: 3 additions & 289 deletions
Large diffs are not rendered by default.

lib/plugin.js

Lines changed: 266 additions & 0 deletions
Large diffs are not rendered by default.

tools/update-lib-flat-configs.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ module.exports = [
6060
name: 'vue/base/setup',
6161
plugins: {
6262
get vue() {
63-
return require('../../index')
63+
return require('../../plugin')
6464
}
6565
},
6666
languageOptions: {
@@ -72,7 +72,7 @@ module.exports = [
7272
files: ['*.vue', '**/*.vue'],
7373
plugins: {
7474
get vue() {
75-
return require('../../index')
75+
return require('../../plugin')
7676
}
7777
},
7878
languageOptions: {

tools/update-lib-index.js

Lines changed: 0 additions & 76 deletions
This file was deleted.

tools/update-lib-plugin.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/**
2+
* @author Toru Nagashima
3+
* @copyright 2017 Toru Nagashima. All rights reserved.
4+
* See LICENSE file in root directory for full license.
5+
*/
6+
'use strict'
7+
8+
/*
9+
This script updates `lib/plugin.js` file from rule's meta data.
10+
*/
11+
12+
const fs = require('fs')
13+
const path = require('path')
14+
const { FlatESLint } = require('eslint/use-at-your-own-risk')
15+
const rules = require('./lib/rules')
16+
17+
// Update files.
18+
const filePath = path.resolve(__dirname, '../lib/plugin.js')
19+
const content = `/*
20+
* IMPORTANT!
21+
* This file has been automatically generated,
22+
* in order to update its content execute "npm run update"
23+
*/
24+
'use strict'
25+
26+
const plugin = {
27+
meta: require('./meta'),
28+
rules: {
29+
${rules
30+
.map((rule) => `'${rule.name}': require('./rules/${rule.name}')`)
31+
.join(',\n')}
32+
},
33+
processors: {
34+
'.vue': require('./processor'),
35+
'vue': require('./processor')
36+
}
37+
}
38+
39+
module.exports = plugin
40+
`
41+
fs.writeFileSync(filePath, content)
42+
43+
// Format files.
44+
async function format() {
45+
const linter = new FlatESLint({ fix: true })
46+
const report = await linter.lintFiles([filePath])
47+
FlatESLint.outputFixes(report)
48+
}
49+
50+
format()

tools/update.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
require('./update-no-layout-rules-config')
99
require('./update-lib-configs')
1010
require('./update-lib-flat-configs')
11-
require('./update-lib-index')
11+
require('./update-lib-plugin')
1212
require('./update-docs')
1313
require('./update-docs-rules-index')

0 commit comments

Comments
 (0)