@luxass/eslint-config 7.2.1 → 7.4.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/README.md +1 -2
- package/dist/index.d.mts +269 -365
- package/dist/index.mjs +52 -139
- package/dist/{lib-DRpFEws2.mjs → lib-D3Kr7UIJ.mjs} +285 -576
- package/package.json +39 -29
package/dist/index.mjs
CHANGED
|
@@ -7,6 +7,7 @@ import path from "node:path";
|
|
|
7
7
|
import { isPackageExists } from "local-pkg";
|
|
8
8
|
import createCommand from "eslint-plugin-command/config";
|
|
9
9
|
import eslintCommentsPlugin from "@eslint-community/eslint-plugin-eslint-comments";
|
|
10
|
+
import pluginE18e from "@e18e/eslint-plugin";
|
|
10
11
|
import pluginAntfu from "eslint-plugin-antfu";
|
|
11
12
|
import pluginImportLite from "eslint-plugin-import-lite";
|
|
12
13
|
import pluginUnusedImports from "eslint-plugin-unused-imports";
|
|
@@ -16,7 +17,6 @@ import pluginNode from "eslint-plugin-n";
|
|
|
16
17
|
import pluginPerfectionist from "eslint-plugin-perfectionist";
|
|
17
18
|
import { configs } from "eslint-plugin-regexp";
|
|
18
19
|
import pluginUnicorn from "eslint-plugin-unicorn";
|
|
19
|
-
|
|
20
20
|
//#region node_modules/.pnpm/find-up-simple@1.0.1/node_modules/find-up-simple/index.js
|
|
21
21
|
const toPath = (urlOrPath) => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;
|
|
22
22
|
async function findUp(name, { cwd = process.cwd(), type = "file", stopAt } = {}) {
|
|
@@ -49,7 +49,6 @@ function findUpSync(name, { cwd = process.cwd(), type = "file", stopAt } = {}) {
|
|
|
49
49
|
directory = path.dirname(directory);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
|
|
53
52
|
//#endregion
|
|
54
53
|
//#region src/globs.ts
|
|
55
54
|
const GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
|
|
@@ -138,7 +137,6 @@ const GLOB_EXCLUDE = [
|
|
|
138
137
|
"**/auto-import?(s).d.ts",
|
|
139
138
|
"**/components.d.ts"
|
|
140
139
|
];
|
|
141
|
-
|
|
142
140
|
//#endregion
|
|
143
141
|
//#region src/utils.ts
|
|
144
142
|
const scopeUrl = fileURLToPath(new URL(".", import.meta.url));
|
|
@@ -331,12 +329,11 @@ function isPackageInScope(name) {
|
|
|
331
329
|
function isInEditorEnv() {
|
|
332
330
|
if (process.env.CI) return false;
|
|
333
331
|
if (isInGitHooksOrLintStaged()) return false;
|
|
334
|
-
return !!(process.env.VSCODE_PID || process.env.VSCODE_CWD || process.env.JETBRAINS_IDE || process.env.VIM || process.env.NVIM);
|
|
332
|
+
return !!(process.env.VSCODE_PID || process.env.VSCODE_CWD || process.env.JETBRAINS_IDE || process.env.VIM || process.env.NVIM || process.env.ZED_ENVIRONMENT && !process.env.ZED_TERM);
|
|
335
333
|
}
|
|
336
334
|
function isInGitHooksOrLintStaged() {
|
|
337
335
|
return !!(process.env.GIT_PARAMS || process.env.VSCODE_GIT_COMMAND || process.env.npm_lifecycle_script?.startsWith("lint-staged"));
|
|
338
336
|
}
|
|
339
|
-
|
|
340
337
|
//#endregion
|
|
341
338
|
//#region src/configs/astro.ts
|
|
342
339
|
async function astro(options = {}) {
|
|
@@ -385,7 +382,6 @@ async function astro(options = {}) {
|
|
|
385
382
|
}
|
|
386
383
|
}];
|
|
387
384
|
}
|
|
388
|
-
|
|
389
385
|
//#endregion
|
|
390
386
|
//#region src/configs/command.ts
|
|
391
387
|
async function command() {
|
|
@@ -394,7 +390,6 @@ async function command() {
|
|
|
394
390
|
...createCommand()
|
|
395
391
|
}];
|
|
396
392
|
}
|
|
397
|
-
|
|
398
393
|
//#endregion
|
|
399
394
|
//#region src/configs/comments.ts
|
|
400
395
|
async function comments() {
|
|
@@ -409,7 +404,6 @@ async function comments() {
|
|
|
409
404
|
}
|
|
410
405
|
}];
|
|
411
406
|
}
|
|
412
|
-
|
|
413
407
|
//#endregion
|
|
414
408
|
//#region src/configs/disables.ts
|
|
415
409
|
async function disables() {
|
|
@@ -469,7 +463,22 @@ async function disables() {
|
|
|
469
463
|
}
|
|
470
464
|
];
|
|
471
465
|
}
|
|
472
|
-
|
|
466
|
+
//#endregion
|
|
467
|
+
//#region src/configs/e18e.ts
|
|
468
|
+
async function e18e(options = {}) {
|
|
469
|
+
const { isInEditor = false, modernization = true, type = "app", moduleReplacements = type === "lib" && isInEditor, overrides = {}, performanceImprovements = true } = options;
|
|
470
|
+
const configs = pluginE18e.configs;
|
|
471
|
+
return [{
|
|
472
|
+
name: "luxass/e18e/rules",
|
|
473
|
+
plugins: { e18e: pluginE18e },
|
|
474
|
+
rules: {
|
|
475
|
+
...modernization ? { ...configs.modernization.rules } : {},
|
|
476
|
+
...moduleReplacements ? { ...configs.moduleReplacements.rules } : {},
|
|
477
|
+
...performanceImprovements ? { ...configs.performanceImprovements.rules } : {},
|
|
478
|
+
...overrides
|
|
479
|
+
}
|
|
480
|
+
}];
|
|
481
|
+
}
|
|
473
482
|
//#endregion
|
|
474
483
|
//#region src/configs/stylistic.ts
|
|
475
484
|
const StylisticConfigDefaults = {
|
|
@@ -529,7 +538,6 @@ async function stylistic(options = {}) {
|
|
|
529
538
|
}
|
|
530
539
|
}];
|
|
531
540
|
}
|
|
532
|
-
|
|
533
541
|
//#endregion
|
|
534
542
|
//#region src/configs/formatters.ts
|
|
535
543
|
function mergePrettierOptions(options, overrides) {
|
|
@@ -576,11 +584,12 @@ async function formatters(options = {}, stylistic = {}) {
|
|
|
576
584
|
xmlSortAttributesByKey: false,
|
|
577
585
|
xmlWhitespaceSensitivity: "ignore"
|
|
578
586
|
};
|
|
579
|
-
const dprintOptions =
|
|
587
|
+
const dprintOptions = {
|
|
580
588
|
indentWidth: typeof indent === "number" ? indent : 2,
|
|
581
589
|
quoteStyle: quotes === "single" ? "preferSingle" : "preferDouble",
|
|
582
|
-
useTabs: indent === "tab"
|
|
583
|
-
|
|
590
|
+
useTabs: indent === "tab",
|
|
591
|
+
...options.dprintOptions || {}
|
|
592
|
+
};
|
|
584
593
|
const configs = [{
|
|
585
594
|
name: "luxass/formatter/setup",
|
|
586
595
|
plugins: { format: await interop(import("eslint-plugin-format")) }
|
|
@@ -663,7 +672,6 @@ async function formatters(options = {}, stylistic = {}) {
|
|
|
663
672
|
});
|
|
664
673
|
return configs;
|
|
665
674
|
}
|
|
666
|
-
|
|
667
675
|
//#endregion
|
|
668
676
|
//#region src/configs/ignores.ts
|
|
669
677
|
async function ignores(userIgnores = [], ignoreTypeScript = false) {
|
|
@@ -676,7 +684,6 @@ async function ignores(userIgnores = [], ignoreTypeScript = false) {
|
|
|
676
684
|
name: "luxass/ignores"
|
|
677
685
|
}];
|
|
678
686
|
}
|
|
679
|
-
|
|
680
687
|
//#endregion
|
|
681
688
|
//#region src/configs/imports.ts
|
|
682
689
|
async function imports(options = {}) {
|
|
@@ -701,7 +708,6 @@ async function imports(options = {}) {
|
|
|
701
708
|
}
|
|
702
709
|
}];
|
|
703
710
|
}
|
|
704
|
-
|
|
705
711
|
//#endregion
|
|
706
712
|
//#region src/configs/javascript.ts
|
|
707
713
|
async function javascript(options = {}) {
|
|
@@ -941,7 +947,6 @@ async function javascript(options = {}) {
|
|
|
941
947
|
}
|
|
942
948
|
];
|
|
943
949
|
}
|
|
944
|
-
|
|
945
950
|
//#endregion
|
|
946
951
|
//#region src/configs/jsdoc.ts
|
|
947
952
|
async function jsdoc(options = {}) {
|
|
@@ -976,7 +981,6 @@ async function jsdoc(options = {}) {
|
|
|
976
981
|
}
|
|
977
982
|
}];
|
|
978
983
|
}
|
|
979
|
-
|
|
980
984
|
//#endregion
|
|
981
985
|
//#region src/configs/json.ts
|
|
982
986
|
async function jsonc(options = {}) {
|
|
@@ -1042,7 +1046,6 @@ async function jsonc(options = {}) {
|
|
|
1042
1046
|
}
|
|
1043
1047
|
}];
|
|
1044
1048
|
}
|
|
1045
|
-
|
|
1046
1049
|
//#endregion
|
|
1047
1050
|
//#region src/configs/jsx.ts
|
|
1048
1051
|
async function jsx() {
|
|
@@ -1052,7 +1055,6 @@ async function jsx() {
|
|
|
1052
1055
|
name: "luxass/jsx/setup"
|
|
1053
1056
|
}];
|
|
1054
1057
|
}
|
|
1055
|
-
|
|
1056
1058
|
//#endregion
|
|
1057
1059
|
//#region src/configs/markdown.ts
|
|
1058
1060
|
async function markdown(options = {}) {
|
|
@@ -1079,6 +1081,7 @@ async function markdown(options = {}) {
|
|
|
1079
1081
|
name: "luxass/markdown/rules",
|
|
1080
1082
|
rules: {
|
|
1081
1083
|
...markdown.configs.recommended.at(0)?.rules,
|
|
1084
|
+
"markdown/fenced-code-language": "off",
|
|
1082
1085
|
"markdown/no-missing-label-refs": "off",
|
|
1083
1086
|
...overridesMarkdown
|
|
1084
1087
|
}
|
|
@@ -1104,6 +1107,7 @@ async function markdown(options = {}) {
|
|
|
1104
1107
|
name: "luxass/markdown/disables/code",
|
|
1105
1108
|
rules: {
|
|
1106
1109
|
"antfu/no-top-level-await": "off",
|
|
1110
|
+
"e18e/prefer-static-regex": "off",
|
|
1107
1111
|
"no-alert": "off",
|
|
1108
1112
|
"no-console": "off",
|
|
1109
1113
|
"no-labels": "off",
|
|
@@ -1133,7 +1137,6 @@ async function markdown(options = {}) {
|
|
|
1133
1137
|
}
|
|
1134
1138
|
];
|
|
1135
1139
|
}
|
|
1136
|
-
|
|
1137
1140
|
//#endregion
|
|
1138
1141
|
//#region src/configs/node.ts
|
|
1139
1142
|
function node() {
|
|
@@ -1155,7 +1158,6 @@ function node() {
|
|
|
1155
1158
|
}
|
|
1156
1159
|
}];
|
|
1157
1160
|
}
|
|
1158
|
-
|
|
1159
1161
|
//#endregion
|
|
1160
1162
|
//#region src/configs/perfectionist.ts
|
|
1161
1163
|
/**
|
|
@@ -1209,7 +1211,6 @@ async function perfectionist() {
|
|
|
1209
1211
|
}
|
|
1210
1212
|
}];
|
|
1211
1213
|
}
|
|
1212
|
-
|
|
1213
1214
|
//#endregion
|
|
1214
1215
|
//#region src/configs/pnpm.ts
|
|
1215
1216
|
async function detectCatalogUsage() {
|
|
@@ -1336,7 +1337,6 @@ async function pnpm(options) {
|
|
|
1336
1337
|
}
|
|
1337
1338
|
return configs;
|
|
1338
1339
|
}
|
|
1339
|
-
|
|
1340
1340
|
//#endregion
|
|
1341
1341
|
//#region src/configs/react.ts
|
|
1342
1342
|
const ReactRefreshAllowConstantExportPackages = ["vite"];
|
|
@@ -1354,26 +1354,17 @@ const ReactRouterPackages = [
|
|
|
1354
1354
|
];
|
|
1355
1355
|
const TanstackRouterPackages = ["@tanstack/react-router"];
|
|
1356
1356
|
const NextJsPackages = ["next"];
|
|
1357
|
-
const ReactCompilerPackages = ["babel-plugin-react-compiler"];
|
|
1358
1357
|
async function react(options = {}) {
|
|
1359
1358
|
const { files = [
|
|
1360
1359
|
GLOB_JS,
|
|
1361
1360
|
GLOB_JSX,
|
|
1362
1361
|
GLOB_TS,
|
|
1363
1362
|
GLOB_TSX
|
|
1364
|
-
], filesTypeAware = [GLOB_TS, GLOB_TSX], ignoresTypeAware = [`${GLOB_MARKDOWN}/**`, GLOB_ASTRO_TS], overrides = {},
|
|
1365
|
-
await ensure([
|
|
1366
|
-
"@eslint-react/eslint-plugin",
|
|
1367
|
-
"eslint-plugin-react-hooks",
|
|
1368
|
-
"eslint-plugin-react-refresh"
|
|
1369
|
-
]);
|
|
1363
|
+
], filesTypeAware = [GLOB_TS, GLOB_TSX], ignoresTypeAware = [`${GLOB_MARKDOWN}/**`, GLOB_ASTRO_TS], overrides = {}, tsconfigPath } = options;
|
|
1364
|
+
await ensure(["@eslint-react/eslint-plugin", "eslint-plugin-react-refresh"]);
|
|
1370
1365
|
const isTypeAware = !!tsconfigPath;
|
|
1371
|
-
const typeAwareRules = { "react/no-leaked-conditional-rendering": "
|
|
1372
|
-
const [pluginReact,
|
|
1373
|
-
interop(import("@eslint-react/eslint-plugin")),
|
|
1374
|
-
interop(import("eslint-plugin-react-hooks")),
|
|
1375
|
-
interop(import("eslint-plugin-react-refresh"))
|
|
1376
|
-
]);
|
|
1366
|
+
const typeAwareRules = { "react/no-leaked-conditional-rendering": "error" };
|
|
1367
|
+
const [pluginReact, pluginReactRefresh] = await Promise.all([interop(import("@eslint-react/eslint-plugin")), interop(import("eslint-plugin-react-refresh"))]);
|
|
1377
1368
|
const isAllowConstantExport = ReactRefreshAllowConstantExportPackages.some((i) => isPackageExists(i));
|
|
1378
1369
|
const isUsingRemix = RemixPackages.some((i) => isPackageExists(i));
|
|
1379
1370
|
const isUsingReactRouter = ReactRouterPackages.some((i) => isPackageExists(i));
|
|
@@ -1386,8 +1377,6 @@ async function react(options = {}) {
|
|
|
1386
1377
|
plugins: {
|
|
1387
1378
|
"react": plugins["@eslint-react"],
|
|
1388
1379
|
"react-dom": plugins["@eslint-react/dom"],
|
|
1389
|
-
"react-hooks": pluginReactHooks,
|
|
1390
|
-
"react-hooks-extra": plugins["@eslint-react/hooks-extra"],
|
|
1391
1380
|
"react-naming-convention": plugins["@eslint-react/naming-convention"],
|
|
1392
1381
|
"react-refresh": pluginReactRefresh,
|
|
1393
1382
|
"react-rsc": plugins["@eslint-react/rsc"],
|
|
@@ -1402,85 +1391,7 @@ async function react(options = {}) {
|
|
|
1402
1391
|
},
|
|
1403
1392
|
name: "luxass/react/rules",
|
|
1404
1393
|
rules: {
|
|
1405
|
-
|
|
1406
|
-
"react-dom/no-dangerously-set-innerhtml-with-children": "error",
|
|
1407
|
-
"react-dom/no-find-dom-node": "error",
|
|
1408
|
-
"react-dom/no-flush-sync": "error",
|
|
1409
|
-
"react-dom/no-hydrate": "error",
|
|
1410
|
-
"react-dom/no-namespace": "error",
|
|
1411
|
-
"react-dom/no-render": "error",
|
|
1412
|
-
"react-dom/no-render-return-value": "error",
|
|
1413
|
-
"react-dom/no-script-url": "warn",
|
|
1414
|
-
"react-dom/no-unsafe-iframe-sandbox": "warn",
|
|
1415
|
-
"react-dom/no-use-form-state": "error",
|
|
1416
|
-
"react-dom/no-void-elements-with-children": "error",
|
|
1417
|
-
"react-hooks-extra/no-direct-set-state-in-use-effect": "warn",
|
|
1418
|
-
"react-hooks/exhaustive-deps": "warn",
|
|
1419
|
-
"react-hooks/rules-of-hooks": "error",
|
|
1420
|
-
"react-naming-convention/context-name": "warn",
|
|
1421
|
-
"react-naming-convention/ref-name": "warn",
|
|
1422
|
-
"react-naming-convention/use-state": "warn",
|
|
1423
|
-
"react-rsc/function-definition": "error",
|
|
1424
|
-
"react-web-api/no-leaked-event-listener": "warn",
|
|
1425
|
-
"react-web-api/no-leaked-interval": "warn",
|
|
1426
|
-
"react-web-api/no-leaked-resize-observer": "warn",
|
|
1427
|
-
"react-web-api/no-leaked-timeout": "warn",
|
|
1428
|
-
"react/jsx-key-before-spread": "warn",
|
|
1429
|
-
"react/jsx-no-comment-textnodes": "warn",
|
|
1430
|
-
"react/jsx-no-duplicate-props": "warn",
|
|
1431
|
-
"react/jsx-uses-react": "warn",
|
|
1432
|
-
"react/jsx-uses-vars": "warn",
|
|
1433
|
-
"react/no-access-state-in-setstate": "error",
|
|
1434
|
-
"react/no-array-index-key": "warn",
|
|
1435
|
-
"react/no-children-count": "warn",
|
|
1436
|
-
"react/no-children-for-each": "warn",
|
|
1437
|
-
"react/no-children-map": "warn",
|
|
1438
|
-
"react/no-children-only": "warn",
|
|
1439
|
-
"react/no-children-to-array": "warn",
|
|
1440
|
-
"react/no-clone-element": "warn",
|
|
1441
|
-
"react/no-component-will-mount": "error",
|
|
1442
|
-
"react/no-component-will-receive-props": "error",
|
|
1443
|
-
"react/no-component-will-update": "error",
|
|
1444
|
-
"react/no-context-provider": "warn",
|
|
1445
|
-
"react/no-create-ref": "error",
|
|
1446
|
-
"react/no-default-props": "error",
|
|
1447
|
-
"react/no-direct-mutation-state": "error",
|
|
1448
|
-
"react/no-forward-ref": "warn",
|
|
1449
|
-
"react/no-missing-key": "error",
|
|
1450
|
-
"react/no-nested-component-definitions": "error",
|
|
1451
|
-
"react/no-nested-lazy-component-declarations": "error",
|
|
1452
|
-
"react/no-prop-types": "error",
|
|
1453
|
-
"react/no-redundant-should-component-update": "error",
|
|
1454
|
-
"react/no-set-state-in-component-did-mount": "warn",
|
|
1455
|
-
"react/no-set-state-in-component-did-update": "warn",
|
|
1456
|
-
"react/no-set-state-in-component-will-update": "warn",
|
|
1457
|
-
"react/no-string-refs": "error",
|
|
1458
|
-
"react/no-unnecessary-use-prefix": "warn",
|
|
1459
|
-
"react/no-unsafe-component-will-mount": "warn",
|
|
1460
|
-
"react/no-unsafe-component-will-receive-props": "warn",
|
|
1461
|
-
"react/no-unsafe-component-will-update": "warn",
|
|
1462
|
-
"react/no-unused-class-component-members": "warn",
|
|
1463
|
-
"react/no-use-context": "warn",
|
|
1464
|
-
"react/no-useless-forward-ref": "warn",
|
|
1465
|
-
"react/prefer-namespace-import": "error",
|
|
1466
|
-
"react/prefer-use-state-lazy-initialization": "warn",
|
|
1467
|
-
...reactCompiler ? {
|
|
1468
|
-
"react-hooks/component-hook-factories": "error",
|
|
1469
|
-
"react-hooks/config": "error",
|
|
1470
|
-
"react-hooks/error-boundaries": "error",
|
|
1471
|
-
"react-hooks/gating": "error",
|
|
1472
|
-
"react-hooks/globals": "error",
|
|
1473
|
-
"react-hooks/immutability": "error",
|
|
1474
|
-
"react-hooks/incompatible-library": "warn",
|
|
1475
|
-
"react-hooks/preserve-manual-memoization": "error",
|
|
1476
|
-
"react-hooks/purity": "error",
|
|
1477
|
-
"react-hooks/refs": "error",
|
|
1478
|
-
"react-hooks/set-state-in-effect": "error",
|
|
1479
|
-
"react-hooks/set-state-in-render": "error",
|
|
1480
|
-
"react-hooks/static-components": "error",
|
|
1481
|
-
"react-hooks/unsupported-syntax": "warn",
|
|
1482
|
-
"react-hooks/use-memo": "error"
|
|
1483
|
-
} : {},
|
|
1394
|
+
...pluginReact.configs.recommended.rules,
|
|
1484
1395
|
"react-refresh/only-export-components": ["error", {
|
|
1485
1396
|
allowConstantExport: isAllowConstantExport,
|
|
1486
1397
|
allowExportNames: [...isUsingNext ? [
|
|
@@ -1519,9 +1430,18 @@ async function react(options = {}) {
|
|
|
1519
1430
|
"createLazyRoute"
|
|
1520
1431
|
] : []]
|
|
1521
1432
|
}],
|
|
1433
|
+
"react/prefer-namespace-import": "error",
|
|
1522
1434
|
...overrides
|
|
1523
1435
|
}
|
|
1524
1436
|
},
|
|
1437
|
+
{
|
|
1438
|
+
files: filesTypeAware,
|
|
1439
|
+
name: "luxass/react/typescript",
|
|
1440
|
+
rules: {
|
|
1441
|
+
"react-dom/no-string-style-prop": "off",
|
|
1442
|
+
"react-dom/no-unknown-property": "off"
|
|
1443
|
+
}
|
|
1444
|
+
},
|
|
1525
1445
|
...isTypeAware ? [{
|
|
1526
1446
|
files: filesTypeAware,
|
|
1527
1447
|
ignores: ignoresTypeAware,
|
|
@@ -1530,7 +1450,6 @@ async function react(options = {}) {
|
|
|
1530
1450
|
}] : []
|
|
1531
1451
|
];
|
|
1532
1452
|
}
|
|
1533
|
-
|
|
1534
1453
|
//#endregion
|
|
1535
1454
|
//#region src/configs/regexp.ts
|
|
1536
1455
|
async function regexp(options = {}) {
|
|
@@ -1548,7 +1467,6 @@ async function regexp(options = {}) {
|
|
|
1548
1467
|
}
|
|
1549
1468
|
}];
|
|
1550
1469
|
}
|
|
1551
|
-
|
|
1552
1470
|
//#endregion
|
|
1553
1471
|
//#region src/configs/sort.ts
|
|
1554
1472
|
/**
|
|
@@ -1786,7 +1704,6 @@ function sortTsconfig() {
|
|
|
1786
1704
|
] }
|
|
1787
1705
|
}];
|
|
1788
1706
|
}
|
|
1789
|
-
|
|
1790
1707
|
//#endregion
|
|
1791
1708
|
//#region src/configs/tailwindcss.ts
|
|
1792
1709
|
async function tailwindcss(options = {}) {
|
|
@@ -1810,7 +1727,6 @@ async function tailwindcss(options = {}) {
|
|
|
1810
1727
|
settings: { ...configPath != null ? { tailwindcss: { config: configPath } } : {} }
|
|
1811
1728
|
}];
|
|
1812
1729
|
}
|
|
1813
|
-
|
|
1814
1730
|
//#endregion
|
|
1815
1731
|
//#region src/configs/test.ts
|
|
1816
1732
|
let _pluginTest;
|
|
@@ -1835,6 +1751,7 @@ async function test(options = {}) {
|
|
|
1835
1751
|
"test/prefer-hooks-in-order": "error",
|
|
1836
1752
|
"test/prefer-lowercase-title": "error",
|
|
1837
1753
|
"antfu/no-top-level-await": "off",
|
|
1754
|
+
"e18e/prefer-static-regex": "off",
|
|
1838
1755
|
"no-unused-expressions": "off",
|
|
1839
1756
|
"node/prefer-global/process": "off",
|
|
1840
1757
|
"ts/explicit-function-return-type": "off",
|
|
@@ -1842,7 +1759,6 @@ async function test(options = {}) {
|
|
|
1842
1759
|
}
|
|
1843
1760
|
}];
|
|
1844
1761
|
}
|
|
1845
|
-
|
|
1846
1762
|
//#endregion
|
|
1847
1763
|
//#region src/configs/toml.ts
|
|
1848
1764
|
async function toml(options = {}) {
|
|
@@ -1883,18 +1799,17 @@ async function toml(options = {}) {
|
|
|
1883
1799
|
}
|
|
1884
1800
|
}];
|
|
1885
1801
|
}
|
|
1886
|
-
|
|
1887
1802
|
//#endregion
|
|
1888
1803
|
//#region src/configs/typescript.ts
|
|
1889
1804
|
async function typescript(options = {}) {
|
|
1890
1805
|
const { erasableOnly = false, exts = [], overrides = {}, overridesTypeAware = {}, parserOptions = {}, type = "app" } = options ?? {};
|
|
1891
1806
|
const files = options.files ?? [
|
|
1892
|
-
|
|
1893
|
-
|
|
1807
|
+
"**/*.?([cm])ts",
|
|
1808
|
+
"**/*.?([cm])tsx",
|
|
1894
1809
|
...exts.map((ext) => `**/*.${ext}`)
|
|
1895
1810
|
];
|
|
1896
|
-
const filesTypeAware = options.filesTypeAware ?? [
|
|
1897
|
-
const ignoresTypeAware = options.ignoresTypeAware ?? [
|
|
1811
|
+
const filesTypeAware = options.filesTypeAware ?? ["**/*.?([cm])ts", "**/*.?([cm])tsx"];
|
|
1812
|
+
const ignoresTypeAware = options.ignoresTypeAware ?? [`**/*.md/**`, "**/*.astro/*.ts"];
|
|
1898
1813
|
const tsconfigPath = options?.tsconfigPath ? options.tsconfigPath : void 0;
|
|
1899
1814
|
const isTypeAware = !!tsconfigPath;
|
|
1900
1815
|
const typeAwareRules = {
|
|
@@ -2023,7 +1938,7 @@ async function typescript(options = {}) {
|
|
|
2023
1938
|
}] : [],
|
|
2024
1939
|
...erasableOnly ? [{
|
|
2025
1940
|
name: "luxas/typescript/erasable-syntax-only",
|
|
2026
|
-
plugins: { "erasable-syntax-only": await interop(import("./lib-
|
|
1941
|
+
plugins: { "erasable-syntax-only": await interop(import("./lib-D3Kr7UIJ.mjs")) },
|
|
2027
1942
|
rules: {
|
|
2028
1943
|
"erasable-syntax-only/enums": "error",
|
|
2029
1944
|
"erasable-syntax-only/import-aliases": "error",
|
|
@@ -2033,7 +1948,6 @@ async function typescript(options = {}) {
|
|
|
2033
1948
|
}] : []
|
|
2034
1949
|
];
|
|
2035
1950
|
}
|
|
2036
|
-
|
|
2037
1951
|
//#endregion
|
|
2038
1952
|
//#region src/configs/unicorn.ts
|
|
2039
1953
|
async function unicorn(options = {}) {
|
|
@@ -2057,7 +1971,6 @@ async function unicorn(options = {}) {
|
|
|
2057
1971
|
} }
|
|
2058
1972
|
}];
|
|
2059
1973
|
}
|
|
2060
|
-
|
|
2061
1974
|
//#endregion
|
|
2062
1975
|
//#region src/configs/unocss.ts
|
|
2063
1976
|
async function unocss(options = {}) {
|
|
@@ -2076,7 +1989,6 @@ async function unocss(options = {}) {
|
|
|
2076
1989
|
settings: { ...configPath != null ? { unocss: { configPath } } : {} }
|
|
2077
1990
|
}];
|
|
2078
1991
|
}
|
|
2079
|
-
|
|
2080
1992
|
//#endregion
|
|
2081
1993
|
//#region src/configs/vue.ts
|
|
2082
1994
|
async function vue(options = {}) {
|
|
@@ -2247,7 +2159,6 @@ async function vue(options = {}) {
|
|
|
2247
2159
|
}
|
|
2248
2160
|
}];
|
|
2249
2161
|
}
|
|
2250
|
-
|
|
2251
2162
|
//#endregion
|
|
2252
2163
|
//#region src/configs/yaml.ts
|
|
2253
2164
|
async function yaml(options = {}) {
|
|
@@ -2327,7 +2238,6 @@ async function yaml(options = {}) {
|
|
|
2327
2238
|
}
|
|
2328
2239
|
];
|
|
2329
2240
|
}
|
|
2330
|
-
|
|
2331
2241
|
//#endregion
|
|
2332
2242
|
//#region src/factory.ts
|
|
2333
2243
|
const FLAT_CONFIG_PROPS = [
|
|
@@ -2348,8 +2258,9 @@ const VuePackages = [
|
|
|
2348
2258
|
const defaultPluginRenaming = {
|
|
2349
2259
|
"@eslint-react": "react",
|
|
2350
2260
|
"@eslint-react/dom": "react-dom",
|
|
2351
|
-
"@eslint-react/hooks-extra": "react-hooks-extra",
|
|
2352
2261
|
"@eslint-react/naming-convention": "react-naming-convention",
|
|
2262
|
+
"@eslint-react/rsc": "react-rsc",
|
|
2263
|
+
"@eslint-react/web-api": "react-web-api",
|
|
2353
2264
|
"@stylistic": "style",
|
|
2354
2265
|
"@typescript-eslint": "ts",
|
|
2355
2266
|
"import-lite": "import",
|
|
@@ -2368,7 +2279,7 @@ const defaultPluginRenaming = {
|
|
|
2368
2279
|
* The merged ESLint configurations.
|
|
2369
2280
|
*/
|
|
2370
2281
|
function luxass(options = {}, ...userConfigs) {
|
|
2371
|
-
const { astro: enableAstro = false, autoRenamePlugins = true, exts = [], gitignore: enableGitignore = true, ignores: userIgnores = [], imports: enableImports = true, jsdoc: enableJsdoc = true, jsx: enableJsx = true, node: enableNode = true, pnpm: enableCatalogs = !!findUpSync("pnpm-workspace.yaml"), react: enableReact = false, regexp: enableRegexp = true, tailwindcss: enableTailwindCSS = false, type: projectType = "app", typescript: enableTypeScript = isPackageExists("typescript"), unicorn: enableUnicorn = true, unocss: enableUnoCSS = false, vue: enableVue = VuePackages.some((i) => isPackageExists(i)) } = options;
|
|
2282
|
+
const { astro: enableAstro = false, autoRenamePlugins = true, e18e: enableE18e = true, exts = [], gitignore: enableGitignore = true, ignores: userIgnores = [], imports: enableImports = true, jsdoc: enableJsdoc = true, jsx: enableJsx = true, node: enableNode = true, pnpm: enableCatalogs = !!findUpSync("pnpm-workspace.yaml"), react: enableReact = false, regexp: enableRegexp = true, tailwindcss: enableTailwindCSS = false, type: projectType = "app", typescript: enableTypeScript = isPackageExists("typescript") || isPackageExists("@typescript/native-preview"), unicorn: enableUnicorn = true, unocss: enableUnoCSS = false, vue: enableVue = VuePackages.some((i) => isPackageExists(i)) } = options;
|
|
2372
2283
|
let isInEditor = options.isInEditor;
|
|
2373
2284
|
if (isInEditor == null) {
|
|
2374
2285
|
isInEditor = isInEditorEnv();
|
|
@@ -2397,6 +2308,10 @@ function luxass(options = {}, ...userConfigs) {
|
|
|
2397
2308
|
stylistic: stylisticOptions,
|
|
2398
2309
|
...resolveSubOptions(options, "imports")
|
|
2399
2310
|
}));
|
|
2311
|
+
if (enableE18e) configs.push(e18e({
|
|
2312
|
+
isInEditor,
|
|
2313
|
+
...enableE18e === true ? {} : enableE18e
|
|
2314
|
+
}));
|
|
2400
2315
|
if (enableUnicorn) configs.push(unicorn(enableUnicorn === true ? {} : enableUnicorn));
|
|
2401
2316
|
if (enableVue) exts.push("vue");
|
|
2402
2317
|
if (enableJsx) configs.push(jsx());
|
|
@@ -2477,10 +2392,8 @@ function luxass(options = {}, ...userConfigs) {
|
|
|
2477
2392
|
if (autoRenamePlugins) composer = composer.renamePlugins(defaultPluginRenaming);
|
|
2478
2393
|
return composer;
|
|
2479
2394
|
}
|
|
2480
|
-
|
|
2481
2395
|
//#endregion
|
|
2482
2396
|
//#region src/index.ts
|
|
2483
2397
|
var src_default = luxass;
|
|
2484
|
-
|
|
2485
2398
|
//#endregion
|
|
2486
|
-
export { GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_NEXTJS_OG, GLOB_NEXTJS_ROUTES, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, astro, combine, command, comments, src_default as default, disables, ensure, formatters, getOverrides, ignores, imports, interop, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, luxass, markdown, node, parserPlain, perfectionist, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, sortPackageJson, sortTsconfig, stylistic, tailwindcss, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };
|
|
2399
|
+
export { GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_NEXTJS_OG, GLOB_NEXTJS_ROUTES, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, astro, combine, command, comments, src_default as default, disables, e18e, ensure, formatters, getOverrides, ignores, imports, interop, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, luxass, markdown, node, parserPlain, perfectionist, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, sortPackageJson, sortTsconfig, stylistic, tailwindcss, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };
|