24 lines
870 B
TypeScript
24 lines
870 B
TypeScript
import { WELL_KNOWN_DIRECTORY_BASE_NAME } from "keycloakify/bin/shared/constants";
|
|
import { assert } from "tsafe/assert";
|
|
|
|
/**
|
|
* This is an equivalent of process.env.PUBLIC_URL that you can use in Webpack projects.
|
|
* This works both in your main app and in your Keycloak theme.
|
|
*/
|
|
export const PUBLIC_URL = (() => {
|
|
const kcContext: { "x-keycloakify": { resourcesPath: string } } | undefined = (
|
|
window as any
|
|
).kcContext;
|
|
|
|
if (kcContext === undefined || process.env.NODE_ENV === "development") {
|
|
assert(
|
|
process.env.PUBLIC_URL !== undefined,
|
|
`If you use keycloakify/PUBLIC_URL you should be in Webpack and thus process.env.PUBLIC_URL should be defined`
|
|
);
|
|
|
|
return process.env.PUBLIC_URL;
|
|
}
|
|
|
|
return `${kcContext["x-keycloakify"].resourcesPath}/${WELL_KNOWN_DIRECTORY_BASE_NAME.DIST}`;
|
|
})();
|