forked from nestjs/nest
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmicroservices-module.ts
More file actions
33 lines (27 loc) · 1.22 KB
/
Copy pathmicroservices-module.ts
File metadata and controls
33 lines (27 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { NestContainer, InstanceWrapper } from '../core/injector/container';
import { Controller } from '../common/interfaces/controller.interface';
import { ListenersController } from './listeners-controller';
export class MicroservicesModule {
private static readonly listenersController = new ListenersController();
public static setupListeners(container: NestContainer, server) {
const modules = container.getModules();
modules.forEach(({ routes }) => this.bindListeners(routes, server));
}
public static setupClients(container: NestContainer) {
const modules = container.getModules();
modules.forEach(({ routes, components }) => {
this.bindClients(routes);
this.bindClients(components);
});
}
public static bindListeners(controllers: Map<string, InstanceWrapper<Controller>>, server) {
controllers.forEach(({ instance }) => {
this.listenersController.bindPatternHandlers(instance, server);
});
}
public static bindClients(controllers: Map<string, InstanceWrapper<Controller>>) {
controllers.forEach(({ instance }) => {
this.listenersController.bindClientsToProperties(instance);
});
}
}