@jimmy.codes/eslint-config 6.28.0 → 6.30.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/dist/index.mjs CHANGED
@@ -259,8 +259,10 @@ const nodeConfig = () => {
259
259
 
260
260
  //#endregion
261
261
  //#region src/rules/perfectionist.ts
262
+ const recommendedNaturalConfig = configs$2?.["recommended-natural"];
263
+ const recommendedNaturalRules = recommendedNaturalConfig && "rules" in recommendedNaturalConfig ? recommendedNaturalConfig.rules : {};
262
264
  const perfectionistRules = {
263
- ...configs$2["recommended-natural"].rules,
265
+ ...recommendedNaturalRules,
264
266
  "perfectionist/sort-imports": ["error", {
265
267
  environment: "node",
266
268
  groups: [
@@ -405,6 +407,41 @@ const stylisticRules = {
405
407
  blankLine: "always",
406
408
  next: "function",
407
409
  prev: "*"
410
+ },
411
+ {
412
+ blankLine: "any",
413
+ next: "const",
414
+ prev: "const"
415
+ },
416
+ {
417
+ blankLine: "any",
418
+ next: "let",
419
+ prev: "let"
420
+ },
421
+ {
422
+ blankLine: "any",
423
+ next: "var",
424
+ prev: "var"
425
+ },
426
+ {
427
+ blankLine: "always",
428
+ next: ["let", "var"],
429
+ prev: "const"
430
+ },
431
+ {
432
+ blankLine: "always",
433
+ next: ["const", "var"],
434
+ prev: "let"
435
+ },
436
+ {
437
+ blankLine: "always",
438
+ next: ["const", "let"],
439
+ prev: "var"
440
+ },
441
+ {
442
+ blankLine: "always",
443
+ next: "if",
444
+ prev: "if"
408
445
  }
409
446
  ]
410
447
  };
@@ -530,8 +567,8 @@ const defineConfig = async ({ astro = false, autoDetect = true, gitignore = fals
530
567
  isReactEnabled && unwrap(import("./react-6Ule3BqW.mjs"), react),
531
568
  isTanstackQueryEnabled && unwrap(import("./tanstack-query-BVXIAVcv.mjs"), tanstackQuery),
532
569
  isAstroEnabled && unwrap(import("./astro-BnZ2LIR3.mjs"), astro),
533
- isJestEnabled && unwrap(import("./jest-Dm9_cuf3.mjs"), jest),
534
- isVitestEnabled && unwrap(import("./vitest-WmpT3DEl.mjs"), vitest),
570
+ isJestEnabled && unwrap(import("./jest-C3ee1wyj.mjs"), jest),
571
+ isVitestEnabled && unwrap(import("./vitest-BkzQGlIC.mjs"), vitest),
535
572
  isTestingLibraryEnabled && unwrap(import("./testing-library-BFsBlKXl.mjs"), testingLibrary),
536
573
  isPlaywrightEnabled && unwrap(import("./playwright-ChDf6HhZ.mjs"), playwright),
537
574
  isStorybookEnabled && unwrap(import("./storybook-BfbeHUhi.mjs"), storybook),
@@ -17,11 +17,13 @@ const jestRules = async (options) => {
17
17
  "jest/no-conditional-in-test": "error",
18
18
  "jest/no-confusing-set-timeout": "error",
19
19
  "jest/no-duplicate-hooks": "error",
20
+ "jest/no-error-equal": "off",
20
21
  "jest/no-hooks": "off",
21
22
  "jest/no-large-snapshots": "off",
22
23
  "jest/no-restricted-jest-methods": "off",
23
24
  "jest/no-restricted-matchers": "off",
24
25
  "jest/no-test-return-statement": "error",
26
+ "jest/no-unnecessary-assertion": "off",
25
27
  "jest/no-unneeded-async-expect-function": "error",
26
28
  "jest/no-untyped-mock-factory": "off",
27
29
  "jest/padding-around-all": "error",
@@ -36,6 +38,7 @@ const jestRules = async (options) => {
36
38
  "jest/prefer-jest-mocked": "error",
37
39
  "jest/prefer-lowercase-title": "off",
38
40
  "jest/prefer-mock-promise-shorthand": "error",
41
+ "jest/prefer-mock-return-shorthand": "error",
39
42
  "jest/prefer-snapshot-hint": "error",
40
43
  "jest/prefer-spy-on": "off",
41
44
  "jest/prefer-strict-equal": "error",
@@ -46,6 +49,7 @@ const jestRules = async (options) => {
46
49
  "jest/require-to-throw-message": "error",
47
50
  "jest/require-top-level-describe": "off",
48
51
  "jest/unbound-method": "off",
52
+ "jest/valid-expect-with-promise": "off",
49
53
  "jest/valid-title": ["error", { mustMatch: { it: "^should" } }],
50
54
  ...options?.overrides
51
55
  };
@@ -44,12 +44,14 @@ const vitestRules = async (options) => {
44
44
  "vitest/prefer-importing-vitest-globals": options?.globals === "explicit" ? "error" : "off",
45
45
  "vitest/prefer-lowercase-title": "off",
46
46
  "vitest/prefer-mock-promise-shorthand": "error",
47
+ "vitest/prefer-mock-return-shorthand": "error",
47
48
  "vitest/prefer-snapshot-hint": "error",
48
49
  "vitest/prefer-spy-on": "off",
49
50
  "vitest/prefer-strict-boolean-matchers": "error",
50
51
  "vitest/prefer-strict-equal": "error",
51
52
  "vitest/prefer-to-be": "error",
52
53
  "vitest/prefer-to-contain": "error",
54
+ "vitest/prefer-to-have-been-called-times": "error",
53
55
  "vitest/prefer-to-have-length": "error",
54
56
  "vitest/prefer-todo": "warn",
55
57
  "vitest/prefer-vi-mocked": "error",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jimmy.codes/eslint-config",
3
- "version": "6.28.0",
3
+ "version": "6.30.0",
4
4
  "description": "A simple, modern ESLint config that covers most use cases.",
5
5
  "keywords": [
6
6
  "eslint",
@@ -41,13 +41,13 @@
41
41
  "dependencies": {
42
42
  "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
43
43
  "@eslint/js": "^9.39.2",
44
- "@next/eslint-plugin-next": "^16.1.0",
44
+ "@next/eslint-plugin-next": "^16.1.1",
45
45
  "@stylistic/eslint-plugin": "^5.6.1",
46
46
  "@tanstack/eslint-plugin-query": "^5.91.2",
47
47
  "@types/eslint": "9.6.1",
48
- "@typescript-eslint/parser": "^8.50.0",
49
- "@typescript-eslint/utils": "^8.50.0",
50
- "@vitest/eslint-plugin": "^1.5.4",
48
+ "@typescript-eslint/parser": "^8.50.1",
49
+ "@typescript-eslint/utils": "^8.50.1",
50
+ "@vitest/eslint-plugin": "^1.6.4",
51
51
  "astro-eslint-parser": "^1.2.2",
52
52
  "eslint-config-flat-gitignore": "^2.1.0",
53
53
  "eslint-config-prettier": "^10.1.8",
@@ -57,28 +57,28 @@
57
57
  "eslint-plugin-de-morgan": "^2.0.0",
58
58
  "eslint-plugin-erasable-syntax-only": "0.4.0",
59
59
  "eslint-plugin-import-x": "^4.16.1",
60
- "eslint-plugin-jest": "^29.5.0",
60
+ "eslint-plugin-jest": "^29.11.0",
61
61
  "eslint-plugin-jest-dom": "^5.5.0",
62
62
  "eslint-plugin-jsdoc": "^61.5.0",
63
63
  "eslint-plugin-jsx-a11y": "^6.10.2",
64
64
  "eslint-plugin-n": "^17.23.1",
65
- "eslint-plugin-perfectionist": "^5.0.0",
65
+ "eslint-plugin-perfectionist": "^5.1.0",
66
66
  "eslint-plugin-playwright": "^2.4.0",
67
67
  "eslint-plugin-react-compiler": "19.1.0-rc.2",
68
- "eslint-plugin-react-dom": "^2.3.13",
68
+ "eslint-plugin-react-dom": "^2.4.0",
69
69
  "eslint-plugin-react-hooks": "^7.0.1",
70
- "eslint-plugin-react-hooks-extra": "^2.3.13",
71
- "eslint-plugin-react-naming-convention": "^2.3.13",
70
+ "eslint-plugin-react-hooks-extra": "^2.4.0",
71
+ "eslint-plugin-react-naming-convention": "^2.4.0",
72
72
  "eslint-plugin-react-refresh": "0.4.26",
73
- "eslint-plugin-react-web-api": "^2.3.13",
74
- "eslint-plugin-react-x": "^2.3.13",
73
+ "eslint-plugin-react-web-api": "^2.4.0",
74
+ "eslint-plugin-react-x": "^2.4.0",
75
75
  "eslint-plugin-regexp": "^2.10.0",
76
76
  "eslint-plugin-storybook": "0.12.0",
77
- "eslint-plugin-testing-library": "^7.15.1",
77
+ "eslint-plugin-testing-library": "^7.15.3",
78
78
  "eslint-plugin-unicorn": "^62.0.0",
79
79
  "globals": "^16.5.0",
80
80
  "local-pkg": "^1.1.2",
81
- "typescript-eslint": "^8.50.0"
81
+ "typescript-eslint": "^8.50.1"
82
82
  },
83
83
  "peerDependencies": {
84
84
  "eslint": "^9.10.0"