UNPKG

1.4 kBJavaScriptView Raw
1"use strict";
2/* eslint-disable valid-jsdoc */
3Object.defineProperty(exports, "__esModule", { value: true });
4exports.parseSubdomain = exports.replaceSubdomain = void 0;
5var url_1 = require("url");
6/**
7 * @hidden
8 */
9function replaceSubdomain(issuerUrl, xsuaaUrl) {
10 if (!isValidURL(issuerUrl)) {
11 throw new Error('JWT issuer URL is not valid "' + issuerUrl + '".');
12 }
13 if (!isValidURL(xsuaaUrl)) {
14 throw new Error('XSUAA URL is not valid "' + xsuaaUrl + '".');
15 }
16 var subdomain = parseSubdomain(issuerUrl);
17 return replace(xsuaaUrl, subdomain);
18}
19exports.replaceSubdomain = replaceSubdomain;
20function replace(xsuaaUrl, subdomain) {
21 var parsedXsuaaUrl = new url_1.URL(xsuaaUrl);
22 var scheme = parsedXsuaaUrl.protocol + '//';
23 var xsuaaDomain = xsuaaUrl.slice(xsuaaUrl.indexOf('.'));
24 return scheme + subdomain + xsuaaDomain;
25}
26/**
27 * @hidden
28 */
29function parseSubdomain(issuerUrl) {
30 var url = new url_1.URL(issuerUrl);
31 var host = url.host;
32 if (!host || host.indexOf('.') === -1) {
33 throw new Error('Failed to determine sub-domain: invalid host in "' + issuerUrl + '".');
34 }
35 return host.split('.')[0];
36}
37exports.parseSubdomain = parseSubdomain;
38function isValidURL(url) {
39 try {
40 new url_1.URL(url);
41 return true;
42 }
43 catch (_) {
44 return false;
45 }
46}
47//# sourceMappingURL=subdomain-replacer.js.map
\No newline at end of file