admin-vben5/internal/lint-configs/eslint-config/src/index.ts

61 lines
968 B
TypeScript
Raw Normal View History

2024-05-19 21:20:42 +08:00
import type { Linter } from 'eslint';
import {
command,
comments,
2024-06-01 22:17:52 +08:00
disableds,
2024-05-19 21:20:42 +08:00
ignores,
importPluginConfig,
javascript,
jsdoc,
jsonc,
node,
perfectionist,
prettier,
regexp,
test,
2024-07-10 22:30:39 +08:00
turbo,
2024-05-19 21:20:42 +08:00
typescript,
unicorn,
vue,
} from './configs';
import { customConfig } from './custom-config';
type FlatConfig = Linter.FlatConfig;
type FlatConfigPromise =
| FlatConfig
| FlatConfig[]
| Promise<FlatConfig>
| Promise<FlatConfig[]>;
async function defineConfig(config: FlatConfig[] = []) {
const configs: FlatConfigPromise[] = [
vue(),
javascript(),
ignores(),
prettier(),
typescript(),
jsonc(),
2024-06-01 22:17:52 +08:00
disableds(),
2024-05-19 21:20:42 +08:00
importPluginConfig(),
node(),
perfectionist(),
comments(),
jsdoc(),
unicorn(),
test(),
regexp(),
command(),
2024-07-10 22:30:39 +08:00
turbo(),
2024-05-19 21:20:42 +08:00
...customConfig,
...config,
];
const resolved = await Promise.all(configs);
return resolved.flat();
}
export { defineConfig };