@biscuittin/eslint-config 0.0.7 → 0.1.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.
- package/dist/index.d.ts +3197 -831
- package/dist/index.js +244 -246
- package/package.json +27 -27
- package/typegen.d.ts +4220 -911
package/dist/index.js
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import
|
|
2
|
-
import pluginReact from "@eslint-react/eslint-plugin";
|
|
3
|
-
import { eslint_plugin_jsx_a11y_minimal } from "@eslint-sukka/eslint-plugin-react-jsx-a11y";
|
|
4
|
-
import pluginJson from "@eslint/json";
|
|
5
|
-
import pluginNextJs from "@next/eslint-plugin-next";
|
|
6
|
-
import pluginStylisticJsx from "@stylistic/eslint-plugin-jsx";
|
|
7
|
-
import pluginAntfu from "eslint-plugin-antfu";
|
|
8
|
-
import pluginAutofix from "eslint-plugin-autofix";
|
|
9
|
-
import pluginFormat from "eslint-plugin-format";
|
|
10
|
-
import pluginImportX, { configs, createNodeResolver } from "eslint-plugin-import-x";
|
|
11
|
-
import pluginJsonc from "eslint-plugin-jsonc";
|
|
12
|
-
import pluginNode from "eslint-plugin-n";
|
|
13
|
-
import pluginPerfectionist from "eslint-plugin-perfectionist";
|
|
14
|
-
import * as pluginReactCompiler from "eslint-plugin-react-compiler";
|
|
15
|
-
import * as pluginReactHooks from "eslint-plugin-react-hooks";
|
|
16
|
-
import pluginReactRefresh from "eslint-plugin-react-refresh";
|
|
17
|
-
import * as pluginRegexp from "eslint-plugin-regexp";
|
|
18
|
-
import pluginTailwindCSS from "eslint-plugin-tailwindcss";
|
|
19
|
-
import pluginUnicorn from "eslint-plugin-unicorn";
|
|
20
|
-
import pluginUnusedImports from "eslint-plugin-unused-imports";
|
|
21
|
-
import { configs as configs$1, parser, plugin } from "typescript-eslint";
|
|
1
|
+
import eslintPluginESLintComments from "@eslint-community/eslint-plugin-eslint-comments";
|
|
22
2
|
import fs from "node:fs";
|
|
23
3
|
import path from "node:path";
|
|
24
4
|
import process from "node:process";
|
|
25
5
|
import { findUp } from "find-up";
|
|
26
6
|
import fsp from "node:fs/promises";
|
|
7
|
+
import eslintPluginFormat from "eslint-plugin-format";
|
|
27
8
|
import * as parserJsonc from "jsonc-eslint-parser";
|
|
9
|
+
import { configs, parser, plugin } from "typescript-eslint";
|
|
28
10
|
import gitignore from "eslint-config-flat-gitignore";
|
|
11
|
+
import eslintPluginAntfu from "eslint-plugin-antfu";
|
|
12
|
+
import eslintPluginImportX, { configs as configs$1, createNodeResolver } from "eslint-plugin-import-x";
|
|
13
|
+
import eslintPluginPerfectionist from "eslint-plugin-perfectionist";
|
|
14
|
+
import eslintPluginUnusedImports from "eslint-plugin-unused-imports";
|
|
29
15
|
import js from "@eslint/js";
|
|
16
|
+
import eslintPluginAutofix from "eslint-plugin-autofix";
|
|
30
17
|
import globals, { default as globals$1 } from "globals";
|
|
18
|
+
import eslintPluginJson from "@eslint/json";
|
|
19
|
+
import eslintPluginJsonc from "eslint-plugin-jsonc";
|
|
20
|
+
import eslintPluginNextJs from "@next/eslint-plugin-next";
|
|
21
|
+
import eslintPluginReactRefresh from "eslint-plugin-react-refresh";
|
|
22
|
+
import eslintPluginNode from "eslint-plugin-n";
|
|
23
|
+
import eslintPluginReact from "@eslint-react/eslint-plugin";
|
|
24
|
+
import { eslint_plugin_jsx_a11y_minimal } from "@eslint-sukka/eslint-plugin-react-jsx-a11y";
|
|
25
|
+
import eslintPluginStylistic from "@stylistic/eslint-plugin";
|
|
26
|
+
import * as eslintPluginReactCompiler from "eslint-plugin-react-compiler";
|
|
27
|
+
import * as eslintPluginReactHooks from "eslint-plugin-react-hooks";
|
|
28
|
+
import * as eslintPluginRegexp from "eslint-plugin-regexp";
|
|
29
|
+
import eslintPluginBetterTailwindcss from "eslint-plugin-better-tailwindcss";
|
|
31
30
|
import { createTypeScriptImportResolver, defaultExtensions } from "eslint-import-resolver-typescript";
|
|
31
|
+
import eslintPluginUnicorn from "eslint-plugin-unicorn";
|
|
32
32
|
import { FlatConfigComposer } from "eslint-flat-config-utils";
|
|
33
33
|
import { isPackageExists } from "local-pkg";
|
|
34
34
|
|
|
@@ -203,46 +203,14 @@ function memo(function_, key) {
|
|
|
203
203
|
return globalThis.__ESLINT_PLUGIN_MEMO__[_key];
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
-
//#endregion
|
|
207
|
-
//#region src/plugins.ts
|
|
208
|
-
const reactPlugins = pluginReact.configs.all.plugins;
|
|
209
|
-
const plugins = {
|
|
210
|
-
pluginAntfu: memo(pluginAntfu, "eslint-plugin-antfu"),
|
|
211
|
-
pluginAutofix: memo(pluginAutofix, "eslint-plugin-autofix"),
|
|
212
|
-
pluginESLintComments: memo(pluginESLintComments, "eslint-plugin-eslint-comments"),
|
|
213
|
-
pluginFormat: memo(pluginFormat, "eslint-plugin-format"),
|
|
214
|
-
pluginImportX: memo(pluginImportX, "eslint-plugin-import-x"),
|
|
215
|
-
pluginJson: memo(pluginJson, "eslint-plugin-json"),
|
|
216
|
-
pluginJsonc: memo(pluginJsonc, "eslint-plugin-jsonc"),
|
|
217
|
-
pluginJsxA11y: memo(eslint_plugin_jsx_a11y_minimal, "eslint-plugin-react-jsx-a11y"),
|
|
218
|
-
pluginNextJs: memo(pluginNextJs, "eslint-plugin-next"),
|
|
219
|
-
pluginNode: memo(pluginNode, "eslint-plugin-n"),
|
|
220
|
-
pluginPerfectionist: memo(pluginPerfectionist, "eslint-plugin-perfectionist"),
|
|
221
|
-
pluginReact: memo(reactPlugins["@eslint-react"], "eslint-plugin-react-x"),
|
|
222
|
-
pluginReactCompiler: memo(pluginReactCompiler, "eslint-plugin-react-compiler"),
|
|
223
|
-
pluginReactDebug: memo(reactPlugins["@eslint-react/debug"], "eslint-plugin-react-debug"),
|
|
224
|
-
pluginReactDom: memo(reactPlugins["@eslint-react/dom"], "eslint-plugin-react-dom"),
|
|
225
|
-
pluginReactHooks: memo(pluginReactHooks, "eslint-plugin-react-hooks"),
|
|
226
|
-
pluginReactHooksExtra: memo(reactPlugins["@eslint-react/hooks-extra"], "eslint-plugin-react-hooks-extra"),
|
|
227
|
-
pluginReactHooksNamingConvention: memo(reactPlugins["@eslint-react/naming-convention"], "eslint-plugin-react-naming-convention"),
|
|
228
|
-
pluginReactRefresh: memo(pluginReactRefresh, "eslint-plugin-react-refresh"),
|
|
229
|
-
pluginReactWebApi: memo(reactPlugins["@eslint-react/web-api"], "eslint-plugin-react-web-api"),
|
|
230
|
-
pluginRegexp: memo(pluginRegexp, "eslint-plugin-regexp"),
|
|
231
|
-
pluginStylisticJsx: memo(pluginStylisticJsx, "eslint-plugin-jsx"),
|
|
232
|
-
pluginTailwindCSS: memo(pluginTailwindCSS, "eslint-plugin-tailwindcss"),
|
|
233
|
-
pluginTypescript: memo(plugin, "typescript-eslint"),
|
|
234
|
-
pluginUnicorn: memo(pluginUnicorn, "eslint-plugin-unicorn"),
|
|
235
|
-
pluginUnusedImports: memo(pluginUnusedImports, "eslint-plugin-unused-imports")
|
|
236
|
-
};
|
|
237
|
-
var plugins_default = plugins;
|
|
238
|
-
|
|
239
206
|
//#endregion
|
|
240
207
|
//#region src/configs/comments.ts
|
|
208
|
+
const pluginESLintComments = memo(eslintPluginESLintComments, "eslint-plugin-eslint-comments");
|
|
241
209
|
const name$14 = getFlatConfigName("eslint-comments");
|
|
242
210
|
function comments() {
|
|
243
211
|
return [{
|
|
244
212
|
name: name$14.setup,
|
|
245
|
-
plugins: { "@eslint-community/eslint-comments":
|
|
213
|
+
plugins: { "@eslint-community/eslint-comments": pluginESLintComments }
|
|
246
214
|
}, {
|
|
247
215
|
name: name$14.rules,
|
|
248
216
|
rules: {
|
|
@@ -403,7 +371,7 @@ function disables() {
|
|
|
403
371
|
//#region src/parsers.ts
|
|
404
372
|
const parsers = {
|
|
405
373
|
parserJsonc,
|
|
406
|
-
parserPlain:
|
|
374
|
+
parserPlain: eslintPluginFormat.parserPlain,
|
|
407
375
|
parserTypescript: parser
|
|
408
376
|
};
|
|
409
377
|
var parsers_default = parsers;
|
|
@@ -419,6 +387,7 @@ const trailingCommasMap = {
|
|
|
419
387
|
all: "always",
|
|
420
388
|
multiline: "onlyMultiLine"
|
|
421
389
|
};
|
|
390
|
+
const pluginFormat = memo(eslintPluginFormat, "eslint-plugin-format");
|
|
422
391
|
const name$12 = getFlatConfigName("formatters");
|
|
423
392
|
async function formatters(options = {}) {
|
|
424
393
|
const { dprintConfigPath = "dprint.json", printWidth = 120, indentWidth = 2, useTabs = false, semi = false, quotes = "single", jsxQuotes = "double", trailingComma = "multiline", endOfLine = "lf", extraJsonFiles = [] } = options;
|
|
@@ -435,7 +404,7 @@ async function formatters(options = {}) {
|
|
|
435
404
|
return [
|
|
436
405
|
{
|
|
437
406
|
name: name$12.setup,
|
|
438
|
-
plugins: { format:
|
|
407
|
+
plugins: { format: pluginFormat }
|
|
439
408
|
},
|
|
440
409
|
{
|
|
441
410
|
name: `${name$12.rules}/typescript`,
|
|
@@ -557,6 +526,10 @@ function ignores(userIgnores = []) {
|
|
|
557
526
|
|
|
558
527
|
//#endregion
|
|
559
528
|
//#region src/configs/imports.ts
|
|
529
|
+
const pluginAntfu$2 = memo(eslintPluginAntfu, "eslint-plugin-antfu");
|
|
530
|
+
const pluginImportX$2 = memo(eslintPluginImportX, "eslint-plugin-import-x");
|
|
531
|
+
const pluginPerfectionist = memo(eslintPluginPerfectionist, "eslint-plugin-perfectionist");
|
|
532
|
+
const pluginUnusedImports$1 = memo(eslintPluginUnusedImports, "eslint-plugin-unused-imports");
|
|
560
533
|
const name$10 = getFlatConfigName("imports");
|
|
561
534
|
const files$6 = [GLOB_SRC];
|
|
562
535
|
function imports(options = {}) {
|
|
@@ -566,17 +539,17 @@ function imports(options = {}) {
|
|
|
566
539
|
name: name$10.setup,
|
|
567
540
|
files: files$6,
|
|
568
541
|
plugins: {
|
|
569
|
-
"import-x":
|
|
570
|
-
"unused-imports":
|
|
571
|
-
antfu:
|
|
572
|
-
perfectionist:
|
|
542
|
+
"import-x": pluginImportX$2,
|
|
543
|
+
"unused-imports": pluginUnusedImports$1,
|
|
544
|
+
antfu: pluginAntfu$2,
|
|
545
|
+
perfectionist: pluginPerfectionist
|
|
573
546
|
}
|
|
574
547
|
},
|
|
575
548
|
{
|
|
576
549
|
name: name$10.rules,
|
|
577
550
|
files: files$6,
|
|
578
551
|
rules: {
|
|
579
|
-
...configs.recommended.rules,
|
|
552
|
+
...configs$1.recommended.rules,
|
|
580
553
|
"import-x/newline-after-import": ["error", { considerComments: false }],
|
|
581
554
|
"import-x/no-absolute-path": "error",
|
|
582
555
|
"import-x/no-empty-named-blocks": "error",
|
|
@@ -637,6 +610,10 @@ function imports(options = {}) {
|
|
|
637
610
|
|
|
638
611
|
//#endregion
|
|
639
612
|
//#region src/configs/javascript.ts
|
|
613
|
+
const pluginAntfu$1 = memo(eslintPluginAntfu, "eslint-plugin-antfu");
|
|
614
|
+
const pluginAutofix = memo(eslintPluginAutofix, "eslint-plugin-autofix");
|
|
615
|
+
const pluginImportX$1 = memo(eslintPluginImportX, "eslint-plugin-import-x");
|
|
616
|
+
const pluginUnusedImports = memo(eslintPluginUnusedImports, "eslint-plugin-unused-imports");
|
|
640
617
|
const name$9 = getFlatConfigName("javascript");
|
|
641
618
|
const files$5 = [GLOB_JS, GLOB_JSX];
|
|
642
619
|
const commonjsGlobalsOffList = Object.keys(globals$1.commonjs).map((key) => ({ [key]: "off" }));
|
|
@@ -655,10 +632,10 @@ function javascript(options = {}) {
|
|
|
655
632
|
name: name$9.setup,
|
|
656
633
|
files: files$5,
|
|
657
634
|
plugins: {
|
|
658
|
-
"import-x":
|
|
659
|
-
"unused-imports":
|
|
660
|
-
autofix:
|
|
661
|
-
antfu:
|
|
635
|
+
"import-x": pluginImportX$1,
|
|
636
|
+
"unused-imports": pluginUnusedImports,
|
|
637
|
+
autofix: pluginAutofix,
|
|
638
|
+
antfu: pluginAntfu$1
|
|
662
639
|
},
|
|
663
640
|
linterOptions: { reportUnusedDisableDirectives: true },
|
|
664
641
|
languageOptions: {
|
|
@@ -731,9 +708,9 @@ function javascript(options = {}) {
|
|
|
731
708
|
|
|
732
709
|
//#endregion
|
|
733
710
|
//#region src/configs/json.ts
|
|
711
|
+
const pluginJson = memo(eslintPluginJson, "eslint-plugin-json");
|
|
712
|
+
const pluginJsonc = memo(eslintPluginJsonc, "eslint-plugin-jsonc");
|
|
734
713
|
const name$8 = getFlatConfigName("json");
|
|
735
|
-
const jsoncRecommendedWithJsonRuleList = pluginJsonc.configs["flat/recommended-with-json"].map((config$1) => config$1.rules);
|
|
736
|
-
const jsoncRecommendedWithJsonRules = Object.assign({}, ...jsoncRecommendedWithJsonRuleList);
|
|
737
714
|
function json(options = {}) {
|
|
738
715
|
const { extraFiles = [], stylistic = { indentWidth: 2 } } = options;
|
|
739
716
|
const { indentWidth = 2 } = typeof stylistic === "object" ? stylistic : { indentWidth: 2 };
|
|
@@ -748,27 +725,26 @@ function json(options = {}) {
|
|
|
748
725
|
name: name$8.setup,
|
|
749
726
|
files: files$7,
|
|
750
727
|
plugins: {
|
|
751
|
-
json:
|
|
752
|
-
jsonc:
|
|
728
|
+
json: pluginJson,
|
|
729
|
+
jsonc: pluginJsonc
|
|
753
730
|
},
|
|
731
|
+
language: "json/json",
|
|
754
732
|
languageOptions: { parser: parsers_default["parserJsonc"] }
|
|
755
733
|
},
|
|
756
734
|
{
|
|
757
735
|
name: name$8.rules,
|
|
758
736
|
files: files$7,
|
|
759
|
-
rules: {
|
|
760
|
-
"json/no-duplicate-keys": "error",
|
|
761
|
-
"json/no-empty-keys": "error",
|
|
762
|
-
"json/no-unsafe-values": "error",
|
|
763
|
-
"json/no-unnormalized-keys": "error",
|
|
764
|
-
"json/top-level-interop": "error",
|
|
765
|
-
...jsoncRecommendedWithJsonRules
|
|
766
|
-
}
|
|
737
|
+
rules: { ...pluginJson.configs.recommended.rules }
|
|
767
738
|
},
|
|
768
739
|
{
|
|
769
740
|
name: name$8.stylistic,
|
|
770
741
|
files: files$7,
|
|
771
742
|
rules: stylistic ? {
|
|
743
|
+
"json/sort-keys": [
|
|
744
|
+
"error",
|
|
745
|
+
"asc",
|
|
746
|
+
{ natural: true }
|
|
747
|
+
],
|
|
772
748
|
"jsonc/array-bracket-spacing": ["error", "never"],
|
|
773
749
|
"jsonc/comma-dangle": ["error", "never"],
|
|
774
750
|
"jsonc/comma-style": ["error", "last"],
|
|
@@ -782,7 +758,7 @@ function json(options = {}) {
|
|
|
782
758
|
multiline: true
|
|
783
759
|
}],
|
|
784
760
|
"jsonc/object-curly-spacing": ["error", "always"],
|
|
785
|
-
"jsonc/object-property-newline": ["error", {
|
|
761
|
+
"jsonc/object-property-newline": ["error", { allowAllPropertiesOnSameLine: true }],
|
|
786
762
|
"jsonc/quote-props": "error",
|
|
787
763
|
"jsonc/quotes": "error"
|
|
788
764
|
} : {}
|
|
@@ -791,6 +767,7 @@ function json(options = {}) {
|
|
|
791
767
|
name: `${name$8.base}/package-json`,
|
|
792
768
|
files: ["**/package.json"],
|
|
793
769
|
rules: {
|
|
770
|
+
"json/sort-keys": "off",
|
|
794
771
|
"jsonc/sort-array-values": ["error", {
|
|
795
772
|
order: { type: "asc" },
|
|
796
773
|
pathPattern: "^files$"
|
|
@@ -885,114 +862,117 @@ function json(options = {}) {
|
|
|
885
862
|
{
|
|
886
863
|
name: `${name$8.base}/tsconfig-json`,
|
|
887
864
|
files: ["**/tsconfig.json", "**/tsconfig.*.json"],
|
|
888
|
-
rules: {
|
|
889
|
-
"
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
865
|
+
rules: {
|
|
866
|
+
"json/sort-keys": "off",
|
|
867
|
+
"jsonc/sort-keys": [
|
|
868
|
+
"error",
|
|
869
|
+
{
|
|
870
|
+
order: [
|
|
871
|
+
"extends",
|
|
872
|
+
"compilerOptions",
|
|
873
|
+
"references",
|
|
874
|
+
"files",
|
|
875
|
+
"include",
|
|
876
|
+
"exclude"
|
|
877
|
+
],
|
|
878
|
+
pathPattern: "^$"
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
order: [
|
|
882
|
+
"incremental",
|
|
883
|
+
"composite",
|
|
884
|
+
"tsBuildInfoFile",
|
|
885
|
+
"disableSourceOfProjectReferenceRedirect",
|
|
886
|
+
"disableSolutionSearching",
|
|
887
|
+
"disableReferencedProjectLoad",
|
|
888
|
+
"target",
|
|
889
|
+
"jsx",
|
|
890
|
+
"jsxFactory",
|
|
891
|
+
"jsxFragmentFactory",
|
|
892
|
+
"jsxImportSource",
|
|
893
|
+
"lib",
|
|
894
|
+
"moduleDetection",
|
|
895
|
+
"noLib",
|
|
896
|
+
"reactNamespace",
|
|
897
|
+
"useDefineForClassFields",
|
|
898
|
+
"emitDecoratorMetadata",
|
|
899
|
+
"experimentalDecorators",
|
|
900
|
+
"baseUrl",
|
|
901
|
+
"rootDir",
|
|
902
|
+
"rootDirs",
|
|
903
|
+
"customConditions",
|
|
904
|
+
"module",
|
|
905
|
+
"moduleResolution",
|
|
906
|
+
"moduleSuffixes",
|
|
907
|
+
"noResolve",
|
|
908
|
+
"paths",
|
|
909
|
+
"resolveJsonModule",
|
|
910
|
+
"resolvePackageJsonExports",
|
|
911
|
+
"resolvePackageJsonImports",
|
|
912
|
+
"typeRoots",
|
|
913
|
+
"types",
|
|
914
|
+
"allowArbitraryExtensions",
|
|
915
|
+
"allowImportingTsExtensions",
|
|
916
|
+
"allowUmdGlobalAccess",
|
|
917
|
+
"allowJs",
|
|
918
|
+
"checkJs",
|
|
919
|
+
"maxNodeModuleJsDepth",
|
|
920
|
+
"strict",
|
|
921
|
+
"strictBindCallApply",
|
|
922
|
+
"strictFunctionTypes",
|
|
923
|
+
"strictNullChecks",
|
|
924
|
+
"strictPropertyInitialization",
|
|
925
|
+
"allowUnreachableCode",
|
|
926
|
+
"allowUnusedLabels",
|
|
927
|
+
"alwaysStrict",
|
|
928
|
+
"exactOptionalPropertyTypes",
|
|
929
|
+
"noFallthroughCasesInSwitch",
|
|
930
|
+
"noImplicitAny",
|
|
931
|
+
"noImplicitOverride",
|
|
932
|
+
"noImplicitReturns",
|
|
933
|
+
"noImplicitThis",
|
|
934
|
+
"noPropertyAccessFromIndexSignature",
|
|
935
|
+
"noUncheckedIndexedAccess",
|
|
936
|
+
"noUnusedLocals",
|
|
937
|
+
"noUnusedParameters",
|
|
938
|
+
"useUnknownInCatchVariables",
|
|
939
|
+
"declaration",
|
|
940
|
+
"declarationDir",
|
|
941
|
+
"declarationMap",
|
|
942
|
+
"downlevelIteration",
|
|
943
|
+
"emitBOM",
|
|
944
|
+
"emitDeclarationOnly",
|
|
945
|
+
"importHelpers",
|
|
946
|
+
"importsNotUsedAsValues",
|
|
947
|
+
"inlineSourceMap",
|
|
948
|
+
"inlineSources",
|
|
949
|
+
"mapRoot",
|
|
950
|
+
"newLine",
|
|
951
|
+
"noEmit",
|
|
952
|
+
"noEmitHelpers",
|
|
953
|
+
"noEmitOnError",
|
|
954
|
+
"outDir",
|
|
955
|
+
"outFile",
|
|
956
|
+
"preserveConstEnums",
|
|
957
|
+
"preserveValueImports",
|
|
958
|
+
"removeComments",
|
|
959
|
+
"sourceMap",
|
|
960
|
+
"sourceRoot",
|
|
961
|
+
"stripInternal",
|
|
962
|
+
"allowSyntheticDefaultImports",
|
|
963
|
+
"esModuleInterop",
|
|
964
|
+
"forceConsistentCasingInFileNames",
|
|
965
|
+
"isolatedDeclarations",
|
|
966
|
+
"isolatedModules",
|
|
967
|
+
"preserveSymlinks",
|
|
968
|
+
"verbatimModuleSyntax",
|
|
969
|
+
"skipDefaultLibCheck",
|
|
970
|
+
"skipLibCheck"
|
|
971
|
+
],
|
|
972
|
+
pathPattern: "^compilerOptions$"
|
|
973
|
+
}
|
|
974
|
+
]
|
|
975
|
+
}
|
|
996
976
|
}
|
|
997
977
|
];
|
|
998
978
|
}
|
|
@@ -1010,6 +990,8 @@ function jsx() {
|
|
|
1010
990
|
|
|
1011
991
|
//#endregion
|
|
1012
992
|
//#region src/configs/next-js.ts
|
|
993
|
+
const pluginNextJs = memo(eslintPluginNextJs, "eslint-plugin-next");
|
|
994
|
+
const pluginReactRefresh$1 = memo(eslintPluginReactRefresh, "eslint-plugin-react-refresh");
|
|
1013
995
|
const name$6 = getFlatConfigName("next-js");
|
|
1014
996
|
const files$4 = [GLOB_SRC];
|
|
1015
997
|
function nextJs() {
|
|
@@ -1017,15 +999,14 @@ function nextJs() {
|
|
|
1017
999
|
name: name$6.setup,
|
|
1018
1000
|
files: files$4,
|
|
1019
1001
|
plugins: {
|
|
1020
|
-
"@next/next":
|
|
1021
|
-
"react-refresh":
|
|
1002
|
+
"@next/next": pluginNextJs,
|
|
1003
|
+
"react-refresh": pluginReactRefresh$1
|
|
1022
1004
|
}
|
|
1023
1005
|
}, {
|
|
1024
1006
|
name: name$6.rules,
|
|
1025
1007
|
files: files$4,
|
|
1026
1008
|
rules: {
|
|
1027
|
-
...pluginNextJs
|
|
1028
|
-
...pluginNextJs?.configs["core-web-vitals"].rules,
|
|
1009
|
+
...pluginNextJs.flatConfig.coreWebVitals.rules,
|
|
1029
1010
|
"react-refresh/only-export-components": ["warn", { allowExportNames: [
|
|
1030
1011
|
"config",
|
|
1031
1012
|
"generateStaticParams",
|
|
@@ -1040,6 +1021,7 @@ function nextJs() {
|
|
|
1040
1021
|
|
|
1041
1022
|
//#endregion
|
|
1042
1023
|
//#region src/configs/node-js.ts
|
|
1024
|
+
const pluginNode = memo(eslintPluginNode, "eslint-plugin-n");
|
|
1043
1025
|
const name$5 = getFlatConfigName("node-js");
|
|
1044
1026
|
const isModule = getPackageJson()?.type === "module";
|
|
1045
1027
|
const globalsCommonJs = {
|
|
@@ -1069,7 +1051,7 @@ function nodeJs(options = {}) {
|
|
|
1069
1051
|
{
|
|
1070
1052
|
name: name$5.setup,
|
|
1071
1053
|
files: files$7,
|
|
1072
|
-
plugins: { node:
|
|
1054
|
+
plugins: { node: pluginNode },
|
|
1073
1055
|
languageOptions: {
|
|
1074
1056
|
ecmaVersion: "latest",
|
|
1075
1057
|
parserOptions: { ecmaFeatures: { impliedStrict: true } }
|
|
@@ -1146,6 +1128,18 @@ function nodeJs(options = {}) {
|
|
|
1146
1128
|
|
|
1147
1129
|
//#endregion
|
|
1148
1130
|
//#region src/configs/react.ts
|
|
1131
|
+
const reactPlugins$1 = eslintPluginReact.configs.all.plugins;
|
|
1132
|
+
const pluginJsxA11y = memo(eslint_plugin_jsx_a11y_minimal, "eslint-plugin-react-jsx-a11y");
|
|
1133
|
+
const pluginReact$1 = memo(reactPlugins$1["@eslint-react"], "eslint-plugin-react-x");
|
|
1134
|
+
const pluginReactCompiler = memo(eslintPluginReactCompiler, "eslint-plugin-react-compiler");
|
|
1135
|
+
const pluginReactDebug = memo(reactPlugins$1["@eslint-react/debug"], "eslint-plugin-react-debug");
|
|
1136
|
+
const pluginReactDom$1 = memo(reactPlugins$1["@eslint-react/dom"], "eslint-plugin-react-dom");
|
|
1137
|
+
const pluginReactHooks = memo(eslintPluginReactHooks, "eslint-plugin-react-hooks");
|
|
1138
|
+
const pluginReactHooksExtra = memo(reactPlugins$1["@eslint-react/hooks-extra"], "eslint-plugin-react-hooks-extra");
|
|
1139
|
+
const pluginReactHooksNamingConvention = memo(reactPlugins$1["@eslint-react/naming-convention"], "eslint-plugin-react-naming-convention");
|
|
1140
|
+
const pluginReactRefresh = memo(eslintPluginReactRefresh, "eslint-plugin-react-refresh");
|
|
1141
|
+
const pluginReactWebApi = memo(reactPlugins$1["@eslint-react/web-api"], "eslint-plugin-react-web-api");
|
|
1142
|
+
const pluginStylistic = memo(eslintPluginStylistic, "eslint-plugin-stylistic");
|
|
1149
1143
|
const name$4 = getFlatConfigName("react");
|
|
1150
1144
|
const files$3 = [GLOB_SRC];
|
|
1151
1145
|
function react(options = {}) {
|
|
@@ -1155,17 +1149,17 @@ function react(options = {}) {
|
|
|
1155
1149
|
name: name$4.setup,
|
|
1156
1150
|
files: files$3,
|
|
1157
1151
|
plugins: {
|
|
1158
|
-
"react-hooks":
|
|
1159
|
-
"react-compiler":
|
|
1160
|
-
"react-refresh":
|
|
1161
|
-
"jsx-a11y":
|
|
1162
|
-
"@stylistic
|
|
1163
|
-
"@eslint-react":
|
|
1164
|
-
"@eslint-react/dom":
|
|
1165
|
-
"@eslint-react/web-api":
|
|
1166
|
-
"@eslint-react/debug":
|
|
1167
|
-
"@eslint-react/hooks-extra":
|
|
1168
|
-
"@eslint-react/naming-convention":
|
|
1152
|
+
"react-hooks": pluginReactHooks,
|
|
1153
|
+
"react-compiler": pluginReactCompiler,
|
|
1154
|
+
"react-refresh": pluginReactRefresh,
|
|
1155
|
+
"jsx-a11y": pluginJsxA11y,
|
|
1156
|
+
"@stylistic": pluginStylistic,
|
|
1157
|
+
"@eslint-react": pluginReact$1,
|
|
1158
|
+
"@eslint-react/dom": pluginReactDom$1,
|
|
1159
|
+
"@eslint-react/web-api": pluginReactWebApi,
|
|
1160
|
+
"@eslint-react/debug": pluginReactDebug,
|
|
1161
|
+
"@eslint-react/hooks-extra": pluginReactHooksExtra,
|
|
1162
|
+
"@eslint-react/naming-convention": pluginReactHooksNamingConvention
|
|
1169
1163
|
},
|
|
1170
1164
|
settings: { "react-x": {
|
|
1171
1165
|
importSource: "react",
|
|
@@ -1202,7 +1196,7 @@ function react(options = {}) {
|
|
|
1202
1196
|
"jsx-a11y/role-has-required-aria-props": "warn",
|
|
1203
1197
|
"jsx-a11y/role-supports-aria-props": "warn",
|
|
1204
1198
|
"jsx-a11y/tabindex-no-positive": "warn",
|
|
1205
|
-
...
|
|
1199
|
+
...eslintPluginReact.configs.x.rules,
|
|
1206
1200
|
"@eslint-react/ensure-forward-ref-using-ref": "error",
|
|
1207
1201
|
"@eslint-react/no-duplicate-jsx-props": "error",
|
|
1208
1202
|
"@eslint-react/no-duplicate-key": "error",
|
|
@@ -1238,32 +1232,32 @@ function react(options = {}) {
|
|
|
1238
1232
|
"@eslint-react/prefer-shorthand-fragment": "off",
|
|
1239
1233
|
"@eslint-react/avoid-shorthand-boolean": "off",
|
|
1240
1234
|
"@eslint-react/avoid-shorthand-fragment": "error",
|
|
1241
|
-
"@stylistic/jsx
|
|
1242
|
-
"@stylistic/jsx
|
|
1243
|
-
"@stylistic/jsx
|
|
1244
|
-
"@stylistic/jsx
|
|
1245
|
-
"@stylistic/jsx
|
|
1246
|
-
"@stylistic/jsx
|
|
1247
|
-
"@stylistic/jsx
|
|
1235
|
+
"@stylistic/jsx-closing-bracket-location": "error",
|
|
1236
|
+
"@stylistic/jsx-closing-tag-location": "error",
|
|
1237
|
+
"@stylistic/jsx-curly-brace-presence": ["error", { propElementValues: "always" }],
|
|
1238
|
+
"@stylistic/jsx-equals-spacing": "error",
|
|
1239
|
+
"@stylistic/jsx-first-prop-new-line": ["error", "multiline"],
|
|
1240
|
+
"@stylistic/jsx-function-call-newline": ["error", "multiline"],
|
|
1241
|
+
"@stylistic/jsx-max-props-per-line": ["error", {
|
|
1248
1242
|
maximum: 1,
|
|
1249
1243
|
when: "multiline"
|
|
1250
1244
|
}],
|
|
1251
|
-
"@stylistic/jsx
|
|
1252
|
-
"@stylistic/jsx
|
|
1245
|
+
"@stylistic/jsx-one-expression-per-line": ["error", { allow: "non-jsx" }],
|
|
1246
|
+
"@stylistic/jsx-pascal-case": ["error", {
|
|
1253
1247
|
allowNamespace: true,
|
|
1254
1248
|
ignore: ["motion"]
|
|
1255
1249
|
}],
|
|
1256
|
-
"@stylistic/jsx
|
|
1250
|
+
"@stylistic/jsx-self-closing-comp": ["error", {
|
|
1257
1251
|
component: true,
|
|
1258
1252
|
html: true
|
|
1259
1253
|
}],
|
|
1260
|
-
"@stylistic/jsx
|
|
1254
|
+
"@stylistic/jsx-tag-spacing": ["error", {
|
|
1261
1255
|
afterOpening: "never",
|
|
1262
1256
|
beforeClosing: "never",
|
|
1263
1257
|
beforeSelfClosing: "always",
|
|
1264
1258
|
closingSlash: "never"
|
|
1265
1259
|
}],
|
|
1266
|
-
"@stylistic/jsx
|
|
1260
|
+
"@stylistic/jsx-wrap-multilines": ["error", {
|
|
1267
1261
|
arrow: "parens-new-line",
|
|
1268
1262
|
assignment: "parens-new-line",
|
|
1269
1263
|
condition: "parens-new-line",
|
|
@@ -1273,7 +1267,7 @@ function react(options = {}) {
|
|
|
1273
1267
|
propertyValue: "parens-new-line",
|
|
1274
1268
|
return: "parens-new-line"
|
|
1275
1269
|
}],
|
|
1276
|
-
"@stylistic/jsx
|
|
1270
|
+
"@stylistic/jsx-sort-props": ["error", {
|
|
1277
1271
|
callbacksLast: true,
|
|
1278
1272
|
shorthandFirst: true,
|
|
1279
1273
|
multiline: "last",
|
|
@@ -1286,13 +1280,14 @@ function react(options = {}) {
|
|
|
1286
1280
|
|
|
1287
1281
|
//#endregion
|
|
1288
1282
|
//#region src/configs/regexp.ts
|
|
1283
|
+
const pluginRegexp = memo(eslintPluginRegexp, "eslint-plugin-regexp");
|
|
1289
1284
|
const name$3 = getFlatConfigName("regexp");
|
|
1290
1285
|
const files$2 = [GLOB_SRC];
|
|
1291
1286
|
function regexp() {
|
|
1292
1287
|
return [{
|
|
1293
1288
|
name: name$3.setup,
|
|
1294
1289
|
files: files$2,
|
|
1295
|
-
plugins: { regexp:
|
|
1290
|
+
plugins: { regexp: pluginRegexp }
|
|
1296
1291
|
}, {
|
|
1297
1292
|
name: name$3.rules,
|
|
1298
1293
|
files: files$2,
|
|
@@ -1302,6 +1297,7 @@ function regexp() {
|
|
|
1302
1297
|
|
|
1303
1298
|
//#endregion
|
|
1304
1299
|
//#region src/configs/tailwindcss.ts
|
|
1300
|
+
const pluginBetterTailwindCSS = memo(eslintPluginBetterTailwindcss, "eslint-plugin-better-tailwindcss");
|
|
1305
1301
|
const name$2 = getFlatConfigName("tailwindcss");
|
|
1306
1302
|
const files$1 = [
|
|
1307
1303
|
GLOB_SRC,
|
|
@@ -1309,40 +1305,41 @@ const files$1 = [
|
|
|
1309
1305
|
GLOB_POSTCSS,
|
|
1310
1306
|
GLOB_HTML
|
|
1311
1307
|
];
|
|
1312
|
-
function tailwindcss() {
|
|
1308
|
+
function tailwindcss(options = {}) {
|
|
1313
1309
|
return [{
|
|
1314
1310
|
name: name$2.setup,
|
|
1315
1311
|
files: files$1,
|
|
1316
|
-
plugins: { tailwindcss:
|
|
1317
|
-
settings: { tailwindcss: {
|
|
1318
|
-
"classnames",
|
|
1319
|
-
"clsx",
|
|
1320
|
-
"ctl",
|
|
1321
|
-
"cva",
|
|
1322
|
-
"cn",
|
|
1323
|
-
"tv"
|
|
1324
|
-
] } }
|
|
1312
|
+
plugins: { "better-tailwindcss": pluginBetterTailwindCSS },
|
|
1313
|
+
settings: { "better-tailwindcss": { ...options } }
|
|
1325
1314
|
}, {
|
|
1326
1315
|
name: name$2.rules,
|
|
1327
1316
|
files: files$1,
|
|
1328
1317
|
rules: {
|
|
1329
|
-
"tailwindcss/
|
|
1330
|
-
"tailwindcss/
|
|
1331
|
-
"tailwindcss/
|
|
1332
|
-
"tailwindcss/
|
|
1333
|
-
"tailwindcss/no-
|
|
1334
|
-
"tailwindcss/no-
|
|
1335
|
-
"tailwindcss/no-unnecessary-
|
|
1318
|
+
"better-tailwindcss/enforce-consistent-class-order": "error",
|
|
1319
|
+
"better-tailwindcss/enforce-consistent-variable-syntax": ["error", { syntax: "variable" }],
|
|
1320
|
+
"better-tailwindcss/enforce-consistent-important-position": "error",
|
|
1321
|
+
"better-tailwindcss/enforce-shorthand-classes": "error",
|
|
1322
|
+
"better-tailwindcss/no-duplicate-classes": "error",
|
|
1323
|
+
"better-tailwindcss/no-deprecated-classes": "error",
|
|
1324
|
+
"better-tailwindcss/no-unnecessary-whitespace": "error",
|
|
1325
|
+
"better-tailwindcss/no-unregistered-classes": "error",
|
|
1326
|
+
"better-tailwindcss/no-conflicting-classes": "error"
|
|
1336
1327
|
}
|
|
1337
1328
|
}];
|
|
1338
1329
|
}
|
|
1339
1330
|
|
|
1340
1331
|
//#endregion
|
|
1341
1332
|
//#region src/configs/typescript.ts
|
|
1333
|
+
const reactPlugins = eslintPluginReact.configs.all.plugins;
|
|
1334
|
+
const pluginAntfu = memo(eslintPluginAntfu, "eslint-plugin-antfu");
|
|
1335
|
+
const pluginImportX = memo(eslintPluginImportX, "eslint-plugin-import-x");
|
|
1336
|
+
const pluginReact = memo(reactPlugins["@eslint-react"], "eslint-plugin-react-x");
|
|
1337
|
+
const pluginReactDom = memo(reactPlugins["@eslint-react/dom"], "eslint-plugin-react-dom");
|
|
1338
|
+
const pluginTypescript = memo(plugin, "typescript-eslint");
|
|
1342
1339
|
const name$1 = getFlatConfigName("typescript");
|
|
1343
|
-
const typescriptStrictTypeCheckedRuleList = configs
|
|
1340
|
+
const typescriptStrictTypeCheckedRuleList = configs.strictTypeChecked.map((config$1) => config$1.rules);
|
|
1344
1341
|
const typescriptStrictTypeCheckedRules = Object.assign({}, ...typescriptStrictTypeCheckedRuleList);
|
|
1345
|
-
const typescriptStylisticTypeCheckedRuleList = configs
|
|
1342
|
+
const typescriptStylisticTypeCheckedRuleList = configs.stylisticTypeChecked.map((config$1) => config$1.rules);
|
|
1346
1343
|
const typescriptStylisticTypeCheckedRules = Object.assign({}, ...typescriptStylisticTypeCheckedRuleList);
|
|
1347
1344
|
const externalModuleFolders = ["node_modules", "node_modules/@types"];
|
|
1348
1345
|
function typescript(options = {}) {
|
|
@@ -1370,9 +1367,9 @@ function typescript(options = {}) {
|
|
|
1370
1367
|
name: name$1.setup,
|
|
1371
1368
|
files: files$7,
|
|
1372
1369
|
plugins: {
|
|
1373
|
-
"import-x":
|
|
1374
|
-
"@typescript-eslint":
|
|
1375
|
-
antfu:
|
|
1370
|
+
"import-x": pluginImportX,
|
|
1371
|
+
"@typescript-eslint": pluginTypescript,
|
|
1372
|
+
antfu: pluginAntfu
|
|
1376
1373
|
},
|
|
1377
1374
|
languageOptions: {
|
|
1378
1375
|
sourceType: "module",
|
|
@@ -1408,7 +1405,7 @@ function typescript(options = {}) {
|
|
|
1408
1405
|
name: name$1.rules,
|
|
1409
1406
|
files: files$7,
|
|
1410
1407
|
rules: {
|
|
1411
|
-
...configs.typescript.rules,
|
|
1408
|
+
...configs$1.typescript.rules,
|
|
1412
1409
|
...typescriptStrictTypeCheckedRules,
|
|
1413
1410
|
...typescriptStylisticTypeCheckedRules,
|
|
1414
1411
|
"@typescript-eslint/ban-ts-comment": ["error", {
|
|
@@ -1451,8 +1448,8 @@ function typescript(options = {}) {
|
|
|
1451
1448
|
name: `${name$1.base}/react-type-checked`,
|
|
1452
1449
|
files: files$7,
|
|
1453
1450
|
plugins: {
|
|
1454
|
-
"@eslint-react":
|
|
1455
|
-
"@eslint-react/dom":
|
|
1451
|
+
"@eslint-react": pluginReact,
|
|
1452
|
+
"@eslint-react/dom": pluginReactDom
|
|
1456
1453
|
},
|
|
1457
1454
|
rules: reactTypeCheck ? {
|
|
1458
1455
|
"@typescript-eslint/no-misused-promises": ["error", { checksVoidReturn: { attributes: false } }],
|
|
@@ -1472,6 +1469,7 @@ function typescript(options = {}) {
|
|
|
1472
1469
|
|
|
1473
1470
|
//#endregion
|
|
1474
1471
|
//#region src/configs/unicorn.ts
|
|
1472
|
+
const pluginUnicorn = memo(eslintPluginUnicorn, "eslint-plugin-unicorn");
|
|
1475
1473
|
const name = getFlatConfigName("unicorn");
|
|
1476
1474
|
const files = [GLOB_SRC];
|
|
1477
1475
|
const allFiles = [...GLOB_ALL_SRC];
|
|
@@ -1480,7 +1478,7 @@ function unicorn() {
|
|
|
1480
1478
|
{
|
|
1481
1479
|
name: `${name.setup}/all-src`,
|
|
1482
1480
|
files: allFiles,
|
|
1483
|
-
plugins: { unicorn:
|
|
1481
|
+
plugins: { unicorn: pluginUnicorn }
|
|
1484
1482
|
},
|
|
1485
1483
|
{
|
|
1486
1484
|
name: `${name.setup}/src`,
|
|
@@ -1503,7 +1501,7 @@ function unicorn() {
|
|
|
1503
1501
|
{
|
|
1504
1502
|
name: `${name.rules}/src`,
|
|
1505
1503
|
files,
|
|
1506
|
-
rules: { ...pluginUnicorn.configs
|
|
1504
|
+
rules: { ...pluginUnicorn.configs.recommended.rules }
|
|
1507
1505
|
}
|
|
1508
1506
|
];
|
|
1509
1507
|
}
|
|
@@ -1550,7 +1548,7 @@ async function config(options, ...userConfigs) {
|
|
|
1550
1548
|
if (enableReact) configs$2.push(jsx(), react(configOptions(options?.react, { reactCompiler: isPackageExists("babel-plugin-react-compiler") || isPackageExists("react-compiler-webpack") })));
|
|
1551
1549
|
if (enabled(options?.react, isPackageExists("next"))) configs$2.push(nextJs());
|
|
1552
1550
|
if (enabled(options?.node, isPackageExists("@types/node"))) configs$2.push(nodeJs(configOptions(options?.node)));
|
|
1553
|
-
if (enabled(
|
|
1551
|
+
if (enabled(options?.tailwindcss, isPackageExists("tailwindcss"))) configs$2.push(tailwindcss(configOptions(options?.tailwindcss)));
|
|
1554
1552
|
configs$2.push(regexp(), unicorn(), disables());
|
|
1555
1553
|
if (enabled(options?.format, isPackageExists("dprint"))) {
|
|
1556
1554
|
const jsonOptions = configOptions(options?.json);
|