index.ts 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import type { Linter } from 'eslint';
  2. import {
  3. command,
  4. comments,
  5. disableds,
  6. ignores,
  7. importPluginConfig,
  8. javascript,
  9. jsdoc,
  10. jsonc,
  11. node,
  12. perfectionist,
  13. pnpm,
  14. prettier,
  15. regexp,
  16. tailwindcss,
  17. test,
  18. turbo,
  19. typescript,
  20. unicorn,
  21. vue,
  22. yaml,
  23. } from './configs';
  24. import { customConfig } from './custom-config';
  25. type FlatConfig = Linter.Config;
  26. type FlatConfigPromise =
  27. | FlatConfig
  28. | FlatConfig[]
  29. | Promise<FlatConfig>
  30. | Promise<FlatConfig[]>;
  31. async function defineConfig(config: FlatConfig[] = []) {
  32. const configs: FlatConfigPromise[] = [
  33. vue(),
  34. javascript(),
  35. ignores(),
  36. prettier(),
  37. typescript(),
  38. jsonc(),
  39. disableds(),
  40. importPluginConfig(),
  41. node(),
  42. perfectionist(),
  43. comments(),
  44. jsdoc(),
  45. tailwindcss(),
  46. unicorn(),
  47. test(),
  48. regexp(),
  49. command(),
  50. turbo(),
  51. yaml(),
  52. pnpm(),
  53. ...customConfig,
  54. ...config,
  55. ];
  56. const resolved = await Promise.all(configs);
  57. return resolved.flat();
  58. }
  59. export { defineConfig };