@peerigon/configs 7.4.0 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ # [8.1.0](https://github.com/peerigon/configs/compare/v8.0.0...v8.1.0) (2025-10-15)
2
+
3
+ ### Features
4
+
5
+ - Introduce tanstack query specific rules ([3cdfbd9](https://github.com/peerigon/configs/commit/3cdfbd9d5f9883b7577fc8539102d397d177d9a0))
6
+ - Introduce tanstack query specific rules ([#172](https://github.com/peerigon/configs/issues/172)) ([caeb816](https://github.com/peerigon/configs/commit/caeb81653f9d7da9a7d9ec5a203a281dfe629738)), closes [#166](https://github.com/peerigon/configs/issues/166)
7
+
8
+ # [8.0.0](https://github.com/peerigon/configs/compare/v7.4.0...v8.0.0) (2025-10-01)
9
+
10
+ ### Features
11
+
12
+ - **eslint:** Add eslint-plugin-react-you-might-not-need-an-effect ([1985951](https://github.com/peerigon/configs/commit/19859517f38b4f6a5b2b39119a1440b63cebcbde))
13
+
14
+ ### BREAKING CHANGES
15
+
16
+ - **eslint:** Our React rules got a lot stricter about useEffect, see https://github.com/NickvanDyke/eslint-plugin-react-you-might-not-need-an-effect
17
+
1
18
  # [7.4.0](https://github.com/peerigon/configs/compare/v7.3.0...v7.4.0) (2025-09-30)
2
19
 
3
20
  ### Bug Fixes
@@ -4,6 +4,7 @@ import reactPlugin from "eslint-plugin-react";
4
4
  import reactCompilerPlugin from "eslint-plugin-react-compiler";
5
5
  import reactHooksPlugin from "eslint-plugin-react-hooks";
6
6
  import reactRefreshPlugin from "eslint-plugin-react-refresh";
7
+ import reactYouMightNotNeedAnEffect from "eslint-plugin-react-you-might-not-need-an-effect";
7
8
  import { globPatterns } from "../lib/glob-patterns.js";
8
9
  const files = [globPatterns.jsx, globPatterns.typescriptJsx];
9
10
  /** @type {import("eslint").Linter.Config[]} */
@@ -89,6 +90,10 @@ export const react = [
89
90
  "react-compiler/react-compiler": "error",
90
91
  },
91
92
  },
93
+ {
94
+ files,
95
+ ...reactYouMightNotNeedAnEffect.configs.recommended,
96
+ },
92
97
  {
93
98
  files,
94
99
  rules: {
@@ -0,0 +1,3 @@
1
+ /** @type {import("eslint").Linter.Config[]} */
2
+ export const tanstackQuery: import("eslint").Linter.Config[];
3
+ export default tanstackQuery;
@@ -0,0 +1,14 @@
1
+ import pluginQuery from "@tanstack/eslint-plugin-query";
2
+ import { globPatterns } from "../lib/glob-patterns.js";
3
+ const files = [
4
+ globPatterns.javascript,
5
+ globPatterns.typescript,
6
+ globPatterns.jsx,
7
+ globPatterns.typescriptJsx,
8
+ ];
9
+ /** @type {import("eslint").Linter.Config[]} */
10
+ export const tanstackQuery = [
11
+ { files },
12
+ ...pluginQuery.configs["flat/recommended"],
13
+ ];
14
+ export default tanstackQuery;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerigon/configs",
3
- "version": "7.4.0",
3
+ "version": "8.1.0",
4
4
  "description": "Configs for ESLint, Prettier, TypeScript & friends",
5
5
  "keywords": [
6
6
  "eslint",
@@ -27,6 +27,7 @@
27
27
  "./eslint/presets/typescript-node": "./dist/eslint/presets/typescript-node.js",
28
28
  "./eslint/presets/typescript-react": "./dist/eslint/presets/typescript-react.js",
29
29
  "./eslint/presets/typescript": "./dist/eslint/presets/typescript.js",
30
+ "./eslint/rules/tanstack-query": "./dist/eslint/rules/tanstack-query.js",
30
31
  "./eslint/rules/vitest": "./dist/eslint/rules/vitest.js",
31
32
  "./eslint/styles/jsx-no-literals": "./dist/eslint/styles/jsx-no-literals.js",
32
33
  "./eslint/styles/no-default-export": "./dist/eslint/styles/no-default-export.js",
@@ -69,7 +70,7 @@
69
70
  },
70
71
  "dependencies": {
71
72
  "@eslint-react/eslint-plugin": "^1.52.6",
72
- "@eslint/compat": "^1.3.2",
73
+ "@eslint/compat": "^1.4.0",
73
74
  "@eslint/js": "^9.32.0",
74
75
  "@ianvs/prettier-plugin-sort-imports": "^4.7.0",
75
76
  "@prettier/plugin-oxc": "^0.0.4",
@@ -77,6 +78,7 @@
77
78
  "@semantic-release/changelog": "^6.0.3",
78
79
  "@semantic-release/exec": "^7.1.0",
79
80
  "@semantic-release/git": "^10.0.1",
81
+ "@tanstack/eslint-plugin-query": "^5.91.1",
80
82
  "@types/eslint-config-prettier": "^6.11.3",
81
83
  "@types/eslint-plugin-jsx-a11y": "^6.10.0",
82
84
  "@vitest/eslint-plugin": "^1.3.5",
@@ -88,6 +90,7 @@
88
90
  "eslint-plugin-react-compiler": "^19.1.0-rc.2",
89
91
  "eslint-plugin-react-hooks": "^5.2.0",
90
92
  "eslint-plugin-react-refresh": "^0.4.20",
93
+ "eslint-plugin-react-you-might-not-need-an-effect": "^0.5.5",
91
94
  "eslint-plugin-unicorn": "^60.0.0",
92
95
  "globals": "^16.3.0",
93
96
  "prettier-plugin-css-order": "^2.1.2",
@@ -101,15 +104,15 @@
101
104
  "@types/node": "^24.3.0",
102
105
  "@types/react": "^19.1.12",
103
106
  "@types/signale": "^1.4.7",
104
- "eslint": "^9.34.0",
107
+ "eslint": "^9.36.0",
105
108
  "husky": "^9.1.7",
106
- "lint-staged": "^16.1.6",
109
+ "lint-staged": "^16.2.3",
107
110
  "npm-run-all2": "^8.0.4",
108
111
  "pin-github-action": "^3.4.0",
109
112
  "prettier": "^3.6.2",
110
113
  "react": "^19.1.1",
111
114
  "rimraf": "^6.0.1",
112
- "semantic-release": "^24.2.7",
115
+ "semantic-release": "^24.2.9",
113
116
  "typescript": "^5.9.2"
114
117
  },
115
118
  "peerDependencies": {