reviews-plugin.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { PluginCommonModule, VendurePlugin } from '@vendure/core';
  2. import { adminApiExtensions, shopApiExtensions } from './api/api-extensions';
  3. import { ProductEntityResolver } from './api/product-entity.resolver';
  4. import { ProductReviewAdminResolver } from './api/product-review-admin.resolver';
  5. import { ProductReviewEntityResolver } from './api/product-review-entity.resolver';
  6. import { ProductReviewShopResolver } from './api/product-review-shop.resolver';
  7. import { ProductReviewTranslation } from './entities/product-review-translation.entity';
  8. import { ProductReview } from './entities/product-review.entity';
  9. @VendurePlugin({
  10. imports: [PluginCommonModule],
  11. entities: [ProductReview, ProductReviewTranslation],
  12. adminApiExtensions: {
  13. schema: adminApiExtensions,
  14. resolvers: [ProductEntityResolver, ProductReviewAdminResolver, ProductReviewEntityResolver],
  15. },
  16. shopApiExtensions: {
  17. schema: shopApiExtensions,
  18. resolvers: [ProductEntityResolver, ProductReviewShopResolver, ProductReviewEntityResolver],
  19. },
  20. configuration: config => {
  21. config.customFields.Product.push({
  22. name: 'reviews',
  23. type: 'relation',
  24. list: true,
  25. entity: ProductReview,
  26. inverseSide: (review: ProductReview) => review.product,
  27. ui: { component: 'review-multi-select-with-create' },
  28. });
  29. return config;
  30. },
  31. dashboard: './dashboard/index.tsx',
  32. })
  33. export class ReviewsPlugin {}