UNPKG

@keycloakify/keycloak-admin-ui

Version:

<p align="center"> <img src="https://github.com/user-attachments/assets/a6aaebbd-8f59-474d-9827-c282f4527aca"> </p> <p align="center"> <i>Repackaged Keycloak Admin UI</i> <br> <br> <a href="https://github.com/keycloakify/keycloak-adm

70 lines (60 loc) 1.72 kB
/* eslint-disable */ // @ts-nocheck import KeycloakAdminClient, { fetchWithError, } from "@keycloak/keycloak-admin-client"; import { getAuthorizationHeaders } from "../../utils/getAuthorizationHeaders"; import { joinPath } from "../../utils/joinPath"; import { UiRealmInfo } from "./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 postAdminUI<T>( adminClient: KeycloakAdminClient, endpoint: string, body: unknown, ): Promise<T | undefined> { const accessToken = await adminClient.getAccessToken(); const baseUrl = adminClient.baseUrl; const response = await fetchWithError( joinPath( baseUrl, "admin/realms", encodeURIComponent(adminClient.realmName), endpoint, ), { method: "POST", headers: { ...getAuthorizationHeaders(accessToken), "Content-Type": "application/json", }, body: JSON.stringify(body), }, ); const text = await response.text(); return text ? JSON.parse(text) : undefined; } export async function fetchRealmInfo( adminClient: KeycloakAdminClient, ): Promise<UiRealmInfo> { return fetchAdminUI(adminClient, `ui-ext/info`); }