Rename .create() by .build() for i18nBuilder

This commit is contained in:
Joseph Garrone 2024-09-21 23:21:15 +02:00
parent b3c4208e44
commit 20cdbb6185
7 changed files with 36 additions and 41 deletions

View File

@ -4,7 +4,7 @@ import type {
} from "../messages_defaultSet/types"; } from "../messages_defaultSet/types";
import { type ReturnTypeOfCreateGetI18n, createGetI18n } from "./getI18n"; import { type ReturnTypeOfCreateGetI18n, createGetI18n } from "./getI18n";
export type i18nBuilder< export type I18nBuilder<
ThemeName extends string = never, ThemeName extends string = never,
MessageKey_themeDefined extends string = never, MessageKey_themeDefined extends string = never,
LanguageTag_notInDefaultSet extends string = never, LanguageTag_notInDefaultSet extends string = never,
@ -14,7 +14,7 @@ export type i18nBuilder<
| "withCustomTranslations" = never | "withCustomTranslations" = never
> = Omit< > = Omit<
{ {
withThemeName: <ThemeName extends string>() => i18nBuilder< withThemeName: <ThemeName extends string>() => I18nBuilder<
ThemeName, ThemeName,
MessageKey_themeDefined, MessageKey_themeDefined,
LanguageTag_notInDefaultSet, LanguageTag_notInDefaultSet,
@ -29,7 +29,7 @@ export type i18nBuilder<
default: Record<MessageKey_defaultSet, string>; default: Record<MessageKey_defaultSet, string>;
}>; }>;
}; };
}) => i18nBuilder< }) => I18nBuilder<
ThemeName, ThemeName,
MessageKey_themeDefined, MessageKey_themeDefined,
LanguageTag_notInDefaultSet, LanguageTag_notInDefaultSet,
@ -44,13 +44,13 @@ export type i18nBuilder<
string | Record<ThemeName, string> string | Record<ThemeName, string>
>; >;
}> }>
) => i18nBuilder< ) => I18nBuilder<
ThemeName, ThemeName,
MessageKey_themeDefined, MessageKey_themeDefined,
LanguageTag_notInDefaultSet, LanguageTag_notInDefaultSet,
ExcludedMethod | "withCustomTranslations" ExcludedMethod | "withCustomTranslations"
>; >;
create: () => ReturnTypeOfCreateGetI18n< build: () => ReturnTypeOfCreateGetI18n<
MessageKey_themeDefined, MessageKey_themeDefined,
LanguageTag_notInDefaultSet LanguageTag_notInDefaultSet
>; >;
@ -58,7 +58,7 @@ export type i18nBuilder<
ExcludedMethod ExcludedMethod
>; >;
function createi18nBuilder< function createI18nBuilder<
ThemeName extends string = never, ThemeName extends string = never,
MessageKey_themeDefined extends string = never, MessageKey_themeDefined extends string = never,
LanguageTag_notInDefaultSet extends string = never LanguageTag_notInDefaultSet extends string = never
@ -77,30 +77,30 @@ function createi18nBuilder<
string | Record<ThemeName, string> string | Record<ThemeName, string>
>; >;
}>; }>;
}): i18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet> { }): I18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet> {
const i18nBuilder: i18nBuilder< const i18nBuilder: I18nBuilder<
ThemeName, ThemeName,
MessageKey_themeDefined, MessageKey_themeDefined,
LanguageTag_notInDefaultSet LanguageTag_notInDefaultSet
> = { > = {
withThemeName: () => withThemeName: () =>
createi18nBuilder({ createI18nBuilder({
extraLanguageTranslations: params.extraLanguageTranslations, extraLanguageTranslations: params.extraLanguageTranslations,
messagesByLanguageTag_themeDefined: messagesByLanguageTag_themeDefined:
params.messagesByLanguageTag_themeDefined as any params.messagesByLanguageTag_themeDefined as any
}), }),
withExtraLanguages: extraLanguageTranslations => withExtraLanguages: extraLanguageTranslations =>
createi18nBuilder({ createI18nBuilder({
extraLanguageTranslations, extraLanguageTranslations,
messagesByLanguageTag_themeDefined: messagesByLanguageTag_themeDefined:
params.messagesByLanguageTag_themeDefined as any params.messagesByLanguageTag_themeDefined as any
}), }),
withCustomTranslations: messagesByLanguageTag_themeDefined => withCustomTranslations: messagesByLanguageTag_themeDefined =>
createi18nBuilder({ createI18nBuilder({
extraLanguageTranslations: params.extraLanguageTranslations, extraLanguageTranslations: params.extraLanguageTranslations,
messagesByLanguageTag_themeDefined messagesByLanguageTag_themeDefined
}), }),
create: () => build: () =>
createGetI18n({ createGetI18n({
extraLanguageTranslations: params.extraLanguageTranslations, extraLanguageTranslations: params.extraLanguageTranslations,
messagesByLanguageTag_themeDefined: messagesByLanguageTag_themeDefined:
@ -111,7 +111,7 @@ function createi18nBuilder<
return i18nBuilder; return i18nBuilder;
} }
export const i18nBuilder = createi18nBuilder({ export const i18nBuilder = createI18nBuilder({
extraLanguageTranslations: {}, extraLanguageTranslations: {},
messagesByLanguageTag_themeDefined: {} messagesByLanguageTag_themeDefined: {}
}); });

View File

@ -1,3 +1,3 @@
export type { KcContextLike } from "./getI18n";
export { i18nBuilder } from "./i18nBuilder"; export { i18nBuilder } from "./i18nBuilder";
export type { KcContextLike } from "./getI18n";
export type { MessageKey as MessageKey_defaultSet } from "../messages_defaultSet/types"; export type { MessageKey as MessageKey_defaultSet } from "../messages_defaultSet/types";

View File

@ -4,7 +4,7 @@ import type {
} from "../messages_defaultSet/types"; } from "../messages_defaultSet/types";
import { type ReturnTypeOfCreateUseI18n, createUseI18n } from "../withJsx/useI18n"; import { type ReturnTypeOfCreateUseI18n, createUseI18n } from "../withJsx/useI18n";
export type i18nBuilder< export type I18nBuilder<
ThemeName extends string = never, ThemeName extends string = never,
MessageKey_themeDefined extends string = never, MessageKey_themeDefined extends string = never,
LanguageTag_notInDefaultSet extends string = never, LanguageTag_notInDefaultSet extends string = never,
@ -14,7 +14,7 @@ export type i18nBuilder<
| "withCustomTranslations" = never | "withCustomTranslations" = never
> = Omit< > = Omit<
{ {
withThemeName: <ThemeName extends string>() => i18nBuilder< withThemeName: <ThemeName extends string>() => I18nBuilder<
ThemeName, ThemeName,
MessageKey_themeDefined, MessageKey_themeDefined,
LanguageTag_notInDefaultSet, LanguageTag_notInDefaultSet,
@ -29,7 +29,7 @@ export type i18nBuilder<
default: Record<MessageKey_defaultSet, string>; default: Record<MessageKey_defaultSet, string>;
}>; }>;
}; };
}) => i18nBuilder< }) => I18nBuilder<
ThemeName, ThemeName,
MessageKey_themeDefined, MessageKey_themeDefined,
LanguageTag_notInDefaultSet, LanguageTag_notInDefaultSet,
@ -44,13 +44,13 @@ export type i18nBuilder<
string | Record<ThemeName, string> string | Record<ThemeName, string>
>; >;
}> }>
) => i18nBuilder< ) => I18nBuilder<
ThemeName, ThemeName,
MessageKey_themeDefined, MessageKey_themeDefined,
LanguageTag_notInDefaultSet, LanguageTag_notInDefaultSet,
ExcludedMethod | "withCustomTranslations" ExcludedMethod | "withCustomTranslations"
>; >;
create: () => ReturnTypeOfCreateUseI18n< build: () => ReturnTypeOfCreateUseI18n<
MessageKey_themeDefined, MessageKey_themeDefined,
LanguageTag_notInDefaultSet LanguageTag_notInDefaultSet
>; >;
@ -58,7 +58,7 @@ export type i18nBuilder<
ExcludedMethod ExcludedMethod
>; >;
function createi18nBuilder< function createI18nBuilder<
ThemeName extends string = never, ThemeName extends string = never,
MessageKey_themeDefined extends string = never, MessageKey_themeDefined extends string = never,
LanguageTag_notInDefaultSet extends string = never LanguageTag_notInDefaultSet extends string = never
@ -77,30 +77,30 @@ function createi18nBuilder<
string | Record<ThemeName, string> string | Record<ThemeName, string>
>; >;
}>; }>;
}): i18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet> { }): I18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet> {
const i18nBuilder: i18nBuilder< const i18nBuilder: I18nBuilder<
ThemeName, ThemeName,
MessageKey_themeDefined, MessageKey_themeDefined,
LanguageTag_notInDefaultSet LanguageTag_notInDefaultSet
> = { > = {
withThemeName: () => withThemeName: () =>
createi18nBuilder({ createI18nBuilder({
extraLanguageTranslations: params.extraLanguageTranslations, extraLanguageTranslations: params.extraLanguageTranslations,
messagesByLanguageTag_themeDefined: messagesByLanguageTag_themeDefined:
params.messagesByLanguageTag_themeDefined as any params.messagesByLanguageTag_themeDefined as any
}), }),
withExtraLanguages: extraLanguageTranslations => withExtraLanguages: extraLanguageTranslations =>
createi18nBuilder({ createI18nBuilder({
extraLanguageTranslations, extraLanguageTranslations,
messagesByLanguageTag_themeDefined: messagesByLanguageTag_themeDefined:
params.messagesByLanguageTag_themeDefined as any params.messagesByLanguageTag_themeDefined as any
}), }),
withCustomTranslations: messagesByLanguageTag_themeDefined => withCustomTranslations: messagesByLanguageTag_themeDefined =>
createi18nBuilder({ createI18nBuilder({
extraLanguageTranslations: params.extraLanguageTranslations, extraLanguageTranslations: params.extraLanguageTranslations,
messagesByLanguageTag_themeDefined messagesByLanguageTag_themeDefined
}), }),
create: () => build: () =>
createUseI18n({ createUseI18n({
extraLanguageTranslations: params.extraLanguageTranslations, extraLanguageTranslations: params.extraLanguageTranslations,
messagesByLanguageTag_themeDefined: messagesByLanguageTag_themeDefined:
@ -111,7 +111,7 @@ function createi18nBuilder<
return i18nBuilder; return i18nBuilder;
} }
export const i18nBuilder = createi18nBuilder({ export const i18nBuilder = createI18nBuilder({
extraLanguageTranslations: {}, extraLanguageTranslations: {},
messagesByLanguageTag_themeDefined: {} messagesByLanguageTag_themeDefined: {}
}); });

View File

@ -1,9 +1,7 @@
import { i18nBuilder } from "../../dist/account"; import { i18nBuilder } from "../../dist/account";
import type { ThemeName } from "../kc.gen";
export const { useI18n, ofTypeI18n } = i18nBuilder const { useI18n, ofTypeI18n } = i18nBuilder.build();
.withThemeName<ThemeName>()
.withCustomTranslations({})
.create();
export type I18n = typeof ofTypeI18n; type I18n = typeof ofTypeI18n;
export { useI18n, I18n };

View File

@ -2,7 +2,6 @@ import React from "react";
import type { Meta, StoryObj } from "@storybook/react"; import type { Meta, StoryObj } from "@storybook/react";
import { KeycloakifyRotatingLogo } from "./KeycloakifyRotatingLogo"; import { KeycloakifyRotatingLogo } from "./KeycloakifyRotatingLogo";
import { useInsertLinkTags } from "../../dist/tools/useInsertLinkTags"; import { useInsertLinkTags } from "../../dist/tools/useInsertLinkTags";
import { useOnFistMount } from "../../dist/tools/useOnFirstMount";
import { tss } from "../tss"; import { tss } from "../tss";
const meta = { const meta = {

View File

@ -1,9 +1,7 @@
import { i18nBuilder } from "../../dist/login"; import { i18nBuilder } from "../../dist/login";
import type { ThemeName } from "../kc.gen";
export const { useI18n, ofTypeI18n } = i18nBuilder const { useI18n, ofTypeI18n } = i18nBuilder.build();
.withThemeName<ThemeName>()
.withCustomTranslations({})
.create();
export type I18n = typeof ofTypeI18n; type I18n = typeof ofTypeI18n;
export { useI18n, I18n };

View File

@ -26,7 +26,7 @@ const { useI18n, ofTypeI18n } = i18nBuilder
} }
} }
}) })
.create(); .build();
type I18n = typeof ofTypeI18n; type I18n = typeof ofTypeI18n;