blob: 06ac28d5cb70227a08f6949d7d4e74c7a59223b9 [file] [log] [blame]
Michael Landoed64b5e2017-06-09 03:19:04 +03001let path = require('path');
2
3const mockApis = require('./configurations/mock.json').sdcConfig;
4const proxy = require('http-proxy-middleware');
5const devPort = 9000;
6const fePort = 8181;
Michael Landoa5445102018-03-04 14:53:33 +02007const loclahost = "192.168.33.10"; // "localhost"
Michael Landoed64b5e2017-06-09 03:19:04 +03008
9module.exports = function(env) {
10
Michael Landoa5445102018-03-04 14:53:33 +020011 // Set default role
12 if (!env) {
13 env = {
14 role: "designer"
15 };
16 }
17 console.log("Starting dev server with role: " + env.role);
Michael Landoed64b5e2017-06-09 03:19:04 +030018
Michael Landoa5445102018-03-04 14:53:33 +020019 const ServerConfig = {
20 port: devPort,
21 historyApiFallback: true,
22 inline: true,
23 stats: {
24 colors: true,
25 exclude: ['node_modules']
26 },
27 setup: server => {
28 let userType = mockApis.userTypes[env.role];
Michael Landoed64b5e2017-06-09 03:19:04 +030029
Michael Landoa5445102018-03-04 14:53:33 +020030 let middlewares = [
31 (req, res, next) => {
32 res.cookie(mockApis.cookie.userIdSuffix, req.headers[mockApis.cookie.userIdSuffix] || userType.userId);
33 res.cookie(mockApis.cookie.userEmail, req.headers[mockApis.cookie.userEmail] || userType.email);
34 res.cookie(mockApis.cookie.userFirstName, req.headers[mockApis.cookie.userFirstName] || userType.firstName);
35 res.cookie(mockApis.cookie.userLastName, req.headers[mockApis.cookie.userLastName] || userType.lastName);
36 next();
Idan Amit2c285722017-12-29 09:40:43 +020037}
Michael Landoa5445102018-03-04 14:53:33 +020038];
39
40 // Redirect all '/sdc1/feProxy/rest' to feHost
41 middlewares.push(
42 proxy(['/sdc1/feProxy/rest'],{
Idan Amit1c5ea302018-03-28 10:37:14 +030043 target: 'http://' + loclahost + ':' + fePort,
Michael Landoa5445102018-03-04 14:53:33 +020044 changeOrigin: true,
45 secure: false
46 }));
47
Idan Amitfad1d732018-03-13 19:59:46 +020048 // Redirect all '/sdc1/rest' to feHost
49 middlewares.push(
50 proxy(['/sdc1/rest'],{
Idan Amit1c5ea302018-03-28 10:37:14 +030051 target: 'http://' + loclahost + ':' + fePort,
Idan Amitfad1d732018-03-13 19:59:46 +020052 changeOrigin: true,
53 secure: false
54 }));
55
Michael Landoa5445102018-03-04 14:53:33 +020056 // Redirect dcae urls to feHost
57 middlewares.push(
58 proxy(['/dcae','/sdc1/feProxy/dcae-api'],{
Idan Amit1c5ea302018-03-28 10:37:14 +030059 target: 'http://' + loclahost + ':' + fePort,
Michael Landoa5445102018-03-04 14:53:33 +020060 changeOrigin: true,
61 secure: false,
62 onProxyRes: (proxyRes, req, res) => {
63 let setCookie = proxyRes.headers['set-cookie'];
64 if (setCookie) {
65 setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, '');
66 }
67}
68}));
69
70 // Redirect onboarding urls to feHost
71 middlewares.push(
72 proxy(['/onboarding','/sdc1/feProxy/onboarding-api'],{
Idan Amit1c5ea302018-03-28 10:37:14 +030073 target: 'http://' + loclahost + ':' + fePort,
Michael Landoa5445102018-03-04 14:53:33 +020074 changeOrigin: true,
75 secure: false,
76 onProxyRes: (proxyRes, req, res) => {
77 let setCookie = proxyRes.headers['set-cookie'];
78 if (setCookie) {
79 setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, '');
80 }
81}
82}));
83
84 server.use(middlewares);
85}
86};
87
88 return ServerConfig;
Idan Amitfad1d732018-03-13 19:59:46 +020089}