Skip to content

Commit a8cac9b

Browse files
committed
feat: enhance ESLint configuration with new plugins and updates
- Added "eslint-plugin-erasable-syntax-only" to improve linting capabilities. - Updated "@visulima/packem" to version 2.0.0-alpha.19. - Modified TypeScript parser options to include "erasableSyntaxOnly". - Refined React plugin configuration for better dependency handling.
1 parent 37c51b6 commit a8cac9b

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

packages/eslint-config/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@
141141
"eslint-merge-processors": "^2.0.0",
142142
"eslint-plugin-antfu": "^3.1.1",
143143
"eslint-plugin-compat": "^6.0.2",
144+
"eslint-plugin-erasable-syntax-only": "^0.3.1",
144145
"eslint-plugin-es-x": "^9.1.0",
145146
"eslint-plugin-html": "^8.1.3",
146147
"eslint-plugin-import-x": "^4.16.1",
@@ -186,13 +187,14 @@
186187
"@types/eslint-plugin-tailwindcss": "^3.17.0",
187188
"@types/semver": "^7.7.1",
188189
"@unocss/eslint-plugin": "^66.5.1",
189-
"@visulima/packem": "2.0.0-alpha.18",
190+
"@visulima/packem": "2.0.0-alpha.19",
190191
"astro-eslint-parser": "^1.2.2",
191192
"esbuild": "^0.25.9",
192193
"eslint": "^9.35.0",
193194
"eslint-plugin-astro": "^1.3.1",
194195
"eslint-plugin-format": "^1.0.1",
195196
"eslint-plugin-jsx-a11y": "^6.10.2",
197+
"eslint-plugin-playwright": "2.2.2",
196198
"eslint-plugin-react": "^7.37.5",
197199
"eslint-plugin-react-compiler": "^19.1.0-rc.2",
198200
"eslint-plugin-react-hooks": "^5.2.0",
@@ -212,7 +214,6 @@
212214
"react": "^19.1.1",
213215
"rimraf": "^6.0.1",
214216
"semantic-release": "^24.2.8",
215-
"eslint-plugin-playwright": "2.2.2",
216217
"tailwind-csstree": "0.1.4",
217218
"tinyglobby": "^0.2.15",
218219
"tsx": "^4.20.5",

packages/eslint-config/src/config/plugins/react.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export default createConfig<
9494

9595
const { plugins } = pluginReactX.configs.all;
9696

97-
let reactVersion = packageJson?.["dependencies"]?.["react"] ?? packageJson?.["devDependencies"]?.["react"];
97+
let reactVersion = packageJson.dependencies?.["react"] ?? packageJson.devDependencies?.["react"];
9898
let hasReactCompiler = false;
9999

100100
if (reactVersion !== undefined) {

packages/eslint-config/src/config/plugins/typescript.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ export default createConfig<
4747
interopDefault(import("eslint-plugin-no-for-of-array")),
4848
] as const);
4949

50+
let erasableSyntaxOnlyPlugin;
51+
52+
if (parserOptions?.erasableSyntaxOnly) {
53+
erasableSyntaxOnlyPlugin = await interopDefault(import("eslint-plugin-erasable-syntax-only"));
54+
}
55+
5056
const filesTypeAware = config.filesTypeAware ?? getFilesGlobs("ts");
5157
const ignoresTypeAware = [...getFilesGlobs("astro"), ...getFilesGlobs("markdown"), ...getFilesGlobs("markdown_inline_js_jsx"), ...getFilesGlobs("js"), ...getFilesGlobs("jsx"), "**/*.json", "**/*.jsonc", ...config.ignoresTypeAware ?? []];
5258
const { tsconfigPath } = config;
@@ -88,6 +94,7 @@ export default createConfig<
8894
plugins: {
8995
"@typescript-eslint": tseslint.plugin,
9096
"no-for-of-array": noForOfArrayPlugin,
97+
...erasableSyntaxOnlyPlugin ? erasableSyntaxOnlyPlugin?.configs.recommended.plugins : {},
9198
},
9299
},
93100
// assign type-aware parser for type-aware files and type-unaware parser for the rest
@@ -410,6 +417,8 @@ export default createConfig<
410417
// https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/space-infix-ops.mdx
411418
"@typescript-eslint/space-infix-ops": styleRules["space-infix-ops"] as Linter.RuleEntry<[]>,
412419

420+
...erasableSyntaxOnlyPlugin?.configs.recommended.rules,
421+
413422
...overrides,
414423

415424
// Disable rules that are handled by prettier

packages/eslint-config/src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,7 @@ export interface OptionsTypeScriptParserOptions {
536536
/**
537537
* Additional parser options for TypeScript.
538538
*/
539-
parserOptions?: Partial<ParserOptions>;
539+
parserOptions?: Partial<ParserOptions & { erasableSyntaxOnly?: boolean }>;
540540
}
541541

542542
export interface OptionsTypeScriptWithTypes {

0 commit comments

Comments
 (0)