index.ts 756 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import type { Linter } from 'eslint';
  2. import {
  3. ignores,
  4. javascript,
  5. jsonc,
  6. node,
  7. perfectionist,
  8. pnpm,
  9. typescript,
  10. unicorn,
  11. vue,
  12. yaml,
  13. } from './configs';
  14. import { customConfig } from './custom-config';
  15. type FlatConfig = Linter.Config;
  16. type FlatConfigPromise =
  17. | FlatConfig
  18. | FlatConfig[]
  19. | Promise<FlatConfig>
  20. | Promise<FlatConfig[]>;
  21. async function defineConfig(config: FlatConfig[] = []) {
  22. const configs: FlatConfigPromise[] = [
  23. vue(),
  24. javascript(),
  25. ignores(),
  26. typescript(),
  27. jsonc(),
  28. node(),
  29. perfectionist(),
  30. unicorn(),
  31. yaml(),
  32. pnpm(),
  33. ...customConfig,
  34. ...config,
  35. ];
  36. const resolved = await Promise.all(configs);
  37. return resolved.flat();
  38. }
  39. export { defineConfig };