with-worker-controller.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { Controller, Get } from '@nestjs/common';
  2. import { MessagePattern } from '@nestjs/microservices';
  3. import {
  4. PluginCommonModule,
  5. ProcessContext,
  6. VendurePlugin,
  7. WorkerMessage,
  8. WorkerService,
  9. } from '@vendure/core';
  10. import { of } from 'rxjs';
  11. class TestWorkerMessage extends WorkerMessage<string, boolean> {
  12. static readonly pattern = 'TestWorkerMessage';
  13. }
  14. @Controller('process-context')
  15. export class TestProcessContextController {
  16. constructor(private processContext: ProcessContext, private workerService: WorkerService) {}
  17. @Get('server')
  18. isServer() {
  19. return this.processContext.isServer;
  20. }
  21. @Get('worker')
  22. isWorker() {
  23. return this.workerService.send(new TestWorkerMessage('hello'));
  24. }
  25. }
  26. @Controller()
  27. export class TestProcessContextWorkerController {
  28. constructor(private processContext: ProcessContext) {}
  29. @MessagePattern(TestWorkerMessage.pattern)
  30. isWorker() {
  31. return of(this.processContext.isWorker);
  32. }
  33. }
  34. @VendurePlugin({
  35. imports: [PluginCommonModule],
  36. controllers: [TestProcessContextController],
  37. workers: [TestProcessContextWorkerController],
  38. })
  39. export class TestProcessContextPlugin {}