index.ts 779 B

12345678910111213141516171819202122232425
  1. // Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. import type { QuickSearchPlugin } from '../types.ts'
  3. const plugins = import.meta.glob<QuickSearchPlugin>(
  4. ['./**/*.ts', '!./**/index.ts', '!./types.ts', '!./__tests__/**/*.ts'],
  5. {
  6. eager: true,
  7. import: 'default',
  8. },
  9. )
  10. export const quickSearchPlugins = Object.values(plugins)
  11. export const sortedQuickSearchPlugins = quickSearchPlugins.sort(
  12. (a, b) => a.priority - b.priority,
  13. )
  14. export const lookupQuickSearchPlugin = (searchResultKey: string) =>
  15. sortedQuickSearchPlugins.find(
  16. (plugin) => plugin.searchResultKey === searchResultKey,
  17. )
  18. export const lookupQuickSearchPluginComponent = (model: string) =>
  19. quickSearchPlugins.find((plugin) => plugin.name === model)?.component