* refactor: Moved JHipster Monolithic to a subfolder * feat: Add JHipster Microservice modules closes BAEL-521
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
var gulp = require('gulp'),
 | 
						|
    util = require('./utils'),
 | 
						|
    url = require('url'),
 | 
						|
    browserSync = require('browser-sync'),
 | 
						|
    proxy = require('proxy-middleware');
 | 
						|
 | 
						|
var config = require('./config');
 | 
						|
 | 
						|
module.exports = function () {
 | 
						|
    var baseUri = config.uri + config.apiPort;
 | 
						|
    // Routes to proxy to the backend. Routes ending with a / will setup
 | 
						|
    // a redirect so that if accessed without a trailing slash, will
 | 
						|
    // redirect. This is required for some endpoints for proxy-middleware
 | 
						|
    // to correctly handle them.
 | 
						|
    var proxyRoutes = [
 | 
						|
        '/'
 | 
						|
    ];
 | 
						|
 | 
						|
    var requireTrailingSlash = proxyRoutes.filter(function (r) {
 | 
						|
        return util.endsWith(r, '/');
 | 
						|
    }).map(function (r) {
 | 
						|
        // Strip trailing slash so we can use the route to match requests
 | 
						|
        // with non trailing slash
 | 
						|
        return r.substr(0, r.length - 1);
 | 
						|
    });
 | 
						|
 | 
						|
    var proxies = [
 | 
						|
        // Ensure trailing slash in routes that require it
 | 
						|
        function (req, res, next) {
 | 
						|
            requireTrailingSlash.forEach(function (route){
 | 
						|
                if (url.parse(req.url).path === route) {
 | 
						|
                    res.statusCode = 301;
 | 
						|
                    res.setHeader('Location', route + '/');
 | 
						|
                    res.end();
 | 
						|
                }
 | 
						|
            });
 | 
						|
 | 
						|
            next();
 | 
						|
        }
 | 
						|
    ]
 | 
						|
    .concat(
 | 
						|
        // Build a list of proxies for routes: [route1_proxy, route2_proxy, ...]
 | 
						|
        proxyRoutes.map(function (r) {
 | 
						|
            var options = url.parse(baseUri + r);
 | 
						|
            options.route = r;
 | 
						|
            options.preserveHost = true;
 | 
						|
            return proxy(options);
 | 
						|
        }));
 | 
						|
 | 
						|
    browserSync({
 | 
						|
        open: true,
 | 
						|
        port: config.port,
 | 
						|
        server: {
 | 
						|
            baseDir: config.app,
 | 
						|
            middleware: proxies
 | 
						|
        }
 | 
						|
    });
 | 
						|
 | 
						|
    gulp.start('watch');
 | 
						|
};
 |