Skip to content

Class: EventEmitterModule

Defined in: packages/event-emitter/src/event-emitter.module.ts:56

Module that integrates a typed, wildcard-capable event emitter into nestelia's dependency injection system.

Register once at the application root and inject EventEmitterService anywhere. Methods decorated with @OnEvent() on any provider are automatically wired up during bootstrap — no manual registration needed.

Examples

typescript
@Module({
  imports: [EventEmitterModule.forRoot({ wildcard: true })],
})
export class AppModule {}

Emitting events:

typescript
@Injectable()
export class OrderService {
  constructor(private readonly events: EventEmitterService) {}

  async placeOrder(order: Order) {
    await this.events.emitAsync('order.created', order);
  }
}

Listening to events:

typescript
@Injectable()
export class NotificationService {
  @OnEvent('order.created')
  handleOrderCreated(order: Order) {
    console.log('Sending confirmation to', order.email);
  }

  @OnEvent('order.*')
  handleAnyOrderEvent(payload: unknown) {
    console.log('An order event fired');
  }
}

Constructors

Constructor

ts
new EventEmitterModule(): EventEmitterModule;

Returns

EventEmitterModule

Methods

forRoot()

ts
static forRoot(options?): DynamicModule;

Defined in: packages/event-emitter/src/event-emitter.module.ts:62

Configure and register the EventEmitterModule.

Parameters

ParameterTypeDescription
optionsEventEmitterModuleOptionsOptional configuration.

Returns

DynamicModule

Released under the MIT License.