@jimmy.codes/eslint-config 6.16.2 → 6.17.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.
@@ -14,9 +14,7 @@ const hasJest = () => {
14
14
  return isPackageExists("jest");
15
15
  };
16
16
  const hasTestingLibrary = () => {
17
- return ["@testing-library/react"].some((pkg) => {
18
- return isPackageExists(pkg);
19
- });
17
+ return ["@testing-library/react"].some((pkg) => isPackageExists(pkg));
20
18
  };
21
19
  const hasReactQuery = () => {
22
20
  return isPackageExists("@tanstack/react-query");
package/dist/index.d.mts CHANGED
@@ -1831,6 +1831,16 @@ interface RuleOptions {
1831
1831
  * @deprecated
1832
1832
  */
1833
1833
  'arrow-spacing'?: Linter.RuleEntry<ArrowSpacing>;
1834
+ /**
1835
+ * Enforce consistent arrow function return style based on length, multiline expressions, JSX usage, and export context
1836
+ * @see https://github.com/christopher-buss/eslint-plugin-arrow-return-style-x/blob/v1.2.6/src/rules/arrow-return-style/documentation.md
1837
+ */
1838
+ 'arrow-style/arrow-return-style'?: Linter.RuleEntry<ArrowStyleArrowReturnStyle>;
1839
+ /**
1840
+ * Disallow anonymous arrow functions as export default declarations
1841
+ * @see https://github.com/christopher-buss/eslint-plugin-arrow-return-style-x/blob/v1.2.6/src/rules/no-export-default-arrow/documentation.md
1842
+ */
1843
+ 'arrow-style/no-export-default-arrow'?: Linter.RuleEntry<[]>;
1834
1844
  /**
1835
1845
  * apply `jsx-a11y/alt-text` rule to Astro components
1836
1846
  * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/alt-text/
@@ -9492,6 +9502,18 @@ type ArrowSpacing = [] | [{
9492
9502
  before?: boolean;
9493
9503
  after?: boolean;
9494
9504
  }];
9505
+ // ----- arrow-style/arrow-return-style -----
9506
+ type ArrowStyleArrowReturnStyle = [] | [{
9507
+ jsxAlwaysUseExplicitReturn?: boolean;
9508
+ maxLen?: number;
9509
+ maxObjectProperties?: number;
9510
+ namedExportsAlwaysUseExplicitReturn?: boolean;
9511
+ objectReturnStyle?: ("always-explicit" | "complex-explicit" | "off");
9512
+ usePrettier?: (boolean | {
9513
+ [k: string]: unknown | undefined;
9514
+ } | null);
9515
+ [k: string]: unknown | undefined;
9516
+ }];
9495
9517
  // ----- astro/jsx-a11y/alt-text -----
9496
9518
  type AstroJsxA11YAltText = [] | [{
9497
9519
  elements?: string[];
package/dist/index.mjs CHANGED
@@ -1,11 +1,12 @@
1
1
  import { i as GLOB_IGNORES, l as GLOB_TESTS, n as GLOB_CJS } from "./globs-vEjrVS_T.mjs";
2
- import { a as hasReact, c as hasTestingLibrary, d as hasVitest, i as hasPlaywright, l as hasTypescript, n as hasJest, o as hasReactQuery, r as hasNext, s as hasStorybook, t as hasAstro } from "./has-dependency-hb7rZeXZ.mjs";
2
+ import { a as hasReact, c as hasTestingLibrary, d as hasVitest, i as hasPlaywright, l as hasTypescript, n as hasJest, o as hasReactQuery, r as hasNext, s as hasStorybook, t as hasAstro } from "./has-dependency-qBWsE3wC.mjs";
3
3
  import gitignoreConfig from "eslint-config-flat-gitignore";
4
4
  import globals from "globals";
5
5
  import comments from "@eslint-community/eslint-plugin-eslint-comments/configs";
6
6
  import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript";
7
7
  import { configs, importX } from "eslint-plugin-import-x";
8
8
  import nodePlugin from "eslint-plugin-n";
9
+ import arrowReturnStylePlugin from "eslint-plugin-arrow-return-style-x";
9
10
  import eslint from "@eslint/js";
10
11
  import jsdocPlugin from "eslint-plugin-jsdoc";
11
12
  import perfectionist from "eslint-plugin-perfectionist";
@@ -106,7 +107,13 @@ const importsConfig = ({ isTypescriptEnabled = false } = {}) => {
106
107
  //#region src/rules/javascript.ts
107
108
  const additionalRules = {
108
109
  "array-callback-return": ["error", { allowImplicit: true }],
109
- "arrow-body-style": ["error", "always"],
110
+ "arrow-body-style": "off",
111
+ "arrow-style/arrow-return-style": ["error", {
112
+ jsxAlwaysUseExplicitReturn: true,
113
+ namedExportsAlwaysUseExplicitReturn: true,
114
+ usePrettier: true
115
+ }],
116
+ "arrow-style/no-export-default-arrow": "error",
110
117
  "class-methods-use-this": "error",
111
118
  "consistent-return": "error",
112
119
  "curly": ["error", "all"],
@@ -176,6 +183,7 @@ const javascriptConfig = () => {
176
183
  return [{
177
184
  linterOptions: { reportUnusedDisableDirectives: true },
178
185
  name: "jimmy.codes/javascript",
186
+ plugins: { "arrow-style": arrowReturnStylePlugin },
179
187
  rules: javascriptRules
180
188
  }, {
181
189
  files: GLOB_TESTS,
@@ -479,7 +487,7 @@ const defineConfig = async ({ astro = false, autoDetect = true, gitignore = fals
479
487
  ];
480
488
  const featureConfigs = await Promise.all([
481
489
  isTypescriptEnabled && unwrap(import("./typescript-8inYuw4v.mjs")),
482
- isReactEnabled && unwrap(import("./react-CfoK95bu.mjs")),
490
+ isReactEnabled && unwrap(import("./react-K_Z3YHim.mjs")),
483
491
  isTanstackQueryEnabled && unwrap(import("./tanstack-query-NIpT7cxZ.mjs")),
484
492
  isAstroEnabled && unwrap(import("./astro-BQtDqyG3.mjs")),
485
493
  isJestEnabled && unwrap(import("./jest-CErT1V1O.mjs")),
@@ -1,5 +1,5 @@
1
1
  import { d as GLOB_TSX, o as GLOB_JSX } from "./globs-vEjrVS_T.mjs";
2
- import { l as hasTypescript, r as hasNext, u as hasVite } from "./has-dependency-hb7rZeXZ.mjs";
2
+ import { l as hasTypescript, r as hasNext, u as hasVite } from "./has-dependency-qBWsE3wC.mjs";
3
3
  import { t as interopDefault } from "./interop-default-B8s_f9DT.mjs";
4
4
  import { t as upwarn } from "./upwarn-B1BG5US9.mjs";
5
5
  import globals from "globals";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jimmy.codes/eslint-config",
3
- "version": "6.16.2",
3
+ "version": "6.17.0",
4
4
  "description": "A simple, modern ESLint config that covers most use cases.",
5
5
  "keywords": [
6
6
  "eslint",
@@ -48,11 +48,12 @@
48
48
  "@types/eslint": "9.6.1",
49
49
  "@typescript-eslint/parser": "^8.46.3",
50
50
  "@typescript-eslint/utils": "^8.46.3",
51
- "@vitest/eslint-plugin": "^1.4.0",
51
+ "@vitest/eslint-plugin": "^1.4.1",
52
52
  "astro-eslint-parser": "^1.2.2",
53
53
  "eslint-config-flat-gitignore": "^2.1.0",
54
54
  "eslint-config-prettier": "^10.1.8",
55
55
  "eslint-import-resolver-typescript": "^4.4.4",
56
+ "eslint-plugin-arrow-return-style-x": "^1.2.6",
56
57
  "eslint-plugin-astro": "^1.5.0",
57
58
  "eslint-plugin-import-x": "^4.16.1",
58
59
  "eslint-plugin-jest": "^29.0.1",