plugin.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { PluginCommonModule, VendurePlugin } from '@vendure/core';
  2. import { SupplierStockAdminResolver } from './api/resolvers/admin/supplier-stock-admin.resolver';
  3. import { SupplierStockInTransitAdminResolver } from './api/resolvers/admin/supplier-stock-in-transit-admin.resolver';
  4. import { SupplierStockEntityResolver } from './api/resolvers/entity/suppiler-stock-entity.resolver';
  5. import { adminApiExtensions } from './api/schema/admin-api';
  6. import { SupplierStockInTransitService } from './api/services/supplier-stock-in-transit.service';
  7. import { SupplierStockService } from './api/services/supplier-stock.service';
  8. import { PLUGIN_INIT_OPTIONS } from './constants';
  9. import { productVariantCustomFields } from './custom-fields/product-variant-custom-fields';
  10. import { SupplierStockInTransit } from './entities/supplier-stock-in-transit.entity';
  11. import { SupplierStock } from './entities/supplier-stock.entity';
  12. import type { PluginInitOptions } from './types';
  13. const services = [SupplierStockInTransitService, SupplierStockService];
  14. @VendurePlugin({
  15. imports: [PluginCommonModule],
  16. entities: [SupplierStock, SupplierStockInTransit],
  17. adminApiExtensions: {
  18. schema: adminApiExtensions,
  19. resolvers: [
  20. SupplierStockAdminResolver,
  21. SupplierStockEntityResolver,
  22. SupplierStockInTransitAdminResolver,
  23. ],
  24. },
  25. providers: [
  26. ...services,
  27. // By definiting the `PLUGIN_INIT_OPTIONS` symbol as a provider, we can then inject the
  28. // user-defined options into other classes, such as the {@link ExampleService}.
  29. {
  30. provide: PLUGIN_INIT_OPTIONS,
  31. useFactory: () => IssueSupplierPlugin.options,
  32. },
  33. ],
  34. configuration: (config) => {
  35. config.customFields.ProductVariant.push(...productVariantCustomFields);
  36. return config;
  37. },
  38. })
  39. export class IssueSupplierPlugin {
  40. static options: PluginInitOptions = {};
  41. /**
  42. * The static `init()` method is a convention used by Vendure plugins which allows options
  43. * to be configured by the user.
  44. */
  45. static init(options: Partial<PluginInitOptions>) {
  46. this.options = { ...IssueSupplierPlugin.options, ...options };
  47. return IssueSupplierPlugin;
  48. }
  49. }