Eventrix
Example of simple use of Eventrix
import { Eventrix, EventsReceiver } from 'eventrix';
const usersEventsReceiver = new EventsReceiver(
'createUserEventName',
(eventName, eventData, stateManager) => {
const user = eventData.user;
const users = stateManager.getState('usersList');
stateManager.setState('usersList', [user, ...users]);
}
);
const initialState = {
usersList: [],
}
const eventsReceivers = [
usersEventsReceiver,
];
const eventrix = new Eventrix(initialState, eventsReceivers);
export default eventrix;
import { Eventrix, EventsReceiver } from 'eventrix';
import StateManager from 'eventrix/types/StateManager';
interface User {
id: number;
name: string;
age: number;
}
interface UserEventData {
user: User;
}
interface StoreState {
usersList: User[];
}
const usersEventsReceiver = new EventsReceiver<UserEventData, void>(
'createUserEventName',
(eventName, eventData, stateManager) => {
const user = eventData.user;
const users = stateManager.getState('usersList');
stateManager.setState('usersList', [user, ...users]);
}
);
const initialState = {
usersList: [],
}
const eventsReceivers = [
usersEventsReceiver,
];
const eventrix = new Eventrix<StoreState>(initialState, eventsReceivers);
export default eventrix;
When You emit event with name "createUserEventName" usersEventsReceiver will be invoked and change state of "usersList".
const user = {
id: 1,
name: 'Max',
age: 30,
}
eventrix.emit('createUserEventName', { user });
const user: User = {
id: 1,
name: 'Max',
age: 30,
}
eventrix.emit<UserEventData>('createUserEventName', { user });
Last updated