@harmonyjs/controller-persistence-events
Version:
Persistence events to SocketIO controller for Harmony
27 lines (26 loc) • 1.33 kB
JavaScript
/*
* The Persistence Events Controller transfers Persistence Events to SocketIO layer
*/
const ControllerPersistenceEvents = function ControllerPersistenceEvents(config) {
return ({
name: 'ControllerPersistenceEvents',
async initialize({ logger, socket }) {
const { events } = config;
events.on('updated', ({ model, document }) => {
var _a, _b;
socket.to('persistence-events').emit(`${model.name}-updated`, (_a = document) === null || _a === void 0 ? void 0 : _a._id);
socket.to('persistence-events').emit(`${model.name}-saved`, (_b = document) === null || _b === void 0 ? void 0 : _b._id);
});
events.on('removed', ({ model, document }) => {
var _a, _b;
socket.to('persistence-events').emit(`${model.name}-updated`, (_a = document) === null || _a === void 0 ? void 0 : _a._id);
socket.to('persistence-events').emit(`${model.name}-removed`, (_b = document) === null || _b === void 0 ? void 0 : _b._id);
});
socket.on('connection', (s) => {
s.join('persistence-events');
});
logger.info('Persistence events are forwarded to Socket.IO');
},
});
};
export default ControllerPersistenceEvents;