import { assert } from "tsafe/assert"; import { Reflect } from "tsafe/Reflect"; import type { BuildOptions } from "../buildOptions"; import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions"; type BuildOptionsLike = { groupId: string; artifactId: string; themeVersion: string; }; { const buildOptions = Reflect(); assert(); } export function generatePom(params: { keycloakAccountV1Version: KeycloakAccountV1Version; keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion; buildOptions: BuildOptionsLike; }) { const { keycloakAccountV1Version, keycloakThemeAdditionalInfoExtensionVersion, buildOptions } = params; const { pomFileCode } = (function generatePomFileCode(): { pomFileCode: string; } { const pomFileCode = [ ``, ``, ` 4.0.0`, ` ${buildOptions.groupId}`, ` ${buildOptions.artifactId}`, ` ${buildOptions.themeVersion}`, ` ${buildOptions.artifactId}`, ` `, ` jar`, ` `, ` UTF-8`, ` `, ...(keycloakAccountV1Version !== null && keycloakThemeAdditionalInfoExtensionVersion !== null ? [ ` `, ` `, ` `, ` org.apache.maven.plugins`, ` maven-shade-plugin`, ` 3.5.1`, ` `, ` `, ` package`, ` `, ` shade`, ` `, ` `, ` `, ` `, ` `, ` `, ` `, ...(keycloakAccountV1Version !== null ? [ ` `, ` io.phasetwo.keycloak`, ` keycloak-account-v1`, ` ${keycloakAccountV1Version}`, ` ` ] : []), ...(keycloakThemeAdditionalInfoExtensionVersion !== null ? [ ` `, ` dev.jcputney`, ` keycloak-theme-additional-info-extension`, ` ${keycloakThemeAdditionalInfoExtensionVersion}`, ` ` ] : []), ` `, `` ] : []) ].join("\n"); return { pomFileCode }; })(); return { pomFileCode }; }