UNPKG

@spartacus/setup

Version:

Includes features that makes Spartacus and it's setup easier and streamlined.

20 lines 2.98 kB
export function getRequestOrigin(req) { // If express is resolving and trusting X-Forwarded-Host, we want to take it // into an account to properly generate request origin. const trustProxyFn = req.app.get('trust proxy fn'); let forwardedHost = req.get('X-Forwarded-Host'); if (forwardedHost && trustProxyFn(req.connection.remoteAddress, 0)) { if (forwardedHost.indexOf(',') !== -1) { // Note: X-Forwarded-Host is normally only ever a // single value, but this is to be safe. forwardedHost = forwardedHost .substring(0, forwardedHost.indexOf(',')) .trimRight(); } return req.protocol + '://' + forwardedHost; } else { return req.protocol + '://' + req.get('host'); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1vcmlnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb3JlLWxpYnMvc2V0dXAvc3NyL3V0aWwvcmVxdWVzdC1vcmlnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEdBQVk7SUFDM0MsNEVBQTRFO0lBQzVFLHVEQUF1RDtJQUN2RCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25ELElBQUksYUFBYSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNoRCxJQUFJLGFBQWEsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDbEUsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3JDLGlEQUFpRDtZQUNqRCw4Q0FBOEM7WUFDOUMsYUFBYSxHQUFHLGFBQWE7aUJBQzFCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDeEMsU0FBUyxFQUFFLENBQUM7U0FDaEI7UUFDRCxPQUFPLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxHQUFHLGFBQWEsQ0FBQztLQUM3QztTQUFNO1FBQ0wsT0FBTyxHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQy9DO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlcXVlc3RPcmlnaW4ocmVxOiBSZXF1ZXN0KTogc3RyaW5nIHtcbiAgLy8gSWYgZXhwcmVzcyBpcyByZXNvbHZpbmcgYW5kIHRydXN0aW5nIFgtRm9yd2FyZGVkLUhvc3QsIHdlIHdhbnQgdG8gdGFrZSBpdFxuICAvLyBpbnRvIGFuIGFjY291bnQgdG8gcHJvcGVybHkgZ2VuZXJhdGUgcmVxdWVzdCBvcmlnaW4uXG4gIGNvbnN0IHRydXN0UHJveHlGbiA9IHJlcS5hcHAuZ2V0KCd0cnVzdCBwcm94eSBmbicpO1xuICBsZXQgZm9yd2FyZGVkSG9zdCA9IHJlcS5nZXQoJ1gtRm9yd2FyZGVkLUhvc3QnKTtcbiAgaWYgKGZvcndhcmRlZEhvc3QgJiYgdHJ1c3RQcm94eUZuKHJlcS5jb25uZWN0aW9uLnJlbW90ZUFkZHJlc3MsIDApKSB7XG4gICAgaWYgKGZvcndhcmRlZEhvc3QuaW5kZXhPZignLCcpICE9PSAtMSkge1xuICAgICAgLy8gTm90ZTogWC1Gb3J3YXJkZWQtSG9zdCBpcyBub3JtYWxseSBvbmx5IGV2ZXIgYVxuICAgICAgLy8gICAgICAgc2luZ2xlIHZhbHVlLCBidXQgdGhpcyBpcyB0byBiZSBzYWZlLlxuICAgICAgZm9yd2FyZGVkSG9zdCA9IGZvcndhcmRlZEhvc3RcbiAgICAgICAgLnN1YnN0cmluZygwLCBmb3J3YXJkZWRIb3N0LmluZGV4T2YoJywnKSlcbiAgICAgICAgLnRyaW1SaWdodCgpO1xuICAgIH1cbiAgICByZXR1cm4gcmVxLnByb3RvY29sICsgJzovLycgKyBmb3J3YXJkZWRIb3N0O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiByZXEucHJvdG9jb2wgKyAnOi8vJyArIHJlcS5nZXQoJ2hvc3QnKTtcbiAgfVxufVxuIl19