From 20528eb0d1f301f2b06e3fb80d7e1e92cd552dc0 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Mon, 10 Sep 2018 10:56:59 -0700 Subject: [PATCH] added ANDROID environment variable to dev server for hosting the android html --- android/android.js | 1 - server/bin/dev.js | 31 ++++++++++++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/android/android.js b/android/android.js index 39367ef1..c7b0c4b4 100644 --- a/android/android.js +++ b/android/android.js @@ -27,5 +27,4 @@ app.route('/', require('./pages/home').default); app.route('/upload', require('./pages/upload').default); app.route('/share/:id', require('./pages/share').default); app.route('/preferences', require('./pages/preferences').default); -app.route('/android', require('./pages/home').default); app.mount('body'); diff --git a/server/bin/dev.js b/server/bin/dev.js index ddfbaed2..4f6ca1d0 100644 --- a/server/bin/dev.js +++ b/server/bin/dev.js @@ -10,11 +10,23 @@ const expressWs = require('express-ws'); const morgan = require('morgan'); const config = require('../config'); +const ID_REGEX = '([0-9a-fA-F]{10})'; + const androidIndex = fs.readFileSync( path.resolve(__dirname, '../../android/app/src/main/assets/index.html'), 'utf8' ); +function android(req, res) { + res.set('Content-Type', 'text/html'); + res.send( + androidIndex + .replace('index.css', '/android_asset/index.css') + .replace('vendor.js', assets.get('vendor.js')) + .replace('android.js', assets.get('android.js')) + ); +} + module.exports = function(app, devServer) { const wsapp = express(); expressWs(wsapp, null, { perMessageDeflate: false }); @@ -24,17 +36,18 @@ module.exports = function(app, devServer) { assets.setMiddleware(devServer.middleware); locales.setMiddleware(devServer.middleware); app.use(morgan('dev', { stream: process.stderr })); + if (process.env.ANDROID) { + // map all html routes to the android index.html + app.get('/', android); + app.get('/legal', android); + app.get(`/share/:id${ID_REGEX}`, android); + app.get(`/download/:id${ID_REGEX}`, android); + app.get('/completed', android); + app.get('/preferences', android); + app.get('/api/fxa/oauth', android); + } routes(app); tests(app); - app.get('/android', function(req, res) { - res.set('Content-Type', 'text/html'); - res.send( - androidIndex - .replace('index.css', '/android_asset/index.css') - .replace('vendor.js', assets.get('vendor.js')) - .replace('android.js', assets.get('android.js')) - ); - }); // webpack-dev-server routes haven't been added yet // so wait for next tick to add 404 handler process.nextTick(() => app.use(pages.notfound));