generate-many-facet-values.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /* eslint-disable no-console */
  2. import {
  3. bootstrapWorker,
  4. ChannelService,
  5. FacetService,
  6. FacetValueService,
  7. LanguageCode,
  8. RequestContextService,
  9. } from '@vendure/core';
  10. import { devConfig } from '../dev-config';
  11. const FACET_VALUE_COUNT = 1500;
  12. generateManyFacetValues()
  13. .then(() => process.exit(0))
  14. .catch(() => process.exit(1));
  15. // Used for testing scenarios where there are many channels
  16. // such as https://github.com/vendurehq/vendure/issues/2233
  17. async function generateManyFacetValues() {
  18. const { app } = await bootstrapWorker(devConfig);
  19. const requestContextService = app.get(RequestContextService);
  20. const channelService = app.get(ChannelService);
  21. const facetService = app.get(FacetService);
  22. const facetValueService = app.get(FacetValueService);
  23. const ctxAdmin = await requestContextService.create({
  24. apiType: 'admin',
  25. });
  26. const facet = await facetService.create(ctxAdmin, {
  27. code: 'color',
  28. translations: [{ languageCode: LanguageCode.en, name: 'Color' }],
  29. isPrivate: false,
  30. values: [],
  31. });
  32. for (let i = FACET_VALUE_COUNT; i > 0; i--) {
  33. const facetValue = await facetValueService.create(ctxAdmin, facet, {
  34. code: `color-${i}`,
  35. translations: [{ languageCode: LanguageCode.en, name: `Color ${i}` }],
  36. facetId: facet.id,
  37. });
  38. console.log(`Created channel ${facetValue.code}`);
  39. }
  40. }