66 lines
2.4 KiB
TypeScript
Raw Normal View History

import { assert } from "tsafe/assert";
2024-05-20 15:48:51 +02:00
import {
keycloakAccountV1Versions,
keycloakThemeAdditionalInfoExtensionVersions
} from "./extensionVersions";
import { getKeycloakVersionRangeForJar } from "./getKeycloakVersionRangeForJar";
2024-06-09 09:15:16 +02:00
import { buildJar, BuildContextLike as BuildContextLike_buildJar } from "./buildJar";
import type { BuildContext } from "../../shared/buildContext";
2024-05-13 00:40:16 +02:00
2024-06-09 09:15:16 +02:00
export type BuildContextLike = BuildContextLike_buildJar & {
projectDirPath: string;
2024-05-13 00:40:16 +02:00
keycloakifyBuildDirPath: string;
recordIsImplementedByThemeType: BuildContext["recordIsImplementedByThemeType"];
jarTargets: BuildContext["jarTargets"];
2024-05-13 00:40:16 +02:00
};
2024-06-09 09:15:16 +02:00
assert<BuildContext extends BuildContextLike ? true : false>();
2024-05-20 15:48:51 +02:00
export async function buildJars(params: {
2024-06-10 07:57:12 +02:00
resourcesDirPath: string;
2024-06-09 09:15:16 +02:00
buildContext: BuildContextLike;
2024-05-20 15:48:51 +02:00
}): Promise<void> {
const { resourcesDirPath, buildContext } = params;
const doesImplementAccountTheme = buildContext.recordIsImplementedByThemeType.account;
await Promise.all(
keycloakAccountV1Versions
.map(keycloakAccountV1Version =>
keycloakThemeAdditionalInfoExtensionVersions.map(
keycloakThemeAdditionalInfoExtensionVersion => {
const keycloakVersionRange = getKeycloakVersionRangeForJar({
2024-05-12 21:23:20 +02:00
doesImplementAccountTheme,
keycloakAccountV1Version,
keycloakThemeAdditionalInfoExtensionVersion
});
if (keycloakVersionRange === undefined) {
return undefined;
}
const jarTarget = buildContext.jarTargets.find(
jarTarget =>
jarTarget.keycloakVersionRange === keycloakVersionRange
);
2024-05-20 15:48:51 +02:00
if (jarTarget === undefined) {
return undefined;
2024-05-20 15:48:51 +02:00
}
const { jarFileBasename } = jarTarget;
return buildJar({
jarFileBasename,
keycloakAccountV1Version,
2024-05-20 15:48:51 +02:00
keycloakThemeAdditionalInfoExtensionVersion,
resourcesDirPath,
buildContext
});
}
)
)
.flat()
);
}