diff options
Diffstat (limited to 'catalog-ui/webpack.server.js')
-rw-r--r-- | catalog-ui/webpack.server.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/catalog-ui/webpack.server.js b/catalog-ui/webpack.server.js new file mode 100644 index 0000000000..b8c79a6197 --- /dev/null +++ b/catalog-ui/webpack.server.js @@ -0,0 +1,80 @@ +let path = require('path'); + +const mockApis = require('./configurations/mock.json').sdcConfig; +const proxy = require('http-proxy-middleware'); +const devPort = 9000; +const fePort = 8181; + +module.exports = function(env) { + + // Set default role + if (!env) { + env = { + role: "designer" + }; + } + console.log("Starting dev server with role: " + env.role); + + const ServerConfig = { + port: devPort, + historyApiFallback: true, + inline: true, + stats: { + colors: true, + exclude: ['node_modules'] + }, + setup: server => { + let userType = mockApis.userTypes[env.role]; + + let middlewares = [ + (req, res, next) => { + res.cookie(mockApis.cookie.userIdSuffix, req.headers[mockApis.cookie.userIdSuffix] || userType.userId); + res.cookie(mockApis.cookie.userEmail, req.headers[mockApis.cookie.userEmail] || userType.email); + res.cookie(mockApis.cookie.userFirstName, req.headers[mockApis.cookie.userFirstName] || userType.firstName); + res.cookie(mockApis.cookie.userLastName, req.headers[mockApis.cookie.userLastName] || userType.lastName); + next(); + } + ]; + + // Redirect all '/sdc1/feProxy/rest' to feHost + middlewares.push( + proxy(['/sdc1/feProxy/rest'],{ + target: 'http://localhost:' + fePort, + changeOrigin: true, + secure: false + })); + + // Redirect dcae urls to feHost + middlewares.push( + proxy(['/dcae','/sdc1/feProxy/dcae-api'],{ + target: 'http://localhost:' + fePort, + changeOrigin: true, + secure: false, + onProxyRes: (proxyRes, req, res) => { + let setCookie = proxyRes.headers['set-cookie']; + if (setCookie) { + setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, ''); + } + } + })); + + // Redirect onboarding urls to feHost + middlewares.push( + proxy(['/onboarding','/sdc1/feProxy/onboarding-api'],{ + target: 'http://localhost:' + fePort, + changeOrigin: true, + secure: false, + onProxyRes: (proxyRes, req, res) => { + let setCookie = proxyRes.headers['set-cookie']; + if (setCookie) { + setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, ''); + } + } + })); + + server.use(middlewares); + } + }; + + return ServerConfig; +}
\ No newline at end of file |