Compiling build

This commit is contained in:
Joseph Garrone
2024-01-30 07:10:53 +01:00
parent 7c7ce159fe
commit fde34be270
6 changed files with 17 additions and 11 deletions

View File

@ -1,5 +1,5 @@
import type { AndByDiscriminatingKey } from "keycloakify/tools/AndByDiscriminatingKey"; import type { AndByDiscriminatingKey } from "keycloakify/tools/AndByDiscriminatingKey";
import { ftlValuesGlobalName } from "keycloakify/bin/keycloakify/ftlValuesGlobalName"; import { nameOfTheGlobal } from "keycloakify/bin/constants";
import type { KcContext } from "./KcContext"; import type { KcContext } from "./KcContext";
export type ExtendKcContext<KcContextExtension extends { pageId: string }> = [KcContextExtension] extends [never] export type ExtendKcContext<KcContextExtension extends { pageId: string }> = [KcContextExtension] extends [never]
@ -7,5 +7,5 @@ export type ExtendKcContext<KcContextExtension extends { pageId: string }> = [Kc
: AndByDiscriminatingKey<"pageId", KcContextExtension & KcContext.Common, KcContext>; : AndByDiscriminatingKey<"pageId", KcContextExtension & KcContext.Common, KcContext>;
export function getKcContextFromWindow<KcContextExtension extends { pageId: string } = never>(): ExtendKcContext<KcContextExtension> | undefined { export function getKcContextFromWindow<KcContextExtension extends { pageId: string } = never>(): ExtendKcContext<KcContextExtension> | undefined {
return typeof window === "undefined" ? undefined : (window as any)[ftlValuesGlobalName]; return typeof window === "undefined" ? undefined : (window as any)[nameOfTheGlobal];
} }

View File

@ -1,5 +1,5 @@
import cheerio from "cheerio"; import cheerio from "cheerio";
import { replaceImportsFromStaticInJsCode } from "../replacers/replaceImportsFromStaticInJsCode"; import { replaceImportsInJsCode } from "../replacers/replaceImportsInJsCode";
import { generateCssCodeToDefineGlobals } from "../replacers/replaceImportsInCssCode"; import { generateCssCodeToDefineGlobals } from "../replacers/replaceImportsInCssCode";
import { replaceImportsInInlineCssCode } from "../replacers/replaceImportsInInlineCssCode"; import { replaceImportsInInlineCssCode } from "../replacers/replaceImportsInInlineCssCode";
import * as fs from "fs"; import * as fs from "fs";
@ -10,8 +10,11 @@ import { assert } from "tsafe/assert";
import { type ThemeType, nameOfTheGlobal, basenameOfTheKeycloakifyResourcesDir } from "../../constants"; import { type ThemeType, nameOfTheGlobal, basenameOfTheKeycloakifyResourcesDir } from "../../constants";
export type BuildOptionsLike = { export type BuildOptionsLike = {
bundler: "vite" | "webpack";
themeVersion: string; themeVersion: string;
urlPathname: string | undefined; urlPathname: string | undefined;
reactAppBuildDirPath: string;
assetsDirPath: string;
}; };
assert<BuildOptions extends BuildOptionsLike ? true : false>(); assert<BuildOptions extends BuildOptionsLike ? true : false>();
@ -35,7 +38,7 @@ export function generateFtlFilesCodeFactory(params: {
assert(jsCode !== null); assert(jsCode !== null);
const { fixedJsCode } = replaceImportsFromStaticInJsCode({ jsCode, "bundler": "vite" }); const { fixedJsCode } = replaceImportsInJsCode({ jsCode, buildOptions });
$(element).text(fixedJsCode); $(element).text(fixedJsCode);
}); });

View File

