3 const proxy = require('http-proxy-middleware');
5 const devConfig = require('./tools/getDevConfig');
6 let devPort = process.env.PORT || devConfig.port;
8 module.exports = function(server) {
10 console.log('---------------------');
11 console.log('---------------------');
12 console.log('---------------------');
14 'Local URL: http://localhost:' + devPort + '/sdc1/#!/onboardVendor'
16 console.log('---------------------');
17 console.log('---------------------');
18 console.log('---------------------');
19 console.log('Starting dev server with role: ' + devConfig.env.role);
20 let userType = devConfig.userTypes[devConfig.env.role];
22 let proxyConfigDefaults = {
26 onProxyRes: (proxyRes, req, res) => {
28 devConfig.cookie.userIdSuffix,
29 req.headers[devConfig.cookie.userIdSuffix] || userType.userId
32 devConfig.cookie.userEmail,
33 req.headers[devConfig.cookie.userEmail] || userType.email
36 devConfig.cookie.userFirstName,
37 req.headers[devConfig.cookie.userFirstName] ||
41 devConfig.cookie.userLastName,
42 req.headers[devConfig.cookie.userLastName] || userType.lastName
47 proxyRes.headers.location &&
48 proxyRes.headers.location.indexOf('login') > -1
50 proxyRes.headers.location = `http://localhost:${devPort}/${
51 devConfig.proxyConfig.redirectionPath
59 devConfig.proxyConfig.urlReplaceRules.forEach(function(rule) {
60 if (req.url.indexOf(rule.url) > -1) {
61 req.url = req.url.replace(rule.replace, rule.with);
65 devConfig.proxyConfig.jsReplaceRules.forEach(function(rule) {
66 let regex = new RegExp('^(.*)' + rule.replace);
67 let match = req.url.match(regex);
68 let newUrl = match && match[1] + rule.with;
70 console.log(`REWRITING URL: ${req.url} -> ${newUrl}`);
81 // standalone back-end (proxyTarget) has higher priority, so it should be first
82 if (devConfig.proxyTarget) {
83 console.log('Onboarding proxy set to : ' + devConfig.proxyTarget);
85 target: devConfig.proxyTarget,
86 config: devConfig.proxyConfig.onboardingProxy
90 'Onboarding proxy set to : ' + devConfig.proxyCatalogTarget
93 console.log('Catalog proxy set to : ' + devConfig.proxyCatalogTarget);
95 target: devConfig.proxyCatalogTarget,
96 config: devConfig.proxyConfig.catalogProxy
98 proxies.forEach(function(p) {
100 'adding: ' + p.target + ' with rewrite: ' + p.config.rewrite
105 Object.assign({}, proxyConfigDefaults, {
108 pathRewrite: p.config.rewrite
114 if (devConfig.proxyConfig.websocketProxy.enabled) {
115 let websocketTarget = devConfig.proxyCatalogTarget;
116 if (devConfig.proxyWebsocketTarget) {
117 websocketTarget = devConfig.proxyWebsocketTarget;
119 console.log('Websocket proxy set to : ' + websocketTarget);
120 console.log('---------------------');
122 devConfig.proxyConfig.websocketProxy.proxy,
123 Object.assign({}, proxyConfigDefaults, {
124 target: websocketTarget,
128 middlewares.push(wsProxy);
129 server.use(middlewares);
130 server.on('upgrade', wsProxy.upgrade);
132 server.use(middlewares);