@tstdl/base 0.83.12 → 0.83.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tstdl/base",
3
- "version": "0.83.12",
3
+ "version": "0.83.14",
4
4
  "author": "Patrick Hein",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -31,8 +31,8 @@
31
31
  "@types/mjml": "4.7",
32
32
  "@types/node": "18",
33
33
  "@types/nodemailer": "6.4",
34
- "@typescript-eslint/eslint-plugin": "5.56",
35
- "@typescript-eslint/parser": "5.56",
34
+ "@typescript-eslint/eslint-plugin": "5.57",
35
+ "@typescript-eslint/parser": "5.57",
36
36
  "concurrently": "7.6",
37
37
  "esbuild": "0.17",
38
38
  "eslint": "8.36",
@@ -14,12 +14,12 @@ type LocalizationTemplate = {
14
14
  export type EnumerationLocalization<T extends Enumeration = Enumeration> = {
15
15
  [P in EnumerationValue<T>]: LocalizeItem<any>;
16
16
  };
17
- export type EnumerationLocalizationEntry<T extends Enumeration = Enumeration> = [T, EnumerationLocalization<T>];
18
- export type Localization<T extends LocalizationTemplate = LocalizationTemplate, Enums extends Enumeration[] = []> = {
17
+ export type EnumerationLocalizationEntry<T extends Enumeration = Enumeration> = [enumType: T, enumName: LocalizeItem<any> | undefined, enumValues: EnumerationLocalization<T>];
18
+ export type Localization<T extends LocalizationTemplate = LocalizationTemplate, Enums extends Enumeration[] = Enumeration[]> = {
19
19
  language: Language;
20
20
  keys: T;
21
21
  enums: {
22
- [P in keyof Enums]: EnumerationLocalizationEntry<Enums[P]>;
22
+ [I in keyof Enums]: EnumerationLocalizationEntry<Enums[I]>;
23
23
  };
24
24
  };
25
25
  declare const parametersSymbol: unique symbol;
@@ -60,19 +60,21 @@ export declare class LocalizationService {
60
60
  readonly activeLanguage$: Observable<Language | undefined>;
61
61
  readonly availableLanguages$: Observable<readonly Language[]>;
62
62
  constructor(logger: Logger);
63
- registerLocalization(...localizations: Localization<any, any>[]): void;
63
+ registerLocalization(...localizations: Localization[]): void;
64
64
  hasLanguage(languageCode: string): boolean;
65
65
  getLanguage(languageCode: string): Language;
66
66
  setLanguage(languageOrCode: Language | string): void;
67
- setLocalization(localization: Localization<any, any>): void;
67
+ setLocalization(localization: Localization): void;
68
68
  tryGetItem<Parameters>(key: LocalizationKey<Parameters> | LocalizationData<Parameters>): LocalizeItem | undefined;
69
69
  hasKey<Parameters>(key: LocalizationKey<Parameters> | LocalizationData<Parameters>): boolean;
70
70
  localize<Parameters>(keyOrData: LocalizationKey<Parameters> | LocalizationData<Parameters>): string;
71
- localizeEnum<T extends Enumeration>(enumeration: T, value: EnumerationValue<T>, parameters?: unknown): string;
71
+ localizeEnum<T extends Enumeration>(enumeration: T, value?: EnumerationValue<T>, parameters?: unknown): string;
72
72
  localize$<Parameters>(data: LocalizationData<Parameters>): Observable<string>;
73
- localizeEnum$<T extends Enumeration>(enumeration: T, value: EnumerationValue<T>, parameters?: unknown): Observable<string>;
73
+ localizeEnum$<T extends Enumeration>(enumeration: T, value?: EnumerationValue<T>, parameters?: unknown): Observable<string>;
74
74
  private localizeItem;
75
75
  }
76
+ export declare function enumerationLocalization<T extends Enumeration>(enumeration: T, name: LocalizeItem | undefined, localization: EnumerationLocalization<T>): EnumerationLocalizationEntry<T>;
76
77
  export declare function enumerationLocalization<T extends Enumeration>(enumeration: T, localization: EnumerationLocalization<T>): EnumerationLocalizationEntry<T>;
77
- declare function _autoEnumerationLocalization<T extends Enumeration>(enumeration: T): EnumerationLocalizationEntry<T>;
78
+ declare function _autoEnumerationLocalization<T extends Enumeration>(enumeration: T, name?: LocalizeItem): EnumerationLocalizationEntry<T>;
79
+ export declare function isLocalizeItem(value: any): value is LocalizeItem<any>;
78
80
  export {};
@@ -23,6 +23,7 @@ __export(localization_service_exports, {
23
23
  enumerationLocalization: () => enumerationLocalization,
24
24
  getLocalizationKeys: () => getLocalizationKeys,
25
25
  getProxyLocalizationKey: () => getProxyLocalizationKey,
26
+ isLocalizeItem: () => isLocalizeItem,
26
27
  isProxyLocalizationKey: () => isProxyLocalizationKey,
27
28
  localizationData: () => localizationData
28
29
  });
@@ -155,10 +156,14 @@ let LocalizationService = class LocalizationService2 {
155
156
  return this.localizeItem(key, templateOrFunction, parameters);
156
157
  }
157
158
  localizeEnum(enumeration, value, parameters) {
159
+ if ((0, import_type_guards.isUndefined)(value)) {
160
+ const name = this.activeLocalization?.enums.get(enumeration)?.name;
161
+ return this.localizeItem("ENUM", name, parameters);
162
+ }
158
163
  const key = (0, import_type_guards.isArray)(enumeration) ? value : (0, import_enum.enumValueName)(enumeration, value);
159
- const item = this.activeLocalization?.enums.get(enumeration)?.[value];
164
+ const item = this.activeLocalization?.enums.get(enumeration)?.values[value];
160
165
  if ((0, import_type_guards.isUndefined)(item)) {
161
- return autoEnumerationLocalization(enumeration)[1][value];
166
+ return autoEnumerationLocalization(enumeration)[2][value];
162
167
  }
163
168
  return this.localizeItem(key, item, parameters);
164
169
  }
@@ -195,21 +200,22 @@ LocalizationService = __decorate([
195
200
  __param(0, (0, import_container.resolveArg)("LocalizationService")),
196
201
  __metadata("design:paramtypes", [import_logger.Logger])
197
202
  ], LocalizationService);
198
- function enumerationLocalization(enumeration, localization) {
199
- return [enumeration, localization];
203
+ function enumerationLocalization(enumeration, nameOrLocalization, localizationOrNothing) {
204
+ return [enumeration, isLocalizeItem(nameOrLocalization) ? nameOrLocalization : void 0, localizationOrNothing ?? nameOrLocalization];
200
205
  }
201
- function _autoEnumerationLocalization(enumeration) {
206
+ function _autoEnumerationLocalization(enumeration, name) {
202
207
  if ((0, import_type_guards.isObject)(enumeration)) {
203
- return [enumeration, Object.fromEntries((0, import_enum.enumEntries)(enumeration).map(([key, value]) => [value, key]))];
208
+ return [enumeration, name, Object.fromEntries((0, import_enum.enumEntries)(enumeration).map(([key, value]) => [value, key]))];
204
209
  }
205
210
  const arrayEntries = enumeration.map((value) => [value, value]);
206
- return [enumeration, Object.fromEntries(arrayEntries)];
211
+ return [enumeration, name, Object.fromEntries(arrayEntries)];
207
212
  }
208
213
  function buildMappedLocalization({ language, keys, enums }) {
214
+ const enumsEntries = enums.map((entry) => [entry[0], { name: entry[1], values: entry[2] }]);
209
215
  const mappedLocalization = {
210
216
  language,
211
217
  keys: new Map((0, import_object.deepObjectEntries)(keys)),
212
- enums: new Map(enums)
218
+ enums: new Map(enumsEntries)
213
219
  };
214
220
  return mappedLocalization;
215
221
  }
@@ -235,3 +241,6 @@ function mergeMappedLocalization(a, b, force = false) {
235
241
  enums: new Map([...a.enums, ...b.enums])
236
242
  };
237
243
  }
244
+ function isLocalizeItem(value) {
245
+ return (0, import_type_guards.isString)(value) || (0, import_type_guards.isFunction)(value);
246
+ }