UNPKG

event_request

Version:
64 lines (53 loc) 1.32 kB
'use strict'; const PluginInterface = require( './../plugin_interface' ); const Session = require( '../../components/session/session' ); /** * @brief Adds session in the event request */ class SessionPlugin extends PluginInterface { constructor( id, options = {} ) { super( id, options ); this.server = null; } /** * @brief This plugin depends on having a cache * * @return {Array} */ getPluginDependencies() { return ['er_data_server']; } /** * @brief creates the namespace when attaching to the server * * @param {Server} server */ setServerOnRuntime( server ) { this.dataServer = server.er_data_server.getServer(); } /** * @brief Adds a session to the event request * * @details Even tho the cleanUp will remove the event.session * the event.session.saveSession() in the send * has already queued up the session save so it will still execute. * * @return {Array} */ getPluginMiddleware() { return [{ handler : async ( event ) => { if ( ! event.session ) { event.session = new Session( event, this.options ); await event.session.init(); event.on( 'cleanUp', async () => { await event.session.saveSession(); event.session = undefined; }); } event.next(); } }]; } } module.exports = SessionPlugin;