| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import { PluginCommonModule, VendurePlugin } from '@vendure/core';
- import { AdminUiExtension } from '@vendure/ui-devkit/compiler';
- import path from 'path';
- import { adminApiExtensions, shopApiExtensions } from './api/api-extensions';
- import { ProductBundleAdminResolver } from './api/product-bundle-admin.resolver';
- import { ProductBundleShopResolver } from './api/product-bundle-shop.resolver';
- import { BundleOrderInterceptor } from './config/bundle-order-interceptor';
- import { productBundlePermission } from './constants';
- import { ProductBundleItem } from './entities/product-bundle-item.entity';
- import { ProductBundle } from './entities/product-bundle.entity';
- import { ProductBundleItemService } from './services/product-bundle-item.service';
- import { ProductBundleService } from './services/product-bundle.service';
- @VendurePlugin({
- imports: [PluginCommonModule],
- entities: [ProductBundle, ProductBundleItem],
- configuration: config => {
- config.customFields.OrderLine.push({
- type: 'struct',
- name: 'fromBundle',
- fields: [
- { name: 'bundleId', type: 'string' },
- { name: 'bundleName', type: 'string' },
- ],
- });
- config.orderOptions.orderInterceptors.push(new BundleOrderInterceptor());
- config.authOptions.customPermissions.push(productBundlePermission);
- return config;
- },
- providers: [ProductBundleService, ProductBundleItemService],
- adminApiExtensions: {
- schema: adminApiExtensions,
- resolvers: [ProductBundleAdminResolver],
- },
- shopApiExtensions: {
- schema: shopApiExtensions,
- resolvers: [ProductBundleShopResolver],
- },
- })
- export class ProductBundlesPlugin {
- static uiExtensions: AdminUiExtension = {
- id: 'product-bundles',
- extensionPath: path.join(__dirname, 'ui'),
- routes: [{ route: 'product-bundles', filePath: 'routes.ts' }],
- providers: ['providers.ts'],
- };
- }
|