@lucaapp/service-utils 5.0.0 → 5.1.0

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.
@@ -4,6 +4,35 @@ export declare const DEFAULT_LANGUAGE_WHEN_NO_HEADER = "de";
4
4
  export declare const DEFAULT_LANGUAGE_WHEN_HEADER = "en";
5
5
  export declare const AVAILABLE_LANGUAGES: string[];
6
6
  type LanguageOptions = typeof AVAILABLE_LANGUAGES[number];
7
+ /**
8
+ * Checks if a language code is a supported InternalLanguage.
9
+ *
10
+ * @param lang - Language code to check
11
+ * @returns true if the language is supported, false otherwise
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * isInternalLanguage('de') // returns true
16
+ * isInternalLanguage('en') // returns true
17
+ * isInternalLanguage('fr') // returns false
18
+ * ```
19
+ */
20
+ export declare const isInternalLanguage: (lang: string) => lang is InternalLanguages;
21
+ /**
22
+ * Safely converts a language code to an InternalLanguage.
23
+ * If the language is not supported, falls back to 'en'.
24
+ *
25
+ * @param lang - Language code to convert
26
+ * @returns The language if supported, otherwise 'en'
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * toInternalLanguage('de') // returns 'de'
31
+ * toInternalLanguage('en') // returns 'en'
32
+ * toInternalLanguage('fr') // returns 'en' (fallback)
33
+ * ```
34
+ */
35
+ export declare const toInternalLanguage: (lang: string) => InternalLanguages;
7
36
  export declare const parseAcceptLanguageHeader: (header?: string) => LanguageOptions;
8
37
  /**
9
38
  * @deprecated Use getPreferredLanguageFromRequestHeaders instead.
@@ -3,11 +3,46 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getPreferredLanguageFromRequestHeaders = exports.getPreferredLanguageFromRequest = exports.parseAcceptLanguageHeader = exports.AVAILABLE_LANGUAGES = exports.DEFAULT_LANGUAGE_WHEN_HEADER = exports.DEFAULT_LANGUAGE_WHEN_NO_HEADER = void 0;
6
+ exports.getPreferredLanguageFromRequestHeaders = exports.getPreferredLanguageFromRequest = exports.parseAcceptLanguageHeader = exports.toInternalLanguage = exports.isInternalLanguage = exports.AVAILABLE_LANGUAGES = exports.DEFAULT_LANGUAGE_WHEN_HEADER = exports.DEFAULT_LANGUAGE_WHEN_NO_HEADER = void 0;
7
7
  const negotiator_1 = __importDefault(require("negotiator"));
8
8
  exports.DEFAULT_LANGUAGE_WHEN_NO_HEADER = 'de';
9
9
  exports.DEFAULT_LANGUAGE_WHEN_HEADER = 'en';
10
10
  exports.AVAILABLE_LANGUAGES = ['en', 'de'];
11
+ /**
12
+ * Checks if a language code is a supported InternalLanguage.
13
+ *
14
+ * @param lang - Language code to check
15
+ * @returns true if the language is supported, false otherwise
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * isInternalLanguage('de') // returns true
20
+ * isInternalLanguage('en') // returns true
21
+ * isInternalLanguage('fr') // returns false
22
+ * ```
23
+ */
24
+ const isInternalLanguage = (lang) => {
25
+ return exports.AVAILABLE_LANGUAGES.includes(lang);
26
+ };
27
+ exports.isInternalLanguage = isInternalLanguage;
28
+ /**
29
+ * Safely converts a language code to an InternalLanguage.
30
+ * If the language is not supported, falls back to 'en'.
31
+ *
32
+ * @param lang - Language code to convert
33
+ * @returns The language if supported, otherwise 'en'
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * toInternalLanguage('de') // returns 'de'
38
+ * toInternalLanguage('en') // returns 'en'
39
+ * toInternalLanguage('fr') // returns 'en' (fallback)
40
+ * ```
41
+ */
42
+ const toInternalLanguage = (lang) => {
43
+ return (0, exports.isInternalLanguage)(lang) ? lang : 'en';
44
+ };
45
+ exports.toInternalLanguage = toInternalLanguage;
11
46
  const parseAcceptLanguageHeader = (header) => {
12
47
  if (!header) {
13
48
  return exports.DEFAULT_LANGUAGE_WHEN_NO_HEADER;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucaapp/service-utils",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [