typed-locales 1.0.42 → 1.0.43

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/README.md CHANGED
@@ -105,6 +105,7 @@ translate('items', { count: 5 }); // "5 elementos"
105
105
  - [Formatters Guide](./docs/formatters.md) - Built-in and custom formatters
106
106
  - [Validation System](./docs/validation.md) - Compile-time validation features
107
107
  - [VS Code Setup](./docs/vscode-setup.md) - IDE integration guide
108
+ - [Helper Types](./docs/vscode-setup.md) - Helper types for advanced use
108
109
 
109
110
  ## 🛠️ TypeScript Configuration
110
111
 
package/dist/index.d.ts CHANGED
@@ -25,6 +25,17 @@ export type PossibleTranslationKeys = DotNestedLeafKeys<Translations>;
25
25
  export type ExtraFormatters = Overrides['extraFormatters'];
26
26
  export type FormatterTypes = keyof ExtraFormatters | keyof typeof formatters;
27
27
  export type TranslateFunctionType = ReturnType<typeof getTranslate>;
28
+ type TranslatedMark = {
29
+ translated: true;
30
+ };
31
+ /** Ensure a string is translated */
32
+ export type TranslatedString = string & TranslatedMark;
33
+ export type InterpolationProperties<S extends string, IsKeyPlural = IsPlural<S>> = DeepResolve<IsKeyPlural extends true ? {
34
+ count: number;
35
+ } & PlaceholderInfoToObject<Exclude<ExtractPlaceholdersWithTypes<S>, {
36
+ name: 'count';
37
+ type: any;
38
+ }>> : ExtractPlaceholders<S> extends never ? {} : PlaceholderInfoToObject<ExtractPlaceholdersWithTypes<S>>>;
28
39
  declare const pluralSufixes: readonly ["_none", "_one", "_other"];
29
40
  type PluralSuffix = (typeof pluralSufixes)[number];
30
41
  type RemovePluralSuffix<T extends string> = T extends `${infer Base}${PluralSuffix}` ? Base : T;
@@ -71,16 +82,10 @@ type HasPluralKeys<T, Path extends string> = Path extends `${infer K}.${infer Re
71
82
  type IsPlural<Path extends string> = HasPluralKeys<Translations, Path>;
72
83
  type InternalGetValue<T, Path extends string> = Path extends `${infer K}.${infer Rest}` ? K extends keyof T ? InternalGetValue<T[K], Rest> : never : Path extends keyof T ? T[Path] : T[PluralKeys<Path> & keyof T];
73
84
  type GetValue<Path extends string> = Exclude<InternalGetValue<Translations, Path>, undefined>;
74
- type InterpolationProperties<S extends string, IsKeyPlural = IsPlural<S>> = DeepResolve<IsKeyPlural extends true ? {
75
- count: number;
76
- } & PlaceholderInfoToObject<Exclude<ExtractPlaceholdersWithTypes<S>, {
77
- name: 'count';
78
- type: any;
79
- }>> : ExtractPlaceholders<S> extends never ? {} : PlaceholderInfoToObject<ExtractPlaceholdersWithTypes<S>>>;
80
85
  export type DeepResolve<T> = T extends (...args: any[]) => any ? T : T extends object ? {
81
86
  -readonly [K in keyof T]: DeepResolve<T[K]>;
82
87
  } : T;
83
- export declare const getTranslate: (translations: TranslationType, locale: Locales, extraFormatters: ExtraFormatters, baseTranslate?: (...props: any) => string) => <Key extends PossibleTranslationKeys>(key: Key, ...arguments_: InterpolationProperties<GetValue<Key>> extends Record<string, never> ? [] : Key extends PossibleTranslationKeys ? [params: InterpolationProperties<GetValue<Key>>] : []) => GetValue<Key>;
88
+ export declare const getTranslate: (translations: TranslationType, locale: Locales, extraFormatters: ExtraFormatters, baseTranslate?: (...props: any) => string) => <Key extends PossibleTranslationKeys>(key: Key, ...arguments_: InterpolationProperties<GetValue<Key>> extends Record<string, never> ? [] : Key extends PossibleTranslationKeys ? [params: InterpolationProperties<GetValue<Key>>] : []) => GetValue<Key> & TranslatedMark;
84
89
  export { initReact } from './react.js';
85
90
  export { type Formatter, default as defaultFormatters } from './formatters.js';
86
91
  export { type ValidateTranslation, type EnsureValidTranslation, } from './validation.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+
2
+ # Helper Types
3
+ Sometimes you may want to recieve a translation key as a function parameter, get the parameters of a translation as a type, or ensure a function parameter is translated, for this 3 helper types are exposed.
4
+
5
+ ## PossibleTranslationKeys
6
+ Ensure a string is a valid translation key
7
+ ```ts
8
+ const formatLabel = (key: PossibleTranslationKeys) => t(key);
9
+ ```
10
+
11
+ ## InterpolationProperties
12
+ Get the properties of a given translation key
13
+ ```ts
14
+ const formatLabel = (props: InterpolationProperties<'labelWithProps'>) => t('labelWithProps', props);
15
+ ```
16
+
17
+ ## TranslatedString
18
+ Ensure a recieved string is translated
19
+ ```ts
20
+ const print = (string_: TranslatedString) => console.log(string_);
21
+
22
+ print(t('hello')); // This is ok
23
+ print('hello'); // This show an error
24
+ ```
25
+
26
+ This is usefull for react components, for example
27
+ ```tsx
28
+ const Label: React.FC<{
29
+ label: TranslatedString
30
+ }> = ({label}) => (<label>{label}</label>);
31
+
32
+ const test = <Label label={t('hello')}} /> // This is ok
33
+ const test2 = <Label label="hello" /> // This shows an error
34
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typed-locales",
3
- "version": "1.0.42",
3
+ "version": "1.0.43",
4
4
  "description": "Type safe utilities for translating strings",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",