@edflex-tech/keycloakify
Version:
Keycloak theme generator for Reacts app
74 lines • 3.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createKeycloakAdapter = void 0;
/**
* NOTE: This is just a slightly modified version of the default adapter in keycloak-js
* The goal here is just to be able to inject search param in url before keycloak redirect.
* Our use case for it is to pass over the login screen the states of useGlobalState
* namely isDarkModeEnabled, lgn...
*/
function createKeycloakAdapter(params) {
var keycloakInstance = params.keycloakInstance, transformUrlBeforeRedirect = params.transformUrlBeforeRedirect, _a = params.getRedirectMethod, getRedirectMethod = _a === void 0 ? function () { return "overwrite location.href"; } : _a;
var neverResolvingPromise = Object.defineProperties(new Promise(function () { }), {
"success": { "value": function () { } },
"error": { "value": function () { } },
});
return {
"login": function (options) {
var newHref = transformUrlBeforeRedirect(keycloakInstance.createLoginUrl(options));
switch (getRedirectMethod()) {
case "location.replace":
window.location.replace(newHref);
break;
case "overwrite location.href":
window.location.href = newHref;
break;
}
return neverResolvingPromise;
},
"register": function (options) {
var newHref = transformUrlBeforeRedirect(keycloakInstance.createRegisterUrl(options));
switch (getRedirectMethod()) {
case "location.replace":
window.location.replace(newHref);
break;
case "overwrite location.href":
window.location.href = newHref;
break;
}
return neverResolvingPromise;
},
"logout": function (options) {
window.location.replace(transformUrlBeforeRedirect(keycloakInstance.createLogoutUrl(options)));
return neverResolvingPromise;
},
"accountManagement": function () {
var accountUrl = transformUrlBeforeRedirect(keycloakInstance.createAccountUrl());
if (accountUrl === "undefined") {
throw new Error("Not supported by the OIDC server");
}
switch (getRedirectMethod()) {
case "location.replace":
window.location.replace(accountUrl);
break;
case "overwrite location.href":
window.location.href = accountUrl;
break;
}
return neverResolvingPromise;
},
"redirectUri": function (options) {
if (options && options.redirectUri) {
return options.redirectUri;
}
else if (keycloakInstance.redirectUri) {
return keycloakInstance.redirectUri;
}
else {
return window.location.href;
}
},
};
}
exports.createKeycloakAdapter = createKeycloakAdapter;
//# sourceMappingURL=keycloakJsAdapter.js.map