Skip to content

Commit b9c57c7

Browse files
committed
update socket config to use functions and directory
1 parent 1c83259 commit b9c57c7

File tree

4 files changed

+15
-8
lines changed

4 files changed

+15
-8
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "socket-controllers",
33
"private": true,
4-
"version": "0.0.4",
4+
"version": "0.0.5",
55
"description": "Use class-based controllers to handle websocket events",
66
"license": "MIT",
77
"readmeFilename": "README.md",

src/SocketControllerExecutor.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ export class SocketControllerExecutor {
5252
// Public Methods
5353
// -------------------------------------------------------------------------
5454

55-
execute() {
56-
this.registerControllers();
57-
this.registerMiddlewares();
55+
execute(controllerClasses?: Function[], middlewareClasses?: Function[]) {
56+
this.registerControllers(controllerClasses);
57+
this.registerMiddlewares(middlewareClasses);
5858
}
5959

6060
// -------------------------------------------------------------------------

src/SocketControllersOptions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export interface SocketControllersOptions {
88
/**
99
* List of directories from where to "require" all your controllers.
1010
*/
11-
controllers?: string[];
11+
controllers?: Function[] | string[];
1212

1313
/**
1414
* List of directories from where to "require" all your middlewares.

src/index.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,18 @@ function createExecutor(io: any, options: SocketControllersOptions): void {
3131
const executor = new SocketControllerExecutor(io);
3232

3333
// second import all controllers and middlewares and error handlers
34+
let controllerClasses: Function[];
3435
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));
3639

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+
}
3946

4047
if (options.useClassTransformer !== undefined) {
4148
executor.useClassTransformer = options.useClassTransformer;

0 commit comments

Comments
 (0)