refactor: shrink eslint fallback layer

This commit is contained in:
xingyu4j
2026-03-14 19:10:22 +08:00
parent 7a723d03d0
commit 46b4ce81e4
13 changed files with 274 additions and 50 deletions

View File

@@ -32,14 +32,12 @@
"eslint-plugin-command": "catalog:"
},
"devDependencies": {
"@eslint-community/eslint-plugin-eslint-comments": "catalog:",
"@eslint/js": "catalog:",
"@typescript-eslint/eslint-plugin": "catalog:",
"@typescript-eslint/parser": "catalog:",
"eslint": "catalog:",
"eslint-plugin-jsonc": "catalog:",
"eslint-plugin-n": "catalog:",
"eslint-plugin-oxlint": "catalog:",
"eslint-plugin-perfectionist": "catalog:",
"eslint-plugin-pnpm": "catalog:",
"eslint-plugin-unicorn": "catalog:",

View File

@@ -1,23 +0,0 @@
import type { Linter } from 'eslint';
import { interopDefault } from '../util';
export async function comments(): Promise<Linter.Config[]> {
const pluginComments = await interopDefault(
import('@eslint-community/eslint-plugin-eslint-comments'),
);
return [
{
plugins: {
'eslint-comments': pluginComments,
},
rules: {
'eslint-comments/no-aggregating-enable': 'error',
'eslint-comments/no-duplicate-disable': 'error',
'eslint-comments/no-unlimited-disable': 'error',
'eslint-comments/no-unused-enable': 'error',
},
},
];
}

View File

@@ -1,10 +1,8 @@
export * from './command';
export * from './comments';
export * from './ignores';
export * from './javascript';
export * from './jsonc';
export * from './node';
export * from './oxlint';
export * from './perfectionist';
export * from './pnpm';
export * from './turbo';

View File

@@ -1,13 +0,0 @@
import type { Linter } from 'eslint';
import { mergeOxlintConfigs, oxlintConfig } from '@vben/oxlint-config';
import oxlint from 'eslint-plugin-oxlint';
export async function oxcCompat(): Promise<Linter.Config[]> {
const { extends: _extends, ...config } = mergeOxlintConfigs(oxlintConfig);
return oxlint.buildFromOxlintConfig(
config as Parameters<typeof oxlint.buildFromOxlintConfig>[0],
);
}

View File

@@ -143,6 +143,12 @@ const customConfig: Linter.Config[] = [
'no-console': 'off',
},
},
{
files: ['packages/@core/base/shared/src/utils/inference.ts'],
rules: {
'vue/prefer-import-from-vue': 'off',
},
},
];
export { customConfig };

View File

@@ -2,12 +2,10 @@ import type { Linter } from 'eslint';
import {
command,
comments,
ignores,
javascript,
jsonc,
node,
oxcCompat,
perfectionist,
pnpm,
turbo,
@@ -35,14 +33,12 @@ async function defineConfig(config: FlatConfig[] = []) {
jsonc(),
node(),
perfectionist(),
comments(),
unicorn(),
command(),
turbo(),
yaml(),
pnpm(),
...customConfig,
oxcCompat(),
...config,
];

View File

@@ -27,6 +27,7 @@
}
},
"dependencies": {
"@eslint-community/eslint-plugin-eslint-comments": "catalog:",
"eslint-plugin-better-tailwindcss": "catalog:",
"oxlint": "catalog:"
}

View File

@@ -0,0 +1,18 @@
import type { OxlintConfig } from 'oxlint';
const comments: OxlintConfig = {
jsPlugins: [
{
name: 'eslint-comments',
specifier: '@eslint-community/eslint-plugin-eslint-comments',
},
],
rules: {
'eslint-comments/no-aggregating-enable': 'error',
'eslint-comments/no-duplicate-disable': 'error',
'eslint-comments/no-unlimited-disable': 'error',
'eslint-comments/no-unused-enable': 'error',
},
};
export { comments };

View File

@@ -2,6 +2,7 @@ import type { OxlintConfig } from 'oxlint';
import { defineConfig as defineOxlintConfig } from 'oxlint';
import { comments } from './comments';
import { ignores } from './ignores';
import { importPluginConfig } from './import';
import { javascript } from './javascript';
@@ -60,6 +61,7 @@ function mergeOxlintConfigs(...configs: OxlintConfig[]): OxlintConfig {
const oxlintConfig = defineOxlintConfig(
mergeOxlintConfigs(
javascript,
comments,
ignores,
plugins,
importPluginConfig,
@@ -74,6 +76,7 @@ const oxlintConfig = defineOxlintConfig(
);
export {
comments,
ignores,
importPluginConfig,
javascript,