@@ -31,11 +31,18 @@ function createExecutor(io: any, options: SocketControllersOptions): void {
31
31
const executor = new SocketControllerExecutor ( io ) ;
32
32
33
33
// second import all controllers and middlewares and error handlers
34
+ let controllerClasses : Function [ ] ;
34
35
if ( options && options . controllers && options . controllers . length )
35
- importClassesFromDirectories ( options . controllers ) ;
36
+ controllerClasses = ( options . controllers as any [ ] ) . filter ( controller => controller instanceof Function ) ;
37
+ const controllerDirs = ( options . controllers as any [ ] ) . filter ( controller => typeof controller === "string" ) ;
38
+ controllerClasses . push ( ...importClassesFromDirectories ( controllerDirs ) ) ;
36
39
37
- if ( options && options . middlewares && options . middlewares . length )
38
- importClassesFromDirectories ( options . middlewares ) ;
40
+ let middlewareClasses : Function [ ] ;
41
+ if ( options && options . middlewares && options . middlewares . length ) {
42
+ middlewareClasses = ( options . middlewares as any [ ] ) . filter ( controller => controller instanceof Function ) ;
43
+ const middlewareDirs = ( options . middlewares as any [ ] ) . filter ( controller => typeof controller === "string" ) ;
44
+ middlewareClasses . push ( ...importClassesFromDirectories ( middlewareDirs ) ) ;
45
+ }
39
46
40
47
if ( options . useClassTransformer !== undefined ) {
41
48
executor . useClassTransformer = options . useClassTransformer ;
@@ -47,7 +54,7 @@ function createExecutor(io: any, options: SocketControllersOptions): void {
47
54
executor . plainToClassTransformOptions = options . plainToClassTransformOptions ;
48
55
49
56
// run socket controller register and other operations
50
- executor . execute ( ) ;
57
+ executor . execute ( controllerClasses , middlewareClasses ) ;
51
58
}
52
59
53
60
// -------------------------------------------------------------------------
0 commit comments