58 lines
2.3 KiB
TypeScript
58 lines
2.3 KiB
TypeScript
|
import { assert } from "tsafe/assert";
|
||
|
import { exclude } from "tsafe/exclude";
|
||
|
import { keycloakAccountV1Versions, keycloakThemeAdditionalInfoExtensionVersions } from "./extensionVersions";
|
||
|
import { getKeycloakVersionRangeForJar } from "./getKeycloakVersionRangeForJar";
|
||
|
import { buildJar } from "./buildJar";
|
||
|
|
||
|
export async function buildJars(params: {
|
||
|
doImplementAccountTheme: boolean;
|
||
|
buildOptions: {
|
||
|
keycloakifyBuildDirPath: string;
|
||
|
};
|
||
|
}): Promise<{ lastJarFileBasename: string }> {
|
||
|
const { doImplementAccountTheme, buildOptions } = params;
|
||
|
|
||
|
let lastJarFileBasename: string | undefined = undefined;
|
||
|
|
||
|
await Promise.all(
|
||
|
keycloakAccountV1Versions
|
||
|
.map(keycloakAccountV1Version =>
|
||
|
keycloakThemeAdditionalInfoExtensionVersions
|
||
|
.map(keycloakThemeAdditionalInfoExtensionVersion => {
|
||
|
const keycloakVersionRange = getKeycloakVersionRangeForJar({
|
||
|
doImplementAccountTheme,
|
||
|
keycloakAccountV1Version,
|
||
|
keycloakThemeAdditionalInfoExtensionVersion
|
||
|
});
|
||
|
|
||
|
if (keycloakVersionRange === undefined) {
|
||
|
return undefined;
|
||
|
}
|
||
|
|
||
|
return { keycloakThemeAdditionalInfoExtensionVersion, keycloakVersionRange };
|
||
|
})
|
||
|
.filter(exclude(undefined))
|
||
|
.map(({ keycloakThemeAdditionalInfoExtensionVersion, keycloakVersionRange }) => {
|
||
|
const jarFileBasename = `keycloak-theme-for-kc-${keycloakVersionRange}.jar`;
|
||
|
|
||
|
lastJarFileBasename = jarFileBasename;
|
||
|
|
||
|
return { keycloakThemeAdditionalInfoExtensionVersion, jarFileBasename };
|
||
|
})
|
||
|
.map(({ keycloakThemeAdditionalInfoExtensionVersion, jarFileBasename }) =>
|
||
|
buildJar({
|
||
|
jarFileBasename,
|
||
|
keycloakAccountV1Version,
|
||
|
keycloakThemeAdditionalInfoExtensionVersion,
|
||
|
buildOptions
|
||
|
})
|
||
|
)
|
||
|
)
|
||
|
.flat()
|
||
|
);
|
||
|
|
||
|
assert(lastJarFileBasename !== undefined);
|
||
|
|
||
|
return { lastJarFileBasename };
|
||
|
}
|