diff --git a/scripts/generate-i18n-messages.ts b/scripts/generate-i18n-messages.ts index a31c993d..312a3e5a 100644 --- a/scripts/generate-i18n-messages.ts +++ b/scripts/generate-i18n-messages.ts @@ -139,6 +139,20 @@ async function generateI18nMessages() { "messages_defaultSet" ); + fs.writeFileSync( + pathJoin(messagesDirPath, "LanguageTag.ts"), + Buffer.from( + [ + ``, + `export const languageTags = ${JSON.stringify(languages, null, 2)} as const;`, + ``, + `export type LanguageTag = typeof languageTags[number];`, + `` + ].join("\n"), + "utf8" + ) + ); + const generatedFileHeader = [ `//This code was automatically generated by running ${pathRelative( thisCodebaseRootDirPath, diff --git a/src/bin/keycloakify/generateResources/generateMessageProperties.ts b/src/bin/keycloakify/generateResources/generateMessageProperties.ts index 4ae374b2..48c54a3e 100644 --- a/src/bin/keycloakify/generateResources/generateMessageProperties.ts +++ b/src/bin/keycloakify/generateResources/generateMessageProperties.ts @@ -29,7 +29,9 @@ export function generateMessageProperties(params: { Object.fromEntries( fs .readdirSync(baseMessagesDirPath) - .filter(baseName => baseName !== "index.ts") + .filter( + basename => basename !== "index.ts" && basename !== "LanguageTag.ts" + ) .map(basename => ({ languageTag: basename.replace(/\.ts$/, ""), filePath: pathJoin(baseMessagesDirPath, basename)