@@ -9,7 +9,7 @@ import { EventEmitter } from 'events'
99export class HandlerRegistry {
1010 private _commandHandlers : HandlerRegistryRoutes < CommandHandler < any > > = { }
1111 private _queryHandlers : HandlerRegistryRoutes < QueryHandler < any , any > > = { }
12- private _eventListeners : HandlerRegistryRoutes < EventListener < any > > = { }
12+ private _eventListeners : HandlerRegistryRoutes < Array < EventListener < any > > > = { }
1313 private eventListenersUpdates : EventEmitter
1414
1515 get commandHandlers ( ) {
@@ -32,24 +32,32 @@ export class HandlerRegistry {
3232 return new HandlerRegistry ( )
3333 }
3434
35- public getCommandHandlers < M > ( name : string ) : CommandHandler < M > [ ] {
36- return this . commandHandlers [ name ] || [ ]
35+ public getCommandHandler < M > ( name : string ) : CommandHandler < M > {
36+ return this . commandHandlers [ name ]
3737 }
3838
39- public getQueryHandlers < M , R > ( resource : string ) : QueryHandler < M , R > [ ] {
40- return this . queryHandlers [ resource ] || [ ]
39+ public getQueryHandler < M , R > ( resource : string ) : QueryHandler < M , R > {
40+ return this . queryHandlers [ resource ]
4141 }
4242
4343 public getEventListeners < M > ( name : string ) : EventListener < M > [ ] {
4444 return this . eventListeners [ name ] || [ ]
4545 }
4646
4747 public handleCommand < M > ( name : string , handler : CommandHandler < M > ) : void {
48- this . push ( this . commandHandlers , name , handler )
48+ if ( this . commandHandlers [ name ] ) {
49+ throw new Error ( `Command ${ name } already registered` )
50+ }
51+
52+ this . commandHandlers [ name ] = handler
4953 }
5054
51- public serverQuery < M , R > ( resource : string , handler : QueryHandler < M , R > ) : void {
52- this . push ( this . queryHandlers , resource , handler )
55+ public serveQuery < M , R > ( resource : string , handler : QueryHandler < M , R > ) : void {
56+ if ( this . queryHandlers [ resource ] ) {
57+ throw new Error ( `Query ${ resource } already registered` )
58+ }
59+
60+ this . queryHandlers [ resource ] = handler
5361 }
5462
5563 public listenEvent < M > ( name : string , listener : EventListener < M > ) : void {
@@ -61,7 +69,7 @@ export class HandlerRegistry {
6169 this . eventListenersUpdates . on ( 'eventListenerPushed' , handle )
6270 }
6371
64- private push < H > ( routes : HandlerRegistryRoutes < H > , path : string , handler : H ) {
72+ private push < H > ( routes : HandlerRegistryRoutes < Array < H > > , path : string , handler : H ) {
6573 if ( ! routes [ path ] ) {
6674 routes [ path ] = [ ]
6775 }
0 commit comments