Skip to content

Commit

Permalink
proxyRewrite: Use new middlewareUtil module
Browse files Browse the repository at this point in the history
  • Loading branch information
RandomByte committed Apr 14, 2020
1 parent f85ccce commit d910f8f
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
3 changes: 2 additions & 1 deletion lib/middleware/MiddlewareManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,10 @@ class MiddlewareManager {
if (useProxy) {
await this.addMiddleware("proxyRewrite", {
wrapperCallback: ({middleware: proxyRewriteModule}) => {
return ({resources}) => {
return ({resources, middlewareUtil}) => {
return proxyRewriteModule({
resources,
middlewareUtil,
configuration: proxyConfig,
cdnUrl: this.options.cdnUrl
});
Expand Down
13 changes: 7 additions & 6 deletions lib/middleware/proxyRewrite.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
const log = require("@ui5/logger").getLogger("server:middleware:proxyRewrite");

function createMiddleware({resources, configuration, cdnUrl}) {
function createMiddleware({resources, middlewareUtil, configuration, cdnUrl}) {
const rewriteRootPaths = configuration.rewriteRootPaths;

const cacheBusterRegex = /~.*~[A-Z0-9]?\/?/;
const preloadRegex = /^.*(?:Component-preload\.js|library-preload\.js|library-preload\.json)$/i;

return function proxyRewrite(req, res, next) {
const pathname = middlewareUtil.getPathname(req);
const rewriteApplicable = Object.keys(rewriteRootPaths).some((resourceRootPath) => {
return req.path.indexOf(resourceRootPath) !== -1;
return pathname.indexOf(resourceRootPath) !== -1;
});

if (!rewriteApplicable) {
Expand All @@ -17,15 +18,15 @@ function createMiddleware({resources, configuration, cdnUrl}) {
return;
}

log.verbose(`Normalizing ${req.path}...`);
log.verbose(`Normalizing ${pathname}...`);
// Normalize URL
normalizeRequestPath(req.path)
normalizeRequestPath(pathname)
.catch((err) => {
log.error(`Failed to normalize ${req.path}. Error ${err.message}`);
log.error(`Failed to normalize ${pathname}. Error ${err.message}`);
return "";
})
.then((normalizedUrl) => {
req.url = req.url.replace(req.path, normalizedUrl);
req.url = req.url.replace(pathname, normalizedUrl);
log.verbose(`Normalized ${req.originalUrl}`);
log.verbose(` to ${req.url}`); // will be used for internal resolution
handleSpecialRequests(req, res, next);
Expand Down
1 change: 1 addition & 0 deletions lib/proxyConfiguration.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ async function getConfigurationForProject(tree) {
if (project.specVersion !== "2.2a") {
log.warn(`Project ${project.metadata.name} defines specification version ${project.specVersion}. ` +
`Some proxy configuration features require projects to define specification version 2.2a`);
return;
}
log.verbose(`Using ABAP URI ${project.metadata.abapUri} from metadata of project ${project.metadata.name}`);
let prefix = "";
Expand Down

0 comments on commit d910f8f

Please sign in to comment.