Only buildJar function left to implement
This commit is contained in:
parent
824076f730
commit
3ad694d4de
@ -1,11 +1,11 @@
|
|||||||
import { assert, type Equals } from "tsafe/assert";
|
import { assert, type Equals } from "tsafe/assert";
|
||||||
import { exclude } from "tsafe/exclude";
|
import { exclude } from "tsafe/exclude";
|
||||||
import type { KeycloakAccountV1Versions, KeycloakThemeAdditionalInfoExtensionVersions } from "./extensionVersions";
|
import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions";
|
||||||
|
|
||||||
export async function buildJar(params: {
|
export async function buildJar(params: {
|
||||||
jarFileBasename: string;
|
jarFileBasename: string;
|
||||||
keycloakAccountV1Version: KeycloakAccountV1Versions;
|
keycloakAccountV1Version: KeycloakAccountV1Version;
|
||||||
keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersions;
|
keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion;
|
||||||
buildOptions: {
|
buildOptions: {
|
||||||
keycloakifyBuildDirPath: string;
|
keycloakifyBuildDirPath: string;
|
||||||
};
|
};
|
||||||
|
@ -1,7 +1,16 @@
|
|||||||
|
// NOTE: v0.5 is a dummy version.
|
||||||
export const keycloakAccountV1Versions = [null, "0.3", "0.4"] as const;
|
export const keycloakAccountV1Versions = [null, "0.3", "0.4"] as const;
|
||||||
|
|
||||||
export type KeycloakAccountV1Versions = (typeof keycloakAccountV1Versions)[number];
|
/**
|
||||||
|
* https://central.sonatype.com/artifact/io.phasetwo.keycloak/keycloak-account-v1
|
||||||
|
* https://github.com/p2-inc/keycloak-account-v1
|
||||||
|
*/
|
||||||
|
export type KeycloakAccountV1Version = (typeof keycloakAccountV1Versions)[number];
|
||||||
|
|
||||||
export const keycloakThemeAdditionalInfoExtensionVersions = [null, "0.1"] as const;
|
export const keycloakThemeAdditionalInfoExtensionVersions = [null, "1.1.5"] as const;
|
||||||
|
|
||||||
export type KeycloakThemeAdditionalInfoExtensionVersions = (typeof keycloakThemeAdditionalInfoExtensionVersions)[number];
|
/**
|
||||||
|
* https://central.sonatype.com/artifact/dev.jcputney/keycloak-theme-additional-info-extension
|
||||||
|
* https://github.com/jcputney/keycloak-theme-additional-info-extension
|
||||||
|
* */
|
||||||
|
export type KeycloakThemeAdditionalInfoExtensionVersion = (typeof keycloakThemeAdditionalInfoExtensionVersions)[number];
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import { assert } from "tsafe/assert";
|
import { assert } from "tsafe/assert";
|
||||||
import { Reflect } from "tsafe/Reflect";
|
import { Reflect } from "tsafe/Reflect";
|
||||||
import type { BuildOptions } from "../buildOptions";
|
import type { BuildOptions } from "../buildOptions";
|
||||||
|
import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions";
|
||||||
|
|
||||||
type BuildOptionsLike = {
|
type BuildOptionsLike = {
|
||||||
groupId: string;
|
groupId: string;
|
||||||
artifactId: string;
|
artifactId: string;
|
||||||
themeVersion: string;
|
themeVersion: string;
|
||||||
keycloakifyBuildDirPath: string;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -15,8 +15,13 @@ type BuildOptionsLike = {
|
|||||||
assert<typeof buildOptions extends BuildOptionsLike ? true : false>();
|
assert<typeof buildOptions extends BuildOptionsLike ? true : false>();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function generatePom(params: { buildOptions: BuildOptionsLike }) {
|
export function generatePom(params: {
|
||||||
const { buildOptions } = params;
|
keycloakAccountV1Version: KeycloakAccountV1Version;
|
||||||
|
keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion;
|
||||||
|
|
||||||
|
buildOptions: BuildOptionsLike;
|
||||||
|
}) {
|
||||||
|
const { keycloakAccountV1Version, keycloakThemeAdditionalInfoExtensionVersion, buildOptions } = params;
|
||||||
|
|
||||||
const { pomFileCode } = (function generatePomFileCode(): {
|
const { pomFileCode } = (function generatePomFileCode(): {
|
||||||
pomFileCode: string;
|
pomFileCode: string;
|
||||||
@ -36,6 +41,8 @@ export function generatePom(params: { buildOptions: BuildOptionsLike }) {
|
|||||||
` <properties>`,
|
` <properties>`,
|
||||||
` <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>`,
|
` <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>`,
|
||||||
` </properties>`,
|
` </properties>`,
|
||||||
|
...(keycloakAccountV1Version !== null && keycloakThemeAdditionalInfoExtensionVersion !== null
|
||||||
|
? [
|
||||||
` <build>`,
|
` <build>`,
|
||||||
` <plugins>`,
|
` <plugins>`,
|
||||||
` <plugin>`,
|
` <plugin>`,
|
||||||
@ -54,13 +61,28 @@ export function generatePom(params: { buildOptions: BuildOptionsLike }) {
|
|||||||
` </plugins>`,
|
` </plugins>`,
|
||||||
` </build>`,
|
` </build>`,
|
||||||
` <dependencies>`,
|
` <dependencies>`,
|
||||||
|
...(keycloakAccountV1Version !== null
|
||||||
|
? [
|
||||||
` <dependency>`,
|
` <dependency>`,
|
||||||
` <groupId>io.phasetwo.keycloak</groupId>`,
|
` <groupId>io.phasetwo.keycloak</groupId>`,
|
||||||
` <artifactId>keycloak-account-v1</artifactId>`,
|
` <artifactId>keycloak-account-v1</artifactId>`,
|
||||||
` <version>0.1</version>`,
|
` <version>${keycloakAccountV1Version}</version>`,
|
||||||
` </dependency>`,
|
` </dependency>`
|
||||||
|
]
|
||||||
|
: []),
|
||||||
|
...(keycloakThemeAdditionalInfoExtensionVersion !== null
|
||||||
|
? [
|
||||||
|
` <dependency>`,
|
||||||
|
` <groupId>dev.jcputney</groupId>`,
|
||||||
|
` <artifactId>keycloak-theme-additional-info-extension</artifactId>`,
|
||||||
|
` <version>${keycloakThemeAdditionalInfoExtensionVersion}</version>`,
|
||||||
|
` </dependency>`
|
||||||
|
]
|
||||||
|
: []),
|
||||||
` </dependencies>`,
|
` </dependencies>`,
|
||||||
`</project>`
|
`</project>`
|
||||||
|
]
|
||||||
|
: [])
|
||||||
].join("\n");
|
].join("\n");
|
||||||
|
|
||||||
return { pomFileCode };
|
return { pomFileCode };
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { assert, type Equals } from "tsafe/assert";
|
import { assert, type Equals } from "tsafe/assert";
|
||||||
import type { KeycloakAccountV1Versions, KeycloakThemeAdditionalInfoExtensionVersions } from "./extensionVersions";
|
import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions";
|
||||||
|
|
||||||
export function getKeycloakVersionRangeForJar(params: {
|
export function getKeycloakVersionRangeForJar(params: {
|
||||||
doesImplementAccountTheme: boolean;
|
doesImplementAccountTheme: boolean;
|
||||||
keycloakAccountV1Version: KeycloakAccountV1Versions;
|
keycloakAccountV1Version: KeycloakAccountV1Version;
|
||||||
keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersions;
|
keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion;
|
||||||
}): string | undefined {
|
}): string | undefined {
|
||||||
const { keycloakAccountV1Version, keycloakThemeAdditionalInfoExtensionVersion, doesImplementAccountTheme } = params;
|
const { keycloakAccountV1Version, keycloakThemeAdditionalInfoExtensionVersion, doesImplementAccountTheme } = params;
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ export function getKeycloakVersionRangeForJar(params: {
|
|||||||
switch (keycloakThemeAdditionalInfoExtensionVersion) {
|
switch (keycloakThemeAdditionalInfoExtensionVersion) {
|
||||||
case null:
|
case null:
|
||||||
return doesImplementAccountTheme ? "21-and-below" : "21-and-below";
|
return doesImplementAccountTheme ? "21-and-below" : "21-and-below";
|
||||||
case "0.1":
|
case "1.1.5":
|
||||||
return doesImplementAccountTheme ? undefined : "22-and-above";
|
return doesImplementAccountTheme ? undefined : "22-and-above";
|
||||||
}
|
}
|
||||||
assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
|
assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
|
||||||
@ -21,7 +21,7 @@ export function getKeycloakVersionRangeForJar(params: {
|
|||||||
switch (keycloakThemeAdditionalInfoExtensionVersion) {
|
switch (keycloakThemeAdditionalInfoExtensionVersion) {
|
||||||
case null:
|
case null:
|
||||||
return doesImplementAccountTheme ? undefined : undefined;
|
return doesImplementAccountTheme ? undefined : undefined;
|
||||||
case "0.1":
|
case "1.1.5":
|
||||||
return doesImplementAccountTheme ? "23" : undefined;
|
return doesImplementAccountTheme ? "23" : undefined;
|
||||||
}
|
}
|
||||||
assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
|
assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
|
||||||
@ -29,7 +29,7 @@ export function getKeycloakVersionRangeForJar(params: {
|
|||||||
switch (keycloakThemeAdditionalInfoExtensionVersion) {
|
switch (keycloakThemeAdditionalInfoExtensionVersion) {
|
||||||
case null:
|
case null:
|
||||||
return doesImplementAccountTheme ? undefined : undefined;
|
return doesImplementAccountTheme ? undefined : undefined;
|
||||||
case "0.1":
|
case "1.1.5":
|
||||||
return doesImplementAccountTheme ? "24-and-above" : undefined;
|
return doesImplementAccountTheme ? "24-and-above" : undefined;
|
||||||
}
|
}
|
||||||
assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
|
assert<Equals<typeof keycloakThemeAdditionalInfoExtensionVersion, never>>(false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user