@appolo/bus
Version:
appolo bus module
44 lines (27 loc) • 993 B
text/typescript
import {define, factory, IFactory, inject, singleton} from '@appolo/inject'
import {IEnv} from '@appolo/engine'
import {IOptions} from "../common/IOptions";
import {ILogger} from '@appolo/logger';
import {TopologyManager} from "../topology/topologyManager";
import {createRabbit, IOptions as RabbitOptions, Rabbit} from "appolo-rabbit";
()
()
()
export class Client implements IFactory<Rabbit> {
() private moduleOptions: IOptions;
() private env: IEnv;
() private logger: ILogger;
() private topologyManager: TopologyManager;
public async get(): Promise<Rabbit> {
let config = this.topologyManager.buildTopology();
let rabbit = await createRabbit(config);
this._bindEvents(rabbit);
await rabbit.connect();
return rabbit;
}
private _bindEvents(rabbit:Rabbit) {
rabbit.onUnhandled(function (message) {
message.ack();
});
}
}