@kovalson/eventful
v1.1.0
Published
A TypeScript package that provides a global event bus for your application.
Readme
Eventful
Manage global application events with ease.
Eventful is a TypeScript package that provides a global event bus for your application. Built from the ground up, so it does not clutter your project and does not require active maintenance.
See the full documentation here.
Example
// eventBus.ts
import { createEventBus } from '@kovalson/eventful';
export const eventBus = createEventBus();// dto/IUser
export interface IUser {
// ...
}// events/UserUpdated
import { AppEvent } from '@kovalson/eventful';
import { IUser } from 'dto/IUser';
export class UserUpdated extends AppEvent {
public user: IUser;
public constructor(user: IUser) {
super();
this.user = IUser;
}
}// index.ts
import { eventBus } from 'eventBus';
import { UserUpdated } from 'events/UserUpdated';
eventBus.listen(UserUpdated, (event) => {
if (event.user.active) {
// ...
}
});// some-api.ts
import { eventBus } from 'eventBus';
import { UserUpdated } from 'events/UserUpdated';
import { IUser } from 'dto/IUser';
fetch('/user/id')
.then((response) => response.json())
.then((data) => {
eventBus.dispatch(new UserUpdated(data as IUser));
});