@palmares/events
Version:
This is the events framework for palmares, it's responsible for handling everything that is Pub/Sub like websockets, pub/sub like redis, and other types of asynchronous background tasks
28 lines (26 loc) • 1.06 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/app/utils.ts
async function loadEvents(server, domains) {
const promises = domains.map(async (eventsDomain) => {
const events = await eventsDomain.getEvents();
const eventsEntries = Object.entries(events);
await Promise.all(eventsEntries.map(async ([eventName, eventHandlerOrObject]) => {
let isWithResult = true;
let eventHandler;
if (typeof eventHandlerOrObject !== "function") {
isWithResult = eventHandlerOrObject.withResult;
eventHandler = eventHandlerOrObject.handler.bind(eventHandlerOrObject.handler);
} else {
eventHandler = eventHandlerOrObject.bind(eventHandlerOrObject);
}
if (isWithResult) await server.addEventListener(eventName, eventHandler);
else await server.addEventListenerWithoutResult(eventName, eventHandler);
}));
});
await Promise.all(promises);
}
__name(loadEvents, "loadEvents");
export {
loadEvents
};