coffee-core
Version:
Coffee IT API core library
30 lines (22 loc) • 862 B
text/typescript
import { SubscriberService } from './subscriber-service';
import { OnApplicationBootstrap, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
export abstract class SubscriberController implements OnApplicationBootstrap, OnModuleInit, OnModuleDestroy {
protected subscribers: SubscriberService[];
public async onModuleInit(): Promise<void> {
this.subscribers = this.initializeSubscribers();
for (const subscriber of this.subscribers) {
await subscriber.subscribe();
}
}
public async onApplicationBootstrap(): Promise<void> {
for (const subscriber of this.subscribers) {
await subscriber.start();
}
}
public async onModuleDestroy(): Promise<void> {
for (const subscriber of this.subscribers) {
await subscriber.close();
}
}
protected abstract initializeSubscribers(): SubscriberService[];
}