@isentinel/eslint-config 0.7.5 → 0.7.7

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/README.md CHANGED
@@ -41,10 +41,9 @@ export default style();
41
41
  > [customization](#customization) for more details.
42
42
 
43
43
  > [!TIP]
44
- > ESLint by default only detects `eslint.config.js` as the flat config entry.
45
- > You should install
46
- > [`eslint-ts-patch`](https://github.com/antfu/eslint-ts-patch) so that you can
47
- > use `.ts` as the config file.
44
+ > ESLint can support .ts config files, but requires some additional setup. See
45
+ > [here](https://eslint.org/docs/latest/use/configure/configuration-files#typescript-configuration-files)
46
+ > for more information.
48
47
 
49
48
  ### tsconfig.build.json
50
49
 
@@ -148,7 +147,10 @@ Add the following settings to your `.vscode/settings.json`:
148
147
  "jsonc",
149
148
  "yaml",
150
149
  "toml"
151
- ]
150
+ ],
151
+
152
+ // Currently required to enable .ts config files
153
+ "eslint.options": { "flags": ["unstable_ts_config"] }
152
154
  }
153
155
  ```
154
156
 
@@ -27,9 +27,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  mod
28
28
  ));
29
29
 
30
- // node_modules/.pnpm/tsup@8.2.3_jiti@1.21.6_postcss@8.4.38_tsx@4.15.4_typescript@5.5.4_yaml@2.5.0/node_modules/tsup/assets/esm_shims.js
30
+ // node_modules/.pnpm/tsup@8.2.4_jiti@1.21.6_postcss@8.4.38_tsx@4.15.4_typescript@5.5.4_yaml@2.5.0/node_modules/tsup/assets/esm_shims.js
31
31
  var init_esm_shims = __esm({
32
- "node_modules/.pnpm/tsup@8.2.3_jiti@1.21.6_postcss@8.4.38_tsx@4.15.4_typescript@5.5.4_yaml@2.5.0/node_modules/tsup/assets/esm_shims.js"() {
32
+ "node_modules/.pnpm/tsup@8.2.4_jiti@1.21.6_postcss@8.4.38_tsx@4.15.4_typescript@5.5.4_yaml@2.5.0/node_modules/tsup/assets/esm_shims.js"() {
33
33
  "use strict";
34
34
  }
35
35
  });
package/dist/cli.cjs CHANGED
@@ -37,7 +37,7 @@ var import_helpers = require("yargs/helpers");
37
37
  // package.json
38
38
  var package_default = {
39
39
  name: "@isentinel/eslint-config",
40
- version: "0.7.5",
40
+ version: "0.7.7",
41
41
  description: "iSentinel's ESLint config",
42
42
  keywords: [
43
43
  "eslint-config",
@@ -69,7 +69,7 @@ var package_default = {
69
69
  build: "nr typegen && tsup --format esm,cjs --clean --dts",
70
70
  "build:inspector": "pnpm build && npx @eslint/config-inspector build",
71
71
  dev: "npx @eslint/config-inspector --config eslint.config.ts",
72
- lint: "eslint .",
72
+ lint: "eslint . --flag unstable_ts_config",
73
73
  prepack: "nr build",
74
74
  prepare: "simple-git-hooks",
75
75
  release: "bumpp && pnpm publish --p",
@@ -82,38 +82,38 @@ var package_default = {
82
82
  "pre-commit": "pnpm lint-staged"
83
83
  },
84
84
  "lint-staged": {
85
- "*": "eslint --fix"
85
+ "*": "eslint --fix --flag unstable_ts_config"
86
86
  },
87
87
  dependencies: {
88
- "@antfu/install-pkg": "0.3.3",
88
+ "@antfu/install-pkg": "0.4.0",
89
89
  "@clack/prompts": "0.7.0",
90
- "@cspell/eslint-plugin": "8.13.1",
90
+ "@cspell/eslint-plugin": "8.14.2",
91
91
  "@eslint/compat": "1.1.1",
92
92
  "@isentinel/dict-rbxts": "1.0.1",
93
93
  "@isentinel/dict-roblox": "1.0.3",
94
94
  "@isentinel/eslint-plugin-comment-length": "1.7.3",
95
95
  "@shopify/eslint-plugin": "46.0.0",
96
- "@stylistic/eslint-plugin": "2.6.1",
97
- "@typescript-eslint/eslint-plugin": "8.0.0",
98
- "@typescript-eslint/parser": "8.0.0",
96
+ "@stylistic/eslint-plugin": "2.6.4",
97
+ "@typescript-eslint/eslint-plugin": "8.3.0",
98
+ "@typescript-eslint/parser": "8.3.0",
99
99
  "eslint-config-flat-gitignore": "0.1.8",
100
100
  "eslint-config-prettier": "9.1.0",
101
- "eslint-flat-config-utils": "0.3.0",
101
+ "eslint-flat-config-utils": "0.3.1",
102
102
  "eslint-merge-processors": "0.1.0",
103
- "eslint-plugin-antfu": "2.3.4",
103
+ "eslint-plugin-antfu": "2.3.6",
104
104
  "eslint-plugin-arrow-return-style": "1.3.1",
105
105
  "eslint-plugin-eslint-comments": "3.2.0",
106
106
  "eslint-plugin-format": "0.1.2",
107
107
  "eslint-plugin-format-lua": "0.1.0",
108
108
  "eslint-plugin-import-x": "3.1.0",
109
- "eslint-plugin-jsdoc": "48.11.0",
109
+ "eslint-plugin-jsdoc": "50.2.2",
110
110
  "eslint-plugin-jsonc": "2.16.0",
111
111
  "eslint-plugin-markdown": "5.1.0",
112
112
  "eslint-plugin-no-autofix": "2.0.0",
113
113
  "eslint-plugin-package-json": "0.15.2",
114
- "eslint-plugin-perfectionist": "3.1.0",
115
- "eslint-plugin-promise": "7.0.0",
116
- "eslint-plugin-sonarjs": "1.0.4",
114
+ "eslint-plugin-perfectionist": "3.3.0",
115
+ "eslint-plugin-promise": "7.1.0",
116
+ "eslint-plugin-sonarjs": "2.0.1",
117
117
  "eslint-plugin-toml": "0.11.1",
118
118
  "eslint-plugin-unicorn": "55.0.0",
119
119
  "eslint-plugin-yml": "1.14.0",
@@ -130,30 +130,30 @@ var package_default = {
130
130
  yargs: "17.7.2"
131
131
  },
132
132
  devDependencies: {
133
- "@antfu/ni": "0.22.0",
133
+ "@antfu/ni": "0.22.4",
134
134
  "@eslint-react/eslint-plugin": "1.8.2",
135
- "@eslint/config-inspector": "0.5.2",
135
+ "@eslint/config-inspector": "0.5.4",
136
136
  "@isentinel/eslint-config": "workspace:*",
137
- "@stylistic/eslint-plugin-migrate": "2.6.1",
137
+ "@stylistic/eslint-plugin-migrate": "2.6.4",
138
138
  "@types/eslint": "9.6.0",
139
139
  "@types/fs-extra": "11.0.4",
140
- "@types/node": "20.14.13",
140
+ "@types/node": "20.14.15",
141
141
  "@types/prompts": "2.4.9",
142
- "@types/yargs": "17.0.32",
143
- bumpp: "9.4.1",
144
- "bundle-require": "5.0.0",
145
- eslint: "9.8.0",
142
+ "@types/yargs": "17.0.33",
143
+ bumpp: "9.5.2",
144
+ eslint: "9.9.1",
146
145
  "eslint-plugin-react-hooks": "4.6.2",
147
146
  "eslint-plugin-simple-import-sort": "12.1.1",
148
- "eslint-typegen": "0.3.0",
147
+ "eslint-typegen": "0.3.1",
149
148
  esno: "4.7.0",
150
- execa: "9.3.0",
149
+ execa: "9.3.1",
151
150
  "fast-glob": "3.3.2",
152
151
  "fs-extra": "11.2.0",
153
- "lint-staged": "15.2.7",
152
+ jiti: "1.21.6",
153
+ "lint-staged": "15.2.9",
154
154
  rimraf: "6.0.1",
155
155
  "simple-git-hooks": "2.11.1",
156
- tsup: "8.2.3",
156
+ tsup: "8.2.4",
157
157
  typescript: "5.5.4"
158
158
  },
159
159
  peerDependencies: {
@@ -169,7 +169,7 @@ var package_default = {
169
169
  optional: true
170
170
  }
171
171
  },
172
- packageManager: "pnpm@9.6.0",
172
+ packageManager: "pnpm@9.8.0",
173
173
  publishConfig: {
174
174
  access: "public"
175
175
  }
package/dist/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init_esm_shims
3
- } from "./chunk-6J6ZEY37.js";
3
+ } from "./chunk-AYWJL55M.js";
4
4
 
5
5
  // src/cli.ts
6
6
  init_esm_shims();
@@ -19,7 +19,7 @@ init_esm_shims();
19
19
  // package.json
20
20
  var package_default = {
21
21
  name: "@isentinel/eslint-config",
22
- version: "0.7.5",
22
+ version: "0.7.7",
23
23
  description: "iSentinel's ESLint config",
24
24
  keywords: [
25
25
  "eslint-config",
@@ -51,7 +51,7 @@ var package_default = {
51
51
  build: "nr typegen && tsup --format esm,cjs --clean --dts",
52
52
  "build:inspector": "pnpm build && npx @eslint/config-inspector build",
53
53
  dev: "npx @eslint/config-inspector --config eslint.config.ts",
54
- lint: "eslint .",
54
+ lint: "eslint . --flag unstable_ts_config",
55
55
  prepack: "nr build",
56
56
  prepare: "simple-git-hooks",
57
57
  release: "bumpp && pnpm publish --p",
@@ -64,38 +64,38 @@ var package_default = {
64
64
  "pre-commit": "pnpm lint-staged"
65
65
  },
66
66
  "lint-staged": {
67
- "*": "eslint --fix"
67
+ "*": "eslint --fix --flag unstable_ts_config"
68
68
  },
69
69
  dependencies: {
70
- "@antfu/install-pkg": "0.3.3",
70
+ "@antfu/install-pkg": "0.4.0",
71
71
  "@clack/prompts": "0.7.0",
72
- "@cspell/eslint-plugin": "8.13.1",
72
+ "@cspell/eslint-plugin": "8.14.2",
73
73
  "@eslint/compat": "1.1.1",
74
74
  "@isentinel/dict-rbxts": "1.0.1",
75
75
  "@isentinel/dict-roblox": "1.0.3",
76
76
  "@isentinel/eslint-plugin-comment-length": "1.7.3",
77
77
  "@shopify/eslint-plugin": "46.0.0",
78
- "@stylistic/eslint-plugin": "2.6.1",
79
- "@typescript-eslint/eslint-plugin": "8.0.0",
80
- "@typescript-eslint/parser": "8.0.0",
78
+ "@stylistic/eslint-plugin": "2.6.4",
79
+ "@typescript-eslint/eslint-plugin": "8.3.0",
80
+ "@typescript-eslint/parser": "8.3.0",
81
81
  "eslint-config-flat-gitignore": "0.1.8",
82
82
  "eslint-config-prettier": "9.1.0",
83
- "eslint-flat-config-utils": "0.3.0",
83
+ "eslint-flat-config-utils": "0.3.1",
84
84
  "eslint-merge-processors": "0.1.0",
85
- "eslint-plugin-antfu": "2.3.4",
85
+ "eslint-plugin-antfu": "2.3.6",
86
86
  "eslint-plugin-arrow-return-style": "1.3.1",
87
87
  "eslint-plugin-eslint-comments": "3.2.0",
88
88
  "eslint-plugin-format": "0.1.2",
89
89
  "eslint-plugin-format-lua": "0.1.0",
90
90
  "eslint-plugin-import-x": "3.1.0",
91
- "eslint-plugin-jsdoc": "48.11.0",
91
+ "eslint-plugin-jsdoc": "50.2.2",
92
92
  "eslint-plugin-jsonc": "2.16.0",
93
93
  "eslint-plugin-markdown": "5.1.0",
94
94
  "eslint-plugin-no-autofix": "2.0.0",
95
95
  "eslint-plugin-package-json": "0.15.2",
96
- "eslint-plugin-perfectionist": "3.1.0",
97
- "eslint-plugin-promise": "7.0.0",
98
- "eslint-plugin-sonarjs": "1.0.4",
96
+ "eslint-plugin-perfectionist": "3.3.0",
97
+ "eslint-plugin-promise": "7.1.0",
98
+ "eslint-plugin-sonarjs": "2.0.1",
99
99
  "eslint-plugin-toml": "0.11.1",
100
100
  "eslint-plugin-unicorn": "55.0.0",
101
101
  "eslint-plugin-yml": "1.14.0",
@@ -112,30 +112,30 @@ var package_default = {
112
112
  yargs: "17.7.2"
113
113
  },
114
114
  devDependencies: {
115
- "@antfu/ni": "0.22.0",
115
+ "@antfu/ni": "0.22.4",
116
116
  "@eslint-react/eslint-plugin": "1.8.2",
117
- "@eslint/config-inspector": "0.5.2",
117
+ "@eslint/config-inspector": "0.5.4",
118
118
  "@isentinel/eslint-config": "workspace:*",
119
- "@stylistic/eslint-plugin-migrate": "2.6.1",
119
+ "@stylistic/eslint-plugin-migrate": "2.6.4",
120
120
  "@types/eslint": "9.6.0",
121
121
  "@types/fs-extra": "11.0.4",
122
- "@types/node": "20.14.13",
122
+ "@types/node": "20.14.15",
123
123
  "@types/prompts": "2.4.9",
124
- "@types/yargs": "17.0.32",
125
- bumpp: "9.4.1",
126
- "bundle-require": "5.0.0",
127
- eslint: "9.8.0",
124
+ "@types/yargs": "17.0.33",
125
+ bumpp: "9.5.2",
126
+ eslint: "9.9.1",
128
127
  "eslint-plugin-react-hooks": "4.6.2",
129
128
  "eslint-plugin-simple-import-sort": "12.1.1",
130
- "eslint-typegen": "0.3.0",
129
+ "eslint-typegen": "0.3.1",
131
130
  esno: "4.7.0",
132
- execa: "9.3.0",
131
+ execa: "9.3.1",
133
132
  "fast-glob": "3.3.2",
134
133
  "fs-extra": "11.2.0",
135
- "lint-staged": "15.2.7",
134
+ jiti: "1.21.6",
135
+ "lint-staged": "15.2.9",
136
136
  rimraf: "6.0.1",
137
137
  "simple-git-hooks": "2.11.1",
138
- tsup: "8.2.3",
138
+ tsup: "8.2.4",
139
139
  typescript: "5.5.4"
140
140
  },
141
141
  peerDependencies: {
@@ -151,7 +151,7 @@ var package_default = {
151
151
  optional: true
152
152
  }
153
153
  },
154
- packageManager: "pnpm@9.6.0",
154
+ packageManager: "pnpm@9.8.0",
155
155
  publishConfig: {
156
156
  access: "public"
157
157
  }
package/dist/index.cjs CHANGED
@@ -33,19 +33,19 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
33
33
  ));
34
34
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
35
 
36
- // node_modules/.pnpm/tsup@8.2.3_jiti@1.21.6_postcss@8.4.38_tsx@4.15.4_typescript@5.5.4_yaml@2.5.0/node_modules/tsup/assets/cjs_shims.js
36
+ // node_modules/.pnpm/tsup@8.2.4_jiti@1.21.6_postcss@8.4.38_tsx@4.15.4_typescript@5.5.4_yaml@2.5.0/node_modules/tsup/assets/cjs_shims.js
37
37
  var getImportMetaUrl, importMetaUrl;
38
38
  var init_cjs_shims = __esm({
39
- "node_modules/.pnpm/tsup@8.2.3_jiti@1.21.6_postcss@8.4.38_tsx@4.15.4_typescript@5.5.4_yaml@2.5.0/node_modules/tsup/assets/cjs_shims.js"() {
39
+ "node_modules/.pnpm/tsup@8.2.4_jiti@1.21.6_postcss@8.4.38_tsx@4.15.4_typescript@5.5.4_yaml@2.5.0/node_modules/tsup/assets/cjs_shims.js"() {
40
40
  "use strict";
41
41
  getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
42
42
  importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
43
43
  }
44
44
  });
45
45
 
46
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/shared.js
46
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.9.1_jiti@1.21.6_/node_modules/eslint-plugin-simple-import-sort/shared.js
47
47
  var require_shared = __commonJS({
48
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/shared.js"(exports2, module2) {
48
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.9.1_jiti@1.21.6_/node_modules/eslint-plugin-simple-import-sort/shared.js"(exports2, module2) {
49
49
  "use strict";
50
50
  init_cjs_shims();
51
51
  function extractChunks(parentNode, isPartOfChunk) {
@@ -584,9 +584,9 @@ var require_shared = __commonJS({
584
584
  }
585
585
  });
586
586
 
587
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/imports.js
587
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.9.1_jiti@1.21.6_/node_modules/eslint-plugin-simple-import-sort/imports.js
588
588
  var require_imports = __commonJS({
589
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/imports.js"(exports2, module2) {
589
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.9.1_jiti@1.21.6_/node_modules/eslint-plugin-simple-import-sort/imports.js"(exports2, module2) {
590
590
  "use strict";
591
591
  init_cjs_shims();
592
592
  var shared = require_shared();
@@ -712,9 +712,9 @@ var require_imports = __commonJS({
712
712
  }
713
713
  });
714
714
 
715
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/exports.js
715
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.9.1_jiti@1.21.6_/node_modules/eslint-plugin-simple-import-sort/exports.js
716
716
  var require_exports = __commonJS({
717
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/exports.js"(exports2, module2) {
717
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.9.1_jiti@1.21.6_/node_modules/eslint-plugin-simple-import-sort/exports.js"(exports2, module2) {
718
718
  "use strict";
719
719
  init_cjs_shims();
720
720
  var shared = require_shared();
@@ -804,9 +804,9 @@ var require_exports = __commonJS({
804
804
  }
805
805
  });
806
806
 
807
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/index.js
807
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.9.1_jiti@1.21.6_/node_modules/eslint-plugin-simple-import-sort/index.js
808
808
  var require_eslint_plugin_simple_import_sort = __commonJS({
809
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/index.js"(exports2, module2) {
809
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.9.1_jiti@1.21.6_/node_modules/eslint-plugin-simple-import-sort/index.js"(exports2, module2) {
810
810
  "use strict";
811
811
  init_cjs_shims();
812
812
  var importsRule = require_imports();
@@ -1188,9 +1188,9 @@ async function stylistic(options = {}) {
1188
1188
  }
1189
1189
 
1190
1190
  // src/configs/formatters.ts
1191
- async function formatters(options, stylistic2 = {}, markdownEnabled = true) {
1191
+ async function formatters(options = {}, stylistic2 = {}, markdownEnabled = true) {
1192
1192
  let formattingOptions = options;
1193
- if (formattingOptions === void 0 || formattingOptions === true) {
1193
+ if (formattingOptions === true) {
1194
1194
  formattingOptions = {
1195
1195
  css: true,
1196
1196
  graphql: true,
@@ -1655,7 +1655,14 @@ async function packageJson() {
1655
1655
 
1656
1656
  // src/configs/perfectionist.ts
1657
1657
  init_cjs_shims();
1658
- async function perfectionist() {
1658
+ async function perfectionist(config) {
1659
+ const { customClassGroups = [] } = config ?? {};
1660
+ const customGroups = customClassGroups.reduce((previousValue, currentValue) => {
1661
+ return {
1662
+ ...previousValue,
1663
+ [currentValue]: currentValue
1664
+ };
1665
+ }, {});
1659
1666
  return [
1660
1667
  {
1661
1668
  name: "style/perfectionist",
@@ -1664,7 +1671,31 @@ async function perfectionist() {
1664
1671
  },
1665
1672
  rules: {
1666
1673
  "perfectionist/sort-array-includes": ["error", { type: "natural" }],
1667
- "perfectionist/sort-classes": ["off"],
1674
+ "perfectionist/sort-classes": [
1675
+ "warn",
1676
+ {
1677
+ customGroups: {
1678
+ ...customGroups
1679
+ },
1680
+ groups: [
1681
+ "private-static-readonly-property",
1682
+ "private-readonly-property",
1683
+ "private-static-property",
1684
+ "private-property",
1685
+ "protected-static-readonly-property",
1686
+ "protected-readonly-property",
1687
+ "protected-static-property",
1688
+ "protected-property",
1689
+ "public-static-readonly-property",
1690
+ "public-readonly-property",
1691
+ "public-static-property",
1692
+ "public-property",
1693
+ "constructor",
1694
+ ...customClassGroups
1695
+ ],
1696
+ type: "natural"
1697
+ }
1698
+ ],
1668
1699
  "perfectionist/sort-enums": [
1669
1700
  "error",
1670
1701
  { partitionByComment: "Part:**", type: "natural" }
@@ -1971,7 +2002,8 @@ async function react(options = {}) {
1971
2002
  "react-hooks-extra/ensure-custom-hooks-using-other-hooks": "error",
1972
2003
  "react-hooks-extra/ensure-use-callback-has-non-empty-deps": "error",
1973
2004
  "react-hooks-extra/ensure-use-memo-has-non-empty-deps": "error",
1974
- "react-hooks-extra/no-direct-set-state-in-use-effect": "error",
2005
+ // react-lua does not seem to fully support the patterns that this rule enforces.
2006
+ "react-hooks-extra/no-direct-set-state-in-use-effect": "off",
1975
2007
  "react-hooks-extra/no-direct-set-state-in-use-layout-effect": "error",
1976
2008
  "react-hooks-extra/prefer-use-state-lazy-initialization": "error",
1977
2009
  // recommended rules from @eslint-react/naming-convention
@@ -2530,6 +2562,7 @@ async function typescript(options = {}) {
2530
2562
  }
2531
2563
  ],
2532
2564
  camelcase: "error",
2565
+ eqeqeq: "error",
2533
2566
  "id-length": [
2534
2567
  "error",
2535
2568
  {
@@ -2851,6 +2884,7 @@ function style(options = {}, ...userConfigs) {
2851
2884
  componentExts: componentExtensions = [],
2852
2885
  gitignore: enableGitignore = true,
2853
2886
  jsx,
2887
+ perfectionist: perfectionistOptions,
2854
2888
  react: enableReact = false,
2855
2889
  roblox: enableRoblox = true,
2856
2890
  spellCheck: enableSpellCheck,
@@ -2893,7 +2927,7 @@ function style(options = {}, ...userConfigs) {
2893
2927
  shopify(),
2894
2928
  sonarjs(),
2895
2929
  unicorn(),
2896
- perfectionist(),
2930
+ perfectionist(perfectionistOptions),
2897
2931
  typescript({
2898
2932
  ...resolveSubOptions(options, "typescript"),
2899
2933
  componentExts: componentExtensions