@ -7,7 +7,7 @@ import { resources_common, lastKeycloakVersionWithAccountV1, accountV1ThemeName
import { downloadBuiltinKeycloakTheme } from "../../download-builtin-keycloak-theme"; import { downloadBuiltinKeycloakTheme } from "../../download-builtin-keycloak-theme";
import { transformCodebase } from "../../tools/transformCodebase"; import { transformCodebase } from "../../tools/transformCodebase";
export type BuildOptionsLike = { type BuildOptionsLike = {
keycloakifyBuildDirPath: string; keycloakifyBuildDirPath: string;
cacheDirPath: string; cacheDirPath: string;
}; };

View File

@ -6,7 +6,7 @@ import type { BuildOptions } from "../buildOptions";
import { type ThemeType, accountV1ThemeName } from "../../constants"; import { type ThemeType, accountV1ThemeName } from "../../constants";
import { bringInAccountV1 } from "./bringInAccountV1"; import { bringInAccountV1 } from "./bringInAccountV1";
export type BuildOptionsLike = { type BuildOptionsLike = {
groupId: string; groupId: string;
artifactId: string; artifactId: string;
themeVersion: string; themeVersion: string;

View File

@ -1,7 +1,7 @@
import { transformCodebase } from "../../tools/transformCodebase"; import { transformCodebase } from "../../tools/transformCodebase";
import * as fs from "fs"; import * as fs from "fs";
import { join as pathJoin, resolve as pathResolve } from "path"; import { join as pathJoin, resolve as pathResolve } from "path";
import { replaceImportsFromStaticInJsCode } from "../replacers/replaceImportsFromStaticInJsCode"; import { replaceImportsInJsCode } from "../replacers/replaceImportsInJsCode";
import { replaceImportsInCssCode } from "../replacers/replaceImportsInCssCode"; import { replaceImportsInCssCode } from "../replacers/replaceImportsInCssCode";
import { generateFtlFilesCodeFactory, loginThemePageIds, accountThemePageIds } from "../generateFtl"; import { generateFtlFilesCodeFactory, loginThemePageIds, accountThemePageIds } from "../generateFtl";
import { import {
@ -22,12 +22,15 @@ import { generateMessageProperties } from "./generateMessageProperties";
import { readStaticResourcesUsage } from "./readStaticResourcesUsage"; import { readStaticResourcesUsage } from "./readStaticResourcesUsage";
export type BuildOptionsLike = { export type BuildOptionsLike = {
bundler: "vite" | "webpack";
extraThemeProperties: string[] | undefined; extraThemeProperties: string[] | undefined;
themeVersion: string; themeVersion: string;
loginThemeResourcesFromKeycloakVersion: string; loginThemeResourcesFromKeycloakVersion: string;
keycloakifyBuildDirPath: string; keycloakifyBuildDirPath: string;
reactAppBuildDirPath: string; reactAppBuildDirPath: string;
cacheDirPath: string; cacheDirPath: string;
assetsDirPath: string;
urlPathname: string | undefined;
}; };
assert<BuildOptions extends BuildOptionsLike ? true : false>(); assert<BuildOptions extends BuildOptionsLike ? true : false>();
@ -98,9 +101,9 @@ export async function generateTheme(params: {
} }
if (/\.js?$/i.test(filePath)) { if (/\.js?$/i.test(filePath)) {
const { fixedJsCode } = replaceImportsFromStaticInJsCode({ const { fixedJsCode } = replaceImportsInJsCode({
"jsCode": sourceCode.toString("utf8"), "jsCode": sourceCode.toString("utf8"),
"bundler": "vite" buildOptions
}); });
return { "modifiedSourceCode": Buffer.from(fixedJsCode, "utf8") }; return { "modifiedSourceCode": Buffer.from(fixedJsCode, "utf8") };

View File

@ -1,11 +1,11 @@
import type { KcContext } from "./KcContext"; import type { KcContext } from "./KcContext";
import type { AndByDiscriminatingKey } from "keycloakify/tools/AndByDiscriminatingKey"; import type { AndByDiscriminatingKey } from "keycloakify/tools/AndByDiscriminatingKey";
import { ftlValuesGlobalName } from "keycloakify/bin/keycloakify/ftlValuesGlobalName"; import { nameOfTheGlobal } from "keycloakify/bin/constants";
export type ExtendKcContext<KcContextExtension extends { pageId: string }> = [KcContextExtension] extends [never] export type ExtendKcContext<KcContextExtension extends { pageId: string }> = [KcContextExtension] extends [never]
? KcContext ? KcContext
: AndByDiscriminatingKey<"pageId", KcContextExtension & KcContext.Common, KcContext>; : AndByDiscriminatingKey<"pageId", KcContextExtension & KcContext.Common, KcContext>;
export function getKcContextFromWindow<KcContextExtension extends { pageId: string } = never>(): ExtendKcContext<KcContextExtension> | undefined { export function getKcContextFromWindow<KcContextExtension extends { pageId: string } = never>(): ExtendKcContext<KcContextExtension> | undefined {
return typeof window === "undefined" ? undefined : (window as any)[ftlValuesGlobalName]; return typeof window === "undefined" ? undefined : (window as any)[nameOfTheGlobal];
} }