initialState, eventsReceivers
Eventrix class constructor
Emit event for eventrix instance it will run listeners and events receivers
Register events receiver in eventrix instance it will be used on events emitted
Unregister events receiver from eventrix instance
Get parent eventrix instance
Get first parent eventrix instance
Create eventrix instance with scopes
callback function to catch errors in receivers and listeners called on emit events
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 });