default-search-plugin.ts 1017 B

12345678910111213141516171819202122232425262728
  1. import { Type } from '../../../../shared/shared-types';
  2. import { DEFAULT_LANGUAGE_CODE } from '../../common/constants';
  3. import { InjectorFn, VendureConfig, VendurePlugin } from '../../config';
  4. import { FulltextSearchResolver } from './fulltext-search.resolver';
  5. import { FulltextSearchService } from './fulltext-search.service';
  6. import { SearchIndexItem } from './search-index-item.entity';
  7. export class DefaultSearchPlugin implements VendurePlugin {
  8. private fulltextSearchService: FulltextSearchService;
  9. async configure(config: Required<VendureConfig>): Promise<Required<VendureConfig>> {
  10. return config;
  11. }
  12. async onBootstrap(inject: InjectorFn): Promise<void> {
  13. const searchService = inject(FulltextSearchService);
  14. await searchService.checkIndex(DEFAULT_LANGUAGE_CODE);
  15. }
  16. defineEntities(): Array<Type<any>> {
  17. return [SearchIndexItem];
  18. }
  19. defineProviders(): Array<Type<any>> {
  20. return [FulltextSearchService, FulltextSearchResolver];
  21. }
  22. }