Skip to content

Commit 8dfbb9b

Browse files
authored
feat: add flat config (#348)
* feat add flat config * Create tidy-rockets-tap.md
1 parent 6c77383 commit 8dfbb9b

File tree

11 files changed

+152
-0
lines changed

11 files changed

+152
-0
lines changed

.changeset/tidy-rockets-tap.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"eslint-plugin-lodash-template": minor
3+
---
4+
5+
feat: add flat config

README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,18 @@ See [documents](https://ota-meshi.github.io/eslint-plugin-lodash-template/).
6161

6262
Create `.eslintrc.*` file to configure rules. See also: [http://eslint.org/docs/user-guide/configuring](http://eslint.org/docs/user-guide/configuring).
6363

64+
Example **eslint.config.js**:
65+
66+
```js
67+
import lodashTemplate from 'eslint-plugin-lodash-template'
68+
export default [
69+
{
70+
files: ['**/*.html'],
71+
...lodashTemplate.configs['flat/recommended-with-html']
72+
}
73+
]
74+
```
75+
6476
Example **.eslintrc.js**:
6577

6678
```js
@@ -122,6 +134,20 @@ This plugin does special handling for the following rule warnings in the templat
122134

123135
## Configs
124136

137+
### For `eslint.config.js`
138+
139+
This plugin provides 7 predefined configs:
140+
141+
- `*.configs['flat/base']` - Settings and rules to enable correct ESLint parsing
142+
- `*.configs['flat/base-with-ejs']` - Settings and rules to enable correct ESLint parsing for EJS
143+
- `*.configs['flat/best-practices']` - Above, plus rules to improve dev experience
144+
- `*.configs['flat/recommended']` - Above, plus rules to improve code readability
145+
- `*.configs['flat/recommended-with-html']` - Above, plus rules to improve code readability with HTML template
146+
- `*.configs['flat/recommended-with-script']` - `*.configs['flat/recommended']` config, plus to enable ESLint parsing of JavaScript templates (*This is an experimental feature*)
147+
- `*.configs['flat/all']` - All rules of this plugin are included
148+
149+
### For `.eslintrc.*`
150+
125151
This plugin provides 6 predefined configs:
126152

127153
- `plugin:lodash-template/base` - Settings and rules to enable correct ESLint parsing

docs/index.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,18 @@ npm install --save-dev eslint eslint-plugin-lodash-template
4747

4848
Create `.eslintrc.*` file to configure rules. See also: [http://eslint.org/docs/user-guide/configuring](http://eslint.org/docs/user-guide/configuring).
4949

50+
Example **eslint.config.js**:
51+
52+
```js
53+
import lodashTemplate from 'eslint-plugin-lodash-template'
54+
export default [
55+
{
56+
files: ['**/*.html'],
57+
...lodashTemplate.configs['flat/recommended-with-html']
58+
}
59+
]
60+
```
61+
5062
Example **.eslintrc.js**:
5163

5264
```js
@@ -108,6 +120,20 @@ This plugin does special handling for the following rule warnings in the templat
108120

109121
## Configs
110122

123+
### For `eslint.config.js`
124+
125+
This plugin provides 7 predefined configs:
126+
127+
- `*.configs['flat/base']` - Settings and rules to enable correct ESLint parsing
128+
- `*.configs['flat/base-with-ejs']` - Settings and rules to enable correct ESLint parsing for EJS
129+
- `*.configs['flat/best-practices']` - Above, plus rules to improve dev experience
130+
- `*.configs['flat/recommended']` - Above, plus rules to improve code readability
131+
- `*.configs['flat/recommended-with-html']` - Above, plus rules to improve code readability with HTML template
132+
- `*.configs['flat/recommended-with-script']` - `*.configs['flat/recommended']` config, plus to enable ESLint parsing of JavaScript templates (*This is an experimental feature*)
133+
- `*.configs['flat/all']` - All rules of this plugin are included
134+
135+
### For `.eslintrc.*`
136+
111137
This plugin provides 6 predefined configs:
112138

113139
- `plugin:lodash-template/base` - Settings and rules to enable correct ESLint parsing

lib/configs/flat/all.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
"use strict";
2+
3+
const util = require("../../utils/rules");
4+
5+
module.exports = {
6+
...require("./base"),
7+
rules: util.collectRules(),
8+
};

lib/configs/flat/base-with-ejs.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"use strict";
2+
3+
const base = require("./base");
4+
module.exports = {
5+
...base,
6+
languageOptions: {
7+
...base.languageOptions,
8+
parserOptions: {
9+
templateSettings: {
10+
evaluate: [
11+
["<%", "<%_"],
12+
["%>", "-%>", "_%>"],
13+
],
14+
interpolate: ["<%-", ["%>", "-%>", "_%>"]],
15+
escape: ["<%=", ["%>", "-%>", "_%>"]],
16+
comment: ["<%#", ["%>", "-%>", "_%>"]],
17+
literal: ["<%%"],
18+
},
19+
},
20+
},
21+
};

lib/configs/flat/base.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
"use strict";
2+
3+
const util = require("../../utils/rules");
4+
5+
module.exports = {
6+
languageOptions: {
7+
parser: require("../../parser/micro-template-eslint-parser"),
8+
},
9+
plugins: {
10+
get "lodash-template"() {
11+
return require("../../index");
12+
},
13+
},
14+
rules: util.collectRules("base"),
15+
};

lib/configs/flat/best-practices.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"use strict";
2+
3+
const util = require("../../utils/rules");
4+
5+
const base = require("./base");
6+
module.exports = {
7+
...base,
8+
rules: {
9+
...base.rules,
10+
...util.collectRules("best-practices"),
11+
},
12+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
"use strict";
2+
3+
const util = require("../../utils/rules");
4+
5+
const recommended = require("./recommended");
6+
module.exports = {
7+
...recommended,
8+
rules: {
9+
...recommended.rules,
10+
...util.collectRules("recommended-with-html"),
11+
},
12+
processor: "lodash-template/html",
13+
};
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
"use strict";
2+
3+
const recommended = require("./recommended");
4+
module.exports = {
5+
...recommended,
6+
processor: "lodash-template/script",
7+
};

lib/configs/flat/recommended.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"use strict";
2+
3+
const util = require("../../utils/rules");
4+
5+
const bestPractices = require("./best-practices");
6+
module.exports = {
7+
...bestPractices,
8+
rules: {
9+
...bestPractices.rules,
10+
...util.collectRules("recommended"),
11+
},
12+
};

0 commit comments

Comments
 (0)