@tstdl/base 0.84.22 → 0.84.23

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.84.22",
3
+ "version": "0.84.23",
4
4
  "author": "Patrick Hein",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -45,7 +45,7 @@
45
45
  "typescript": "5.0"
46
46
  },
47
47
  "peerDependencies": {
48
- "@elastic/elasticsearch": "^8.7",
48
+ "@elastic/elasticsearch": "^8.8",
49
49
  "@koa/router": "^12.0",
50
50
  "@tstdl/angular": "^0.84",
51
51
  "@zxcvbn-ts/core": "^3.0",
@@ -25,9 +25,9 @@ export interface Signal<T> {
25
25
  [SIGNAL]?: unknown;
26
26
  }
27
27
  /**
28
- * Checks if the given `value` function is a reactive `Signal`.
28
+ * Checks if the given `value` is a reactive `Signal`.
29
29
  */
30
- export declare function isSignal(value: Function): value is Signal<unknown>;
30
+ export declare function isSignal(value: unknown): value is Signal<unknown>;
31
31
  /**
32
32
  * Converts `fn` into a marked signal function (where `isSignal(fn)` will be `true`).
33
33
  *
@@ -32,7 +32,7 @@ module.exports = __toCommonJS(api_exports);
32
32
  */
33
33
  const SIGNAL = Symbol("SIGNAL");
34
34
  function isSignal(value) {
35
- return value[SIGNAL] !== void 0;
35
+ return typeof value == "function" && value[SIGNAL] !== void 0;
36
36
  }
37
37
  function createSignalFromFunction(node, fn, extraApi = {}) {
38
38
  fn[SIGNAL] = node;
@@ -27,7 +27,16 @@ export type ProxyLocalizationKey<Parameters = void> = PropertyName & {
27
27
  [parametersSymbol]?: Parameters;
28
28
  };
29
29
  export type LocalizationKey<Parameters = void> = string | ProxyLocalizationKey<Parameters>;
30
- export type LocalizationData<Parameters = any> = LocalizationKey | LocalizationDataObject<Parameters> | {
30
+ export type EnumLocalizationKey<T extends Enumeration = Enumeration, Parameters = void> = Parameters extends void ? {
31
+ enum: T;
32
+ value?: EnumerationValue<T>;
33
+ parameters?: void;
34
+ } : {
35
+ enum: T;
36
+ value?: EnumerationValue<T>;
37
+ parameters: Parameters;
38
+ };
39
+ export type LocalizationData<Parameters = any, E extends Enumeration = any> = LocalizationKey | EnumLocalizationKey<E, Parameters> | LocalizationDataObject<Parameters> | {
31
40
  key: LocalizationKey;
32
41
  parameters?: void;
33
42
  };
@@ -40,6 +49,8 @@ export type ProxyLocalizationKeys<T extends LocalizationTemplate> = {
40
49
  };
41
50
  export declare function getProxyLocalizationKey<Parameters = void>(key: string): ProxyLocalizationKey<Parameters>;
42
51
  export declare function isProxyLocalizationKey(value: any): value is ProxyLocalizationKey;
52
+ export declare function isEnumLocalizationKey(key: any): key is EnumLocalizationKey;
53
+ export declare function isLocalizationDataObject(value: LocalizationData): value is LocalizationDataObject<any>;
43
54
  /** helper function to ensure type safety */
44
55
  export declare function localizationData<T>(data: LocalizationData<T>): LocalizationData<T>;
45
56
  /**
@@ -65,9 +76,9 @@ export declare class LocalizationService {
65
76
  getLanguage(languageCode: string): Language;
66
77
  setLanguage(languageOrCode: Language | string): void;
67
78
  setLocalization(localization: Localization): void;
68
- tryGetItem<Parameters>(key: LocalizationKey<Parameters> | LocalizationData<Parameters>): LocalizeItem | undefined;
79
+ tryGetItem<Parameters>(keyOrData: LocalizationKey<Parameters> | LocalizationData<Parameters>): LocalizeItem | undefined;
69
80
  hasKey<Parameters>(key: LocalizationKey<Parameters> | LocalizationData<Parameters>): boolean;
70
- localize<Parameters>(keyOrData: LocalizationKey<Parameters> | LocalizationData<Parameters>): string;
81
+ localize<Parameters = void>(keyOrData: LocalizationKey<Parameters> | LocalizationData<Parameters>): string;
71
82
  localizeEnum<T extends Enumeration>(enumeration: T, value?: EnumerationValue<T>, parameters?: unknown): string;
72
83
  localize$<Parameters>(data: LocalizationData<Parameters>): Observable<string>;
73
84
  localizeEnum$<T extends Enumeration>(enumeration: T, value?: EnumerationValue<T>, parameters?: unknown): Observable<string>;
@@ -23,6 +23,8 @@ __export(localization_service_exports, {
23
23
  enumerationLocalization: () => enumerationLocalization,
24
24
  getLocalizationKeys: () => getLocalizationKeys,
25
25
  getProxyLocalizationKey: () => getProxyLocalizationKey,
26
+ isEnumLocalizationKey: () => isEnumLocalizationKey,
27
+ isLocalizationDataObject: () => isLocalizationDataObject,
26
28
  isLocalizeItem: () => isLocalizeItem,
27
29
  isProxyLocalizationKey: () => isProxyLocalizationKey,
28
30
  localizationData: () => localizationData
@@ -62,6 +64,12 @@ function getProxyLocalizationKey(key) {
62
64
  function isProxyLocalizationKey(value) {
63
65
  return (0, import_property_name.isPropertyName)(value);
64
66
  }
67
+ function isEnumLocalizationKey(key) {
68
+ return (0, import_type_guards.isObject)(key) && (0, import_object.hasOwnProperty)(key, "enum");
69
+ }
70
+ function isLocalizationDataObject(value) {
71
+ return (0, import_type_guards.isObject)(value) && (0, import_object.hasOwnProperty)(value, "key");
72
+ }
65
73
  function localizationData(data) {
66
74
  return data;
67
75
  }
@@ -131,11 +139,15 @@ let LocalizationService = class LocalizationService2 {
131
139
  setLocalization(localization) {
132
140
  this.setLanguage(localization.language);
133
141
  }
134
- tryGetItem(key) {
142
+ tryGetItem(keyOrData) {
135
143
  if ((0, import_type_guards.isUndefined)(this.activeLanguage)) {
136
144
  return void 0;
137
145
  }
138
- const actualKey = getStringKey(key);
146
+ if (isEnumLocalizationKey(keyOrData)) {
147
+ const enumEntry = this.localizations.get(this.activeLanguage.code)?.enums.get(keyOrData.enum);
148
+ return (0, import_type_guards.isDefined)(keyOrData.value) ? enumEntry?.values[keyOrData.value] : enumEntry?.name;
149
+ }
150
+ const actualKey = getStringKey(keyOrData);
139
151
  return this.localizations.get(this.activeLanguage.code)?.keys.get(actualKey);
140
152
  }
141
153
  hasKey(key) {
@@ -144,6 +156,9 @@ let LocalizationService = class LocalizationService2 {
144
156
  }
145
157
  // eslint-disable-next-line max-statements
146
158
  localize(keyOrData) {
159
+ if (isEnumLocalizationKey(keyOrData)) {
160
+ return this.localizeEnum(keyOrData.enum, keyOrData.value, keyOrData.parameters);
161
+ }
147
162
  const key = getStringKey(keyOrData);
148
163
  const parameters = (0, import_type_guards.isString)(keyOrData) || isProxyLocalizationKey(keyOrData) ? {} : keyOrData.parameters;
149
164
  const templateOrFunction = (0, import_type_guards.isDefined)(this.activeLanguage) ? this.localizations.get(this.activeLanguage.code)?.keys.get(key) : void 0;