keycloak_theme/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts

38 lines
1.8 KiB
TypeScript
Raw Normal View History

import { assert, type Equals } from "tsafe/assert";
import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions";
export function getKeycloakVersionRangeForJar(params: {
2024-05-12 21:23:20 +02:00
doesImplementAccountTheme: boolean;
keycloakAccountV1Version: KeycloakAccountV1Version;
keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion;
}): string | undefined {
2024-05-12 21:23:20 +02:00
const { keycloakAccountV1Version, keycloakThemeAdditionalInfoExtensionVersion, doesImplementAccountTheme } = params;
switch (keycloakAccountV1Version) {
case null:
switch (keycloakThemeAdditionalInfoExtensionVersion) {
case null:
2024-05-12 21:23:20 +02:00
return doesImplementAccountTheme ? "21-and-below" : "21-and-below";
case "1.1.5":
2024-05-12 21:23:20 +02:00
return doesImplementAccountTheme ? undefined : "22-and-above";
}
assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
case "0.3":
switch (keycloakThemeAdditionalInfoExtensionVersion) {
case null:
2024-05-12 21:23:20 +02:00
return doesImplementAccountTheme ? undefined : undefined;
case "1.1.5":
2024-05-12 21:23:20 +02:00
return doesImplementAccountTheme ? "23" : undefined;
}
assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
case "0.4":
switch (keycloakThemeAdditionalInfoExtensionVersion) {
case null:
2024-05-12 21:23:20 +02:00
return doesImplementAccountTheme ? undefined : undefined;
case "1.1.5":
2024-05-12 21:23:20 +02:00
return doesImplementAccountTheme ? "24-and-above" : undefined;
}
assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
}
}