59 lines
946 B
TypeScript
59 lines
946 B
TypeScript
import type { Linter } from 'eslint';
|
|
|
|
import {
|
|
command,
|
|
comments,
|
|
disableds,
|
|
ignores,
|
|
importPluginConfig,
|
|
javascript,
|
|
jsdoc,
|
|
jsonc,
|
|
node,
|
|
perfectionist,
|
|
prettier,
|
|
regexp,
|
|
test,
|
|
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(),
|
|
disableds(),
|
|
importPluginConfig(),
|
|
node(),
|
|
perfectionist(),
|
|
comments(),
|
|
jsdoc(),
|
|
unicorn(),
|
|
test(),
|
|
regexp(),
|
|
command(),
|
|
...customConfig,
|
|
...config,
|
|
];
|
|
|
|
const resolved = await Promise.all(configs);
|
|
|
|
return resolved.flat();
|
|
}
|
|
|
|
export { defineConfig };
|