@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
37 lines (32 loc) • 1.09 kB
text/typescript
import KeycloakAdminClient, {
fetchWithError,
} from "@keycloak/keycloak-admin-client";
import { getAuthorizationHeaders } from "@keycloakify/keycloak-admin-ui/utils/getAuthorizationHeaders";
import { joinPath } from "@keycloakify/keycloak-admin-ui/utils/joinPath";
import { UiRealmInfo } from "@keycloakify/keycloak-admin-ui/context/auth/uiRealmInfo";
export async function fetchAdminUI<T>(
adminClient: KeycloakAdminClient,
endpoint: string,
query?: Record<string, string>,
): Promise<T> {
const accessToken = await adminClient.getAccessToken();
const baseUrl = adminClient.baseUrl;
const response = await fetchWithError(
joinPath(
baseUrl,
"admin/realms",
encodeURIComponent(adminClient.realmName),
endpoint,
) + (query ? "?" + new URLSearchParams(query) : ""),
{
method: "GET",
headers: getAuthorizationHeaders(accessToken),
},
);
return await response.json();
}
export async function fetchRealmInfo(
adminClient: KeycloakAdminClient,
): Promise<UiRealmInfo> {
return fetchAdminUI(adminClient, `ui-ext/info`);
}