UNPKG

reldens

Version:
57 lines (50 loc) 1.92 kB
/** * * Reldens - Firebase Server Plugin * */ const { PluginInterface } = require('../../features/plugin-interface'); const { GameConst } = require('../../game/constants'); const { Logger, sc } = require('@reldens/utils'); class FirebasePlugin extends PluginInterface { setup(props) { this.events = sc.get(props, 'events', false); if(!this.events){ Logger.error('EventsManager undefined in FirebasePlugin.'); } this.events.on('reldens.serverBeforeListen', (props) => { this.declareFirebaseConfigRequestHandler(props.serverManager.app); }); } declareFirebaseConfigRequestHandler(app) { app.get(GameConst.ROUTE_PATHS.FIREBASE, (req, res) => { res.json(this.firebaseConfig()); }); } firebaseConfig() { if(1 !== Number(process.env.RELDENS_FIREBASE_ENABLE || 0)){ return {enabled: false}; } let jsonResponse = { enabled: true, firebaseConfig: { apiKey: process.env.RELDENS_FIREBASE_API_KEY, authDomain: process.env.RELDENS_FIREBASE_AUTH_DOMAIN, databaseURL: process.env.RELDENS_FIREBASE_DATABASE_URL, projectId: process.env.RELDENS_FIREBASE_PROJECT_ID, storageBucket: process.env.RELDENS_FIREBASE_STORAGE_BUCKET, messagingSenderId: process.env.RELDENS_FIREBASE_MESSAGING_SENDER_ID, appId: process.env.RELDENS_FIREBASE_APP_ID } }; if(process.env.RELDENS_FIREBASE_MEASUREMENTID && 0 < process.env.RELDENS_FIREBASE_MEASUREMENTID.length){ jsonResponse.firebaseConfig['measurementId'] = process.env.RELDENS_FIREBASE_MEASUREMENTID; } return jsonResponse; } } module.exports.FirebasePlugin = FirebasePlugin;