index.ts 964 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. prettier,
  14. regexp,
  15. test,
  16. turbo,
  17. typescript,
  18. unicorn,
  19. vue,
  20. } from './configs';
  21. import { customConfig } from './custom-config';
  22. type FlatConfig = Linter.Config;
  23. type FlatConfigPromise =
  24. | FlatConfig
  25. | FlatConfig[]
  26. | Promise<FlatConfig>
  27. | Promise<FlatConfig[]>;
  28. async function defineConfig(config: FlatConfig[] = []) {
  29. const configs: FlatConfigPromise[] = [
  30. vue(),
  31. javascript(),
  32. ignores(),
  33. prettier(),
  34. typescript(),
  35. jsonc(),
  36. disableds(),
  37. importPluginConfig(),
  38. node(),
  39. perfectionist(),
  40. comments(),
  41. jsdoc(),
  42. unicorn(),
  43. test(),
  44. regexp(),
  45. command(),
  46. turbo(),
  47. ...customConfig,
  48. ...config,
  49. ];
  50. const resolved = await Promise.all(configs);
  51. return resolved.flat();
  52. }
  53. export { defineConfig };