UNPKG

@edflex-tech/keycloakify

Version:

Keycloak theme generator for Reacts app

74 lines 3.2 kB
"use strict"; 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