@jimmy.codes/eslint-config 6.16.2 → 6.17.1

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,14 @@ 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
+ objectReturnStyle: "off",
115
+ usePrettier: false
116
+ }],
117
+ "arrow-style/no-export-default-arrow": "error",
110
118
  "class-methods-use-this": "error",
111
119
  "consistent-return": "error",
112
120
  "curly": ["error", "all"],
@@ -176,6 +184,7 @@ const javascriptConfig = () => {
176
184
  return [{
177
185
  linterOptions: { reportUnusedDisableDirectives: true },
178
186
  name: "jimmy.codes/javascript",
187
+ plugins: { "arrow-style": arrowReturnStylePlugin },
179
188
  rules: javascriptRules
180
189
  }, {
181
190
  files: GLOB_TESTS,
@@ -479,7 +488,7 @@ const defineConfig = async ({ astro = false, autoDetect = true, gitignore = fals
479
488
  ];
480
489
  const featureConfigs = await Promise.all([
481
490
  isTypescriptEnabled && unwrap(import("./typescript-8inYuw4v.mjs")),
482
- isReactEnabled && unwrap(import("./react-CfoK95bu.mjs")),
491
+ isReactEnabled && unwrap(import("./react-K_Z3YHim.mjs")),
483
492
  isTanstackQueryEnabled && unwrap(import("./tanstack-query-NIpT7cxZ.mjs")),
484
493
  isAstroEnabled && unwrap(import("./astro-BQtDqyG3.mjs")),
485
494
  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.1",
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",