11import type { Consumer } from 'rabbitmq-client'
2- import type { BaseEventHandler , Binding , Queue , QueueEntity , QueueRepository } from './types'
2+ import type { BaseEventHandler , QueueEntity , QueueRepository } from './types'
33
44type EntityOptions = {
55 name : string
@@ -10,25 +10,24 @@ type EntityOptions = {
1010export class Entity implements QueueEntity {
1111 name : string
1212 eventsToConsume : string [ ] = [ ]
13-
1413 repository : QueueRepository
1514
16- queues : Queue [ ] = [ ]
17- bindings : Binding [ ] = [ ]
18-
1915 constructor ( { name, eventsToConsume, repository } : EntityOptions ) {
2016 this . name = name
2117 this . eventsToConsume = eventsToConsume
22-
2318 this . repository = repository
2419
2520 this . initQueues ( name )
2621 this . initBindings ( eventsToConsume )
2722 }
2823
2924 async consume ( handler : BaseEventHandler < unknown > ) : Promise < Consumer > {
25+ if ( ! this . queue ?. queue ) {
26+ throw new Error ( `Queue "${ this . name } " not found` )
27+ }
28+
3029 const consumer = this . repository . connection . createConsumer ( {
31- queue : this . queue ? .queue ,
30+ queue : this . queue . queue ,
3231 queueOptions : {
3332 passive : true ,
3433 } ,
@@ -48,7 +47,7 @@ export class Entity implements QueueEntity {
4847 }
4948
5049 get queue ( ) {
51- return this . queues . find ( ( queue ) => queue . queue === this . name )
50+ return this . repository . queues . find ( ( queue ) => queue . queue === this . name )
5251 }
5352
5453 private initQueues ( name : string ) {
@@ -75,6 +74,10 @@ export class Entity implements QueueEntity {
7574 }
7675
7776 private initBindings ( events : string [ ] ) {
77+ if ( ! events . length ) {
78+ return
79+ }
80+
7881 const eventsExchange = this . repository . exchanges . events . exchange
7982 const retryExchange = this . repository . exchanges . retry . exchange
8083 const failExchange = this . repository . exchanges . fail . exchange
0 commit comments