Skip to content

Commit 86bb479

Browse files
dipiashablackoff
andauthoredMar 21, 2025
feat: ✨ add fully ESM configuration
Update dependencies * update unicorn rules * docs: 📝 fully migrate to ESM config * Full changes please see here: https://github.com/dipiash/eslint-plugin-nimbus-clean/pull/76/files * fix: 🐛 fix commit lint config BREAKING CHANGE: This package is now pure ESM. Flat config is now required. ESLint 9.20.0 or later is required. --------- Co-authored-by: Anton Chernov <chernov@brask.ai>
1 parent 2c1ef86 commit 86bb479

25 files changed

+5855
-9527
lines changed
 

‎README.md

+35-114
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
![GitHub CI](https://github.com/dipiash/eslint-plugin-nimbus-clean/actions/workflows/ci.yml/badge.svg)
22
[![npm version](https://badge.fury.io/js/eslint-plugin-nimbus-clean.svg?v=0.2.4)](https://badge.fury.io/js/eslint-plugin-nimbus-clean)
3-
[![HitCount](https://hits.dwyl.com/dipiash/eslint-plugin-nimbus-clean.svg?style=flat-square)](http://hits.dwyl.com/dipiash/eslint-plugin-nimbus-clean)
4-
5-
`README.md`: [EN](/README.md) | [日本語](/docs/ja/README.md) | [繁體中文](/docs/zh-tw/README.md) | [हिंदी](/docs/hi/README.md)
3+
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.heygears.com%2Fdipiash%2Feslint-plugin-nimbus-clean&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com)
64

75
# eslint-plugin-nimbus-clean
86

@@ -14,12 +12,8 @@ A comprehensive linting solution that sweeps your code clean. Combined rules for
1412

1513
- [Installation](#installation)
1614
- [Usage](#usage)
17-
* [Legacy config](#legacy-config)
18-
+ [Full config](#full-config)
15+
* [Config](#config)
1916
+ [Incrementally improvements](#incrementally-improvements)
20-
* [Flat config](#flat-config)
21-
+ [Full config](#full-config-1)
22-
+ [Incrementally improvements](#incrementally-improvements-1)
2317
+ [Separate rules](#separate-rules)
2418
* [Prettier settings (optional)](#prettier-settings-optional)
2519
- [License](#license)
@@ -31,6 +25,8 @@ A comprehensive linting solution that sweeps your code clean. Combined rules for
3125

3226
### Installation
3327

28+
**Requires ESLint `>=9.20.0`, [flat config](https://eslint.org/docs/latest/use/configure/configuration-files), and [ESM](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c#how-can-i-make-my-typescript-project-output-esm).**
29+
3430
Here you can find instructions how to install it via: `npm`, `yarn`, `pnpm`.
3531

3632
You'll first need to install [ESLint](https://eslint.org/) and TypeScript:
@@ -74,93 +70,18 @@ npx install-peerdeps eslint-plugin-nimbus-clean --pnpm
7470

7571
### Usage
7672

77-
#### Legacy config
78-
79-
Suitable for ESLint version < 9
80-
81-
##### Full config
82-
83-
It's recommended for new projects or if you want to see all ESLint errors and warnings for existing projects.
84-
85-
Add `nimbus-clean` to the extends or plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix:
86-
```json
87-
{
88-
"parser": "@typescript-eslint/parser",
89-
"parserOptions": {
90-
"ecmaVersion": 13,
91-
"sourceType": "module",
92-
"ecmaFeatures": {
93-
"jsx": true,
94-
"modules": true,
95-
"experimentalObjectRestSpread": true
96-
}
97-
},
98-
"ignorePatterns": [
99-
"**/*",
100-
"node_modules"
101-
],
102-
"settings": {
103-
"react": {
104-
"pragma": "React",
105-
"fragment": "Fragment",
106-
"version": "detect"
107-
},
108-
"import/resolver": {
109-
"typescript": {
110-
"alwaysTryTypes": true
111-
}
112-
}
113-
},
114-
"extends": [
115-
"plugin:nimbus-clean/recommended"
116-
],
117-
"plugins": [
118-
"nimbus-clean"
119-
]
120-
}
121-
```
122-
123-
##### Incrementally improvements
124-
125-
If you have existing project big/old/etc. you can apply `nimbus-clean` config setting incrementally:
126-
- `plugin:nimbus-clean/common`
127-
- `plugin:nimbus-clean/prettier`
128-
- `plugin:nimbus-clean/import`
129-
- `plugin:nimbus-clean/simpleImportSort`
130-
- `plugin:nimbus-clean/react`
131-
- `plugin:nimbus-clean/promise`
132-
- `plugin:nimbus-clean/unicorn`
133-
- `plugin:nimbus-clean/sonarjs`
134-
- `plugin:nimbus-clean/typescript`
135-
- `plugin:nimbus-clean/perfectionist`
136-
137-
```json
138-
{
139-
...
140-
"extends": [
141-
"plugin:nimbus-clean/common",
142-
"plugin:nimbus-clean/prettier",
143-
...
144-
],
145-
"plugins": [
146-
"nimbus-clean"
147-
]
148-
}
149-
```
150-
151-
#### Flat config
73+
#### Config
15274

15375
Suitable for ESLint >= 9
15476

155-
##### Full config
156-
`eslint.config.js` from **javascript** project
77+
`eslint.config.mjs` from **javascript** project
15778

15879
```javascript
15980
import nimbusCleanPlugin from "eslint-plugin-nimbus-clean";
16081
import globals from "globals";
16182

16283
const config = [
163-
...nimbusCleanPlugin.configs.flat.recommended,
84+
...nimbusCleanPlugin.configs.recommended,
16485
// Other configs
16586

16687
{ ignores: ["dist"] },
@@ -181,15 +102,15 @@ const config = [
181102
export default config;
182103
```
183104

184-
`eslint.config.js` from **typescript** project
105+
`eslint.config.mjs` from **typescript** project
185106

186107
```typescript
187108
import nimbusCleanPlugin from "eslint-plugin-nimbus-clean";
188109
import globals from "globals";
189110
import tsLint from "typescript-eslint";
190111

191112
export default tsLint.config(
192-
...nimbusCleanPlugin.configs.flat.recommended,
113+
...nimbusCleanPlugin.configs.recommended,
193114
// Other configs
194115

195116
{ ignores: ["dist"] },
@@ -214,29 +135,29 @@ export default tsLint.config(
214135
##### Incrementally improvements
215136

216137
If you have existing project big/old/etc. you can apply `nimbus-clean` config setting incrementally:
217-
- `nimbusCleanPlugin.configs.flat.common`
218-
- `nimbusCleanPlugin.configs.flat.prettier`
219-
- `nimbusCleanPlugin.configs.flat.import`
220-
- `nimbusCleanPlugin.configs.flat.simpleImportSort`
221-
- `nimbusCleanPlugin.configs.flat.react`
222-
- `nimbusCleanPlugin.configs.flat.reactHooks`
223-
- `nimbusCleanPlugin.configs.flat.jsxA11y`
224-
- `nimbusCleanPlugin.configs.flat.promise`
225-
- `nimbusCleanPlugin.configs.flat.unicorn`
226-
- `nimbusCleanPlugin.configs.flat.sonarjs`
227-
- `nimbusCleanPlugin.configs.flat.typescript`
228-
- `nimbusCleanPlugin.configs.flat.perfectionist`
229-
- `nimbusCleanPlugin.configs.flat.testingLibrary`
230-
231-
`eslint.config.js` from **javascript** project
138+
- `nimbusCleanPlugin.configs.common`
139+
- `nimbusCleanPlugin.configs.prettier`
140+
- `nimbusCleanPlugin.configs.import`
141+
- `nimbusCleanPlugin.configs.simpleImportSort`
142+
- `nimbusCleanPlugin.configs.react`
143+
- `nimbusCleanPlugin.configs.reactHooks`
144+
- `nimbusCleanPlugin.configs.jsxA11y`
145+
- `nimbusCleanPlugin.configs.promise`
146+
- `nimbusCleanPlugin.configs.unicorn`
147+
- `nimbusCleanPlugin.configs.sonarjs`
148+
- `nimbusCleanPlugin.configs.typescript`
149+
- `nimbusCleanPlugin.configs.perfectionist`
150+
- `nimbusCleanPlugin.configs.testingLibrary`
151+
152+
`eslint.config.mjs` from **javascript** project
232153

233154
```javascript
234155
import nimbusCleanPlugin from "eslint-plugin-nimbus-clean";
235156
import globals from "globals";
236157

237158
const config = [
238-
...nimbusCleanPlugin.configs.flat.common,
239-
...nimbusCleanPlugin.configs.flat.prettier,
159+
...nimbusCleanPlugin.configs.common,
160+
...nimbusCleanPlugin.configs.prettier,
240161
// Other configs
241162

242163
{ ignores: ["dist"] },
@@ -257,16 +178,16 @@ const config = [
257178
export default config;
258179
```
259180

260-
`eslint.config.js` from **typescript** project
181+
`eslint.config.mjs` from **typescript** project
261182

262183
```typescript
263184
import nimbusCleanPlugin from "eslint-plugin-nimbus-clean";
264185
import globals from "globals";
265186
import tsLint from "typescript-eslint";
266187

267188
export default tsLint.config(
268-
...nimbusCleanPlugin.configs.flat.common,
269-
...nimbusCleanPlugin.configs.flat.prettier,
189+
...nimbusCleanPlugin.configs.common,
190+
...nimbusCleanPlugin.configs.prettier,
270191
// Other configs
271192

272193
{ ignores: ["dist"] },
@@ -304,21 +225,21 @@ For flexible customization you can also use separate rules in your configs:
304225
- `nimbusCleanPlugin.rules.perfectionist`
305226
- `nimbusCleanPlugin.rules.typescriptRules`
306227

307-
`eslint.config.js` from **javascript** project
228+
`eslint.config.mjs` from **javascript** project
308229

309230
```javascript
310231
import nimbusCleanPlugin from "eslint-plugin-nimbus-clean";
311232
import globals from "globals";
312233

313234
const config = [
314235
...({
315-
...nimbusCleanPlugin.configs.flat.common,
236+
...nimbusCleanPlugin.configs.common,
316237
rules: {
317238
... nimbusCleanPlugin.rules.common,
318239
// Your rules
319240
}
320241
}),
321-
...nimbusCleanPlugin.configs.flat.prettier,
242+
...nimbusCleanPlugin.configs.prettier,
322243
// Other configs
323244

324245
{ ignores: ["dist"] },
@@ -339,7 +260,7 @@ const config = [
339260
export default config;
340261
```
341262

342-
`eslint.config.js` from **typescript** project
263+
`eslint.config.mjs` from **typescript** project
343264

344265
```typescript
345266
import nimbusCleanPlugin from "eslint-plugin-nimbus-clean";
@@ -348,7 +269,7 @@ import tsLint from "typescript-eslint";
348269

349270
export default tsLint.config(
350271
...({
351-
...nimbusCleanPlugin.configs.flat.common,
272+
...nimbusCleanPlugin.configs.common,
352273
rules: {
353274
... nimbusCleanPlugin.rules.common,
354275
// Your rules
@@ -357,7 +278,7 @@ export default tsLint.config(
357278
// OR
358279
{
359280
rules: {
360-
...nimbusClean.rules.flat.typescript,
281+
...nimbusClean.rules.typescript,
361282
},
362283
},
363284
// Other configs

‎commitlint.config.js

-1
This file was deleted.

‎commitlint.config.mjs

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default {extends: ['@commitlint/config-conventional']}

0 commit comments

Comments
 (0)