@sap-cloud-sdk/core
Version:
SAP Cloud SDK for JavaScript core
47 lines • 1.4 kB
JavaScript
/* eslint-disable valid-jsdoc */
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseSubdomain = exports.replaceSubdomain = void 0;
var url_1 = require("url");
/**
* @hidden
*/
function replaceSubdomain(issuerUrl, xsuaaUrl) {
if (!isValidURL(issuerUrl)) {
throw new Error('JWT issuer URL is not valid "' + issuerUrl + '".');
}
if (!isValidURL(xsuaaUrl)) {
throw new Error('XSUAA URL is not valid "' + xsuaaUrl + '".');
}
var subdomain = parseSubdomain(issuerUrl);
return replace(xsuaaUrl, subdomain);
}
exports.replaceSubdomain = replaceSubdomain;
function replace(xsuaaUrl, subdomain) {
var parsedXsuaaUrl = new url_1.URL(xsuaaUrl);
var scheme = parsedXsuaaUrl.protocol + '//';
var xsuaaDomain = xsuaaUrl.slice(xsuaaUrl.indexOf('.'));
return scheme + subdomain + xsuaaDomain;
}
/**
* @hidden
*/
function parseSubdomain(issuerUrl) {
var url = new url_1.URL(issuerUrl);
var host = url.host;
if (!host || host.indexOf('.') === -1) {
throw new Error('Failed to determine sub-domain: invalid host in "' + issuerUrl + '".');
}
return host.split('.')[0];
}
exports.parseSubdomain = parseSubdomain;
function isValidURL(url) {
try {
new url_1.URL(url);
return true;
}
catch (_) {
return false;
}
}
//# sourceMappingURL=subdomain-replacer.js.map
;