UNPKG

@sap-cloud-sdk/core

Version:
47 lines 1.4 kB
"use strict"; /* 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