Skip to content

Commit

Permalink
upgrades
Browse files Browse the repository at this point in the history
  • Loading branch information
nirtamir2 committed Sep 23, 2024
1 parent df005e2 commit eba25e3
Show file tree
Hide file tree
Showing 16 changed files with 4,456 additions and 2,747 deletions.
28 changes: 15 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ If you prefer to set up manually:
pnpm i -D eslint @nirtamir2/eslint-config
```

And create `eslint.config.mjs` in your project root:
And create `eslint.config.ts` in your project root:

```js
// eslint.config.mjs
// eslint.config.ts
import nirtamir2 from "@nirtamir2/eslint-config";

export default nirtamir2();
Expand All @@ -39,7 +39,7 @@ Combined with legacy config:
If you still use some configs from the legacy eslintrc format, you can use the [`@eslint/eslintrc`](https://www.npmjs.com/package/@eslint/eslintrc) package to convert them to the flat config.

```js
// eslint.config.mjs
// eslint.config.ts
import { FlatCompat } from "@eslint/eslintrc";
import nirtamir2 from "@nirtamir2/eslint-config";

Expand Down Expand Up @@ -86,7 +86,7 @@ It uses [ESLint Flat config](https://eslint.org/docs/latest/use/configure/config
Normally you only need to import the `nirtamir2` preset:

```js
// eslint.config.js
// eslint.config.ts
import nirtamir2 from "@nirtamir2/eslint-config";

export default nirtamir2();
Expand All @@ -95,7 +95,7 @@ export default nirtamir2();
And that's it! Or you can configure each integration individually, for example:

```js
// eslint.config.js
// eslint.config.ts
import nirtamir2 from "@nirtamir2/eslint-config";

export default nirtamir2({
Expand All @@ -118,7 +118,7 @@ export default nirtamir2({
The `nirtamir2` factory function also accepts any number of arbitrary custom config overrides:

```js
// eslint.config.js
// eslint.config.ts
import nirtamir2 from "@nirtamir2/eslint-config";

export default nirtamir2(
Expand Down Expand Up @@ -146,7 +146,7 @@ Going more advanced, you can also import fine-grained configs and compose them a
We wouldn't recommend using this style in general unless you know exactly what they are doing, as there are shared options between configs and might need extra care to make them consistent.

```js
// eslint.config.js
// eslint.config.ts
import {
combine,
comments,
Expand Down Expand Up @@ -175,6 +175,8 @@ export default combine(
jsdoc(),
imports(),
unicorn(),
sortPackageJson(),
sortTsconfig(),
typescript(/* Options */),
stylistic(),
vue(),
Expand All @@ -196,7 +198,7 @@ Check out the [configs](https://github.com/nirtamir2/eslint-config/blob/main/src
Certain rules would only be enabled in specific files, for example, `ts/*` rules would only be enabled in `.ts` files and `vue/*` rules would only be enabled in `.vue` files. If you want to override the rules, you need to specify the file extension:

```js
// eslint.config.js
// eslint.config.ts
import nirtamir2 from "@nirtamir2/eslint-config";

export default nirtamir2(
Expand All @@ -223,7 +225,7 @@ export default nirtamir2(
We also provided the `overrides` options in each integration to make it easier:

```js
// eslint.config.js
// eslint.config.ts
import nirtamir2 from "@nirtamir2/eslint-config";

export default nirtamir2({
Expand All @@ -250,7 +252,7 @@ export default nirtamir2({
The factory function `nirtamir2()` returns a [`FlatConfigComposer` object from `eslint-flat-config-utils`](https://github.com/nirtamir2/eslint-flat-config-utils#composer) where you can chain the methods to compose the config even more flexibly.

```js
// eslint.config.js
// eslint.config.ts
import nirtamir2 from "@nirtamir2/eslint-config";

export default nirtamir2()
Expand Down Expand Up @@ -314,7 +316,7 @@ The command comments are usually one-off and will be removed along with the tran
You can optionally enable the [type aware rules](https://typescript-eslint.io/linting/typed-linting/) by passing the options object to the `typescript` config:

```js
// eslint.config.js
// eslint.config.ts
import nirtamir2 from "@nirtamir2/eslint-config";

export default nirtamir2({
Expand All @@ -331,7 +333,7 @@ Some rules are disabled when inside ESLint IDE integrations, namely [`unused-imp
This is to prevent unused imports from getting removed by the IDE during refactoring to get a better developer experience. Those rules will be applied when you run ESLint in the terminal or [Lint Staged](#lint-staged). If you don't want this behavior, you can disable them:

```js
// eslint.config.js
// eslint.config.ts
import nirtamir2 from "@nirtamir2/eslint-config";

export default nirtamir2({
Expand Down Expand Up @@ -367,7 +369,7 @@ npx simple-git-hooks

I built a visual tool to help you view what rules are enabled in your project and apply them to what files, [@eslint/config-inspector](https://github.com/eslint/config-inspector)

Go to your project root that contains `eslint.config.js` and run:
Go to your project root that contains `eslint.config.ts` and run:

```bash
npx @eslint/config-inspector
Expand Down
4 changes: 4 additions & 0 deletions eslint.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ export default nirtamir2(
"sonarjs/no-duplicate-string": "off",
"sonarjs/no-gratuitous-expressions": "off",
"sonarjs/no-nested-template-literals": "off",
"sonarjs/sonar-no-fallthrough": "off",
"sonarjs/cognitive-complexity": "off",
"sonarjs/no-nested-conditional": "off",
"sonarjs/no-commented-code": "off",
"unicorn/consistent-destructuring": "off",
"unicorn/import-style": "off",
"unicorn/no-array-for-each": "off",
Expand Down
131 changes: 67 additions & 64 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"build:inspector": "pnpm build && npx @eslint/config-inspector build",
"dev": "npx @eslint/config-inspector --config eslint.config.ts",
"format": "prettier \"**/*\" --write --ignore-unknown",
"lint": "eslint .",
"lint": "eslint --flag unstable_ts_config . --fix",
"prepack": "nr build",
"prepare": "simple-git-hooks",
"release": "bumpp && pnpm publish",
Expand All @@ -45,19 +45,19 @@
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@unocss/eslint-plugin": ">=0.50.0",
"astro-eslint-parser": "^1.0.2",
"eslint": ">=8.40.0",
"eslint": "^9.10.0",
"eslint-plugin-astro": "^1.2.0",
"eslint-plugin-format": ">=0.1.0",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.4",
"eslint-plugin-solid": "^0.13.2",
"eslint-plugin-solid": "^0.14.3",
"eslint-plugin-svelte": ">=2.35.1",
"eslint-plugin-tailwindcss": "^3.17.3",
"prettier-plugin-astro": "^0.13.0",
"prettier-plugin-packagejson": "^2.5.0",
"prettier-plugin-slidev": "^1.0.5",
"prettier-plugin-tailwindcss": "^0.6.1",
"svelte-eslint-parser": "^0.33.1"
"svelte-eslint-parser": ">=0.37.0"
},
"peerDependenciesMeta": {
"@eslint-react/eslint-plugin": {
Expand Down Expand Up @@ -122,121 +122,124 @@
}
},
"dependencies": {
"@antfu/install-pkg": "^0.3.3",
"@antfu/install-pkg": "^0.4.1",
"@clack/prompts": "^0.7.0",
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
"@eslint/compat": "^1.1.1",
"@eslint/eslintrc": "^3.1.0",
"@eslint/js": "^9.8.0",
"@stylistic/eslint-plugin": "^2.6.1",
"@typescript-eslint/eslint-plugin": "8.0.0",
"@typescript-eslint/parser": "~8.0.0",
"@eslint/js": "^9.11.1",
"@eslint/markdown": "^6.1.0",
"@stylistic/eslint-plugin": "^2.8.0",
"@typescript-eslint/eslint-plugin": "^8.7.0",
"@typescript-eslint/parser": "^8.7.0",
"@vitest/eslint-plugin": "^1.1.4",
"confusing-browser-globals": "^1.0.11",
"eslint-config-flat-gitignore": "^0.1.8",
"eslint-config-flat-gitignore": "^0.3.0",
"eslint-config-prettier": "^9.1.0",
"eslint-flat-config-utils": "^0.3.0",
"eslint-flat-config-utils": "^0.4.0",
"eslint-merge-processors": "^0.1.0",
"eslint-plugin-antfu": "^2.3.4",
"eslint-plugin-array-func": "^5.0.1",
"eslint-plugin-clsx": "^0.0.3",
"eslint-plugin-command": "^0.2.3",
"eslint-plugin-antfu": "^2.7.0",
"eslint-plugin-array-func": "^5.0.2",
"eslint-plugin-clsx": "^0.0.9",
"eslint-plugin-command": "^0.2.5",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-expect-type": "^0.4.0",
"eslint-plugin-github": "^5.0.1",
"eslint-plugin-import-x": "^3.1.0",
"eslint-plugin-jsdoc": "^48.11.0",
"eslint-plugin-expect-type": "^0.4.3",
"eslint-plugin-github": "^5.0.2",
"eslint-plugin-import-x": "^4.3.0",
"eslint-plugin-jsdoc": "^50.2.4",
"eslint-plugin-jsonc": "^2.16.0",
"eslint-plugin-markdown": "^5.1.0",
"eslint-plugin-n": "^17.10.2",
"eslint-plugin-no-only-tests": "^3.1.0",
"eslint-plugin-no-use-extend-native": "^0.7.1",
"eslint-plugin-n": "^17.10.3",
"eslint-plugin-no-only-tests": "^3.3.0",
"eslint-plugin-no-use-extend-native": "0.7.2",
"eslint-plugin-optimize-regex": "^1.2.1",
"eslint-plugin-perfectionist": "^3.1.1",
"eslint-plugin-perfectionist": "^3.7.0",
"eslint-plugin-regexp": "^2.6.0",
"eslint-plugin-sonarjs": "^1.0.4",
"eslint-plugin-sonarjs": "^2.0.2",
"eslint-plugin-sort-destructure-keys-typescript": "^0.0.3",
"eslint-plugin-ssr-friendly": "^1.3.0",
"eslint-plugin-toml": "^0.11.1",
"eslint-plugin-tsdoc": "^0.3.0",
"eslint-plugin-unicorn": "^55.0.0",
"eslint-plugin-unused-imports": "^4.0.1",
"eslint-plugin-vitest": "^0.5.4",
"eslint-plugin-vue": "^9.27.0",
"eslint-plugin-unused-imports": "^4.1.4",
"eslint-plugin-vue": "^9.28.0",
"eslint-plugin-workspaces": "^0.10.1",
"eslint-plugin-yml": "^1.14.0",
"eslint-processor-vue-blocks": "^0.1.2",
"globals": "^15.9.0",
"jsonc-eslint-parser": "^2.4.0",
"local-pkg": "^0.5.0",
"parse-gitignore": "^2.0.0",
"picocolors": "^1.0.1",
"prettier-plugin-packagejson": "^2.5.1",
"prettier-plugin-tailwindcss": "^0.6.5",
"picocolors": "^1.1.0",
"prettier-plugin-packagejson": "^2.5.2",
"prettier-plugin-tailwindcss": "^0.6.6",
"toml-eslint-parser": "^0.10.0",
"typescript-eslint": "^8.0.0",
"typescript-eslint": "^8.7.0",
"vue-eslint-parser": "^9.4.3",
"yaml-eslint-parser": "^1.2.3",
"yargs": "^17.7.2"
},
"devDependencies": {
"@antfu/ni": "^0.22.0",
"@eslint-react/eslint-plugin": "^1.8.2",
"@eslint/config-inspector": "^0.5.2",
"@antfu/ni": "^0.23.0",
"@eslint-react/eslint-plugin": "^1.14.2",
"@eslint/config-inspector": "^0.5.4",
"@naturacosmeticos/eslint-plugin-i18n-checker": "^1.0.1",
"@next/eslint-plugin-next": "15.0.0-rc.0",
"@nirtamir2/eslint-config": "workspace:*",
"@prettier/plugin-xml": "^3.4.1",
"@stylistic/eslint-plugin-migrate": "^2.6.1",
"@stylistic/eslint-plugin-migrate": "^2.8.0",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/eslint": "^9.6.0",
"@types/fs-extra": "^11.0.4",
"@types/node": "^22.1.0",
"@types/node": "^22.6.1",
"@types/prompts": "^2.4.9",
"@types/yargs": "^17.0.32",
"@unocss/eslint-plugin": "^0.61.9",
"astro-eslint-parser": "^1.0.2",
"bumpp": "^9.4.2",
"eslint": "npm:[email protected]",
"eslint-plugin-astro": "^1.2.3",
"@types/yargs": "^17.0.33",
"@unocss/eslint-plugin": "^0.62.4",
"astro-eslint-parser": "^1.0.3",
"bumpp": "^9.5.2",
"eslint": "^9.11.1",
"eslint-plugin-astro": "^1.2.4",
"eslint-plugin-format": "^0.1.2",
"eslint-plugin-i18n-checker": "^1.4.0",
"eslint-plugin-i18n-json": "^4.0.0",
"eslint-plugin-i18n-prefix": "^0.0.6",
"eslint-plugin-i18next": "^6.0.9",
"eslint-plugin-react": "^7.35.0",
"eslint-plugin-i18next": "^6.1.0",
"eslint-plugin-react": "^7.36.1",
"eslint-plugin-react-hooks": "^4.6.2",
"eslint-plugin-react-refresh": "^0.4.9",
"eslint-plugin-react-refresh": "^0.4.12",
"eslint-plugin-security": "^3.0.1",
"eslint-plugin-solid": "^0.14.1",
"eslint-plugin-solid": "^0.14.3",
"eslint-plugin-storybook": "^0.8.0",
"eslint-plugin-svelte": "^2.43.0",
"eslint-plugin-svelte": "^2.44.0",
"eslint-plugin-tailwindcss": "^3.17.4",
"eslint-ts-patch": "9.8.0-1",
"eslint-typegen": "^0.3.0",
"eslint-typegen": "^0.3.2",
"esno": "^4.7.0",
"execa": "^9.3.0",
"execa": "^9.4.0",
"fast-glob": "^3.3.2",
"fs-extra": "^11.2.0",
"lint-staged": "^15.2.8",
"jiti": "2.0.0-rc.1",
"lint-staged": "^15.2.10",
"prettier-plugin-astro": "^0.14.1",
"prettier-plugin-slidev": "^1.0.5",
"rimraf": "^6.0.1",
"simple-git-hooks": "^2.11.1",
"svelte": "^4.2.18",
"svelte-eslint-parser": "^0.41.0",
"tsup": "^8.2.4",
"tsx": "^4.16.5",
"typescript": "^5.5.4",
"vitest": "^2.0.5",
"vue": "^3.4.35"
"svelte": "^4.2.19",
"svelte-eslint-parser": "^0.41.1",
"tsup": "^8.3.0",
"tsx": "^4.19.1",
"typescript": "^5.6.2",
"vitest": "^2.1.1",
"vue": "^3.5.8"
},
"resolutions": {
"@eslint-community/eslint-utils": "^4.4.0",
"@typescript-eslint/utils": "^8.6.0",
"eslint": "^9.10.0",
"tsx": "^4.19.1"
},
"simple-git-hooks": {
"pre-commit": "npx lint-staged"
},
"lint-staged": {
"*": "eslint --fix --no-warn-ignored"
},
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
"*": "eslint --flag unstable_ts_config --fix"
}
}
Loading

0 comments on commit eba25e3

Please sign in to comment.