@@ -71,48 +71,55 @@ export class ListenersController {
7171 isUndefined ( server . transportId ) ||
7272 transport === server . transportId ,
7373 )
74- . forEach ( ( { pattern, targetCallback, methodKey, isEventHandler } ) => {
75- if ( isStatic ) {
76- const proxy = this . contextCreator . create (
77- instance as object ,
78- targetCallback ,
74+ . forEach (
75+ ( { pattern, targetCallback, methodKey, extras, isEventHandler } ) => {
76+ if ( isStatic ) {
77+ const proxy = this . contextCreator . create (
78+ instance as object ,
79+ targetCallback ,
80+ moduleKey ,
81+ methodKey ,
82+ STATIC_CONTEXT ,
83+ undefined ,
84+ defaultCallMetadata ,
85+ ) ;
86+ if ( isEventHandler ) {
87+ const eventHandler : MessageHandler = ( ...args : unknown [ ] ) => {
88+ const originalArgs = args ;
89+ const [ dataOrContextHost ] = originalArgs ;
90+ if ( dataOrContextHost instanceof RequestContextHost ) {
91+ args = args . slice ( 1 , args . length ) ;
92+ }
93+ const originalReturnValue = proxy ( ...args ) ;
94+ const returnedValueWrapper = eventHandler . next ?.(
95+ ...( originalArgs as Parameters < MessageHandler > ) ,
96+ ) ;
97+ returnedValueWrapper ?. then ( returnedValue =>
98+ this . connectIfStream ( returnedValue as Observable < unknown > ) ,
99+ ) ;
100+ return originalReturnValue ;
101+ } ;
102+ return server . addHandler (
103+ pattern ,
104+ eventHandler ,
105+ isEventHandler ,
106+ extras ,
107+ ) ;
108+ } else {
109+ return server . addHandler ( pattern , proxy , isEventHandler , extras ) ;
110+ }
111+ }
112+ const asyncHandler = this . createRequestScopedHandler (
113+ instanceWrapper ,
114+ pattern ,
115+ moduleRef ,
79116 moduleKey ,
80117 methodKey ,
81- STATIC_CONTEXT ,
82- undefined ,
83118 defaultCallMetadata ,
84119 ) ;
85- if ( isEventHandler ) {
86- const eventHandler : MessageHandler = ( ...args : unknown [ ] ) => {
87- const originalArgs = args ;
88- const [ dataOrContextHost ] = originalArgs ;
89- if ( dataOrContextHost instanceof RequestContextHost ) {
90- args = args . slice ( 1 , args . length ) ;
91- }
92- const originalReturnValue = proxy ( ...args ) ;
93- const returnedValueWrapper = eventHandler . next ?.(
94- ...( originalArgs as Parameters < MessageHandler > ) ,
95- ) ;
96- returnedValueWrapper ?. then ( returnedValue =>
97- this . connectIfStream ( returnedValue as Observable < unknown > ) ,
98- ) ;
99- return originalReturnValue ;
100- } ;
101- return server . addHandler ( pattern , eventHandler , isEventHandler ) ;
102- } else {
103- return server . addHandler ( pattern , proxy , isEventHandler ) ;
104- }
105- }
106- const asyncHandler = this . createRequestScopedHandler (
107- instanceWrapper ,
108- pattern ,
109- moduleRef ,
110- moduleKey ,
111- methodKey ,
112- defaultCallMetadata ,
113- ) ;
114- server . addHandler ( pattern , asyncHandler , isEventHandler ) ;
115- } ) ;
120+ server . addHandler ( pattern , asyncHandler , isEventHandler , extras ) ;
121+ } ,
122+ ) ;
116123 }
117124
118125 public assignClientsToProperties ( instance : Controller | Injectable ) {
0 commit comments