index.ts 946 B

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