locl-js 1.0.0 → 1.0.1
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/dist/index.d.mts +6 -5
- package/dist/index.d.ts +6 -5
- package/package.json +1 -1
- package/readme.md +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -130,12 +130,12 @@ declare const defaultFormatters: {
|
|
|
130
130
|
};
|
|
131
131
|
|
|
132
132
|
type NestedKeyOf<ObjectType extends object> = {
|
|
133
|
-
[Key in keyof ObjectType & string]: ObjectType[Key] extends any[] ? `${Key}` : ObjectType[Key] extends object ? `${Key}` | `${Key}.${NestedKeyOf<ObjectType[Key]>}` : `${Key}`;
|
|
134
|
-
}[keyof ObjectType & string];
|
|
133
|
+
[Key in keyof ObjectType & (string | number)]: ObjectType[Key] extends any[] ? `${Key}` : ObjectType[Key] extends object ? `${Key}` | `${Key}.${NestedKeyOf<ObjectType[Key]>}` : `${Key}`;
|
|
134
|
+
}[keyof ObjectType & (string | number)];
|
|
135
135
|
type NestedKeyOfObj<ObjectType extends object, SkipArrays extends boolean = false> = {
|
|
136
136
|
[Key in keyof ObjectType & string]: ObjectType[Key] extends Array<any> ? SkipArrays extends true ? never : `${Key}` | `${Key}.${number}` : ObjectType[Key] extends object ? `${Key}` | `${Key}.${NestedKeyOfObj<ObjectType[Key], SkipArrays>}` : never;
|
|
137
137
|
}[keyof ObjectType & string];
|
|
138
|
-
type PathValue<T, P extends string> = P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? Rest extends
|
|
138
|
+
type PathValue<T, P extends string> = P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? PathValue<T[Key], Rest> : Key extends `${infer N extends number}` ? N extends keyof T ? PathValue<T[N], Rest> : never : never : P extends keyof T ? T[P] : P extends `${infer N extends number}` ? N extends keyof T ? T[N] : never : never;
|
|
139
139
|
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
|
|
140
140
|
type DeepPick<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends keyof T ? {
|
|
141
141
|
[Key in K]: DeepPick<T[K], Rest>;
|
|
@@ -249,6 +249,7 @@ declare class LocL<T extends Record<string, any>, Fallback extends keyof T & str
|
|
|
249
249
|
fallbackLanguage: Fallback;
|
|
250
250
|
formatters?: F;
|
|
251
251
|
useDefaultFormatters?: UseDefaultFormatter;
|
|
252
|
+
scope?: S;
|
|
252
253
|
});
|
|
253
254
|
/**
|
|
254
255
|
* Creates a new proxy translator instance with a different configuration.
|
|
@@ -284,7 +285,7 @@ declare class LocL<T extends Record<string, any>, Fallback extends keyof T & str
|
|
|
284
285
|
* @returns The translated and formatted string, or the translation object.
|
|
285
286
|
*/
|
|
286
287
|
t(): TranslationObjectFor<S, T, Fallback>;
|
|
287
|
-
t<K extends NestedKeyOf<TranslationObjectFor<S, T, Fallback>>>(key: K, values?: InterpolationOptions, format?: FormatOptions<F, UseDefaultFormatter>): PathValue<TranslationObjectFor<S, T, Fallback>, K
|
|
288
|
+
t<K extends NestedKeyOf<TranslationObjectFor<S, T, Fallback>>>(key: K, values?: InterpolationOptions, format?: FormatOptions<F, UseDefaultFormatter>): PathValue<TranslationObjectFor<S, T, Fallback>, K>;
|
|
288
289
|
/**
|
|
289
290
|
* Translates a key without strict type checking.
|
|
290
291
|
* This is useful for compatibility with other i18n libraries or dynamic keys.
|
|
@@ -371,7 +372,7 @@ declare class LocL<T extends Record<string, any>, Fallback extends keyof T & str
|
|
|
371
372
|
*
|
|
372
373
|
* @returns A new `LocL` instance configured with the provided options.
|
|
373
374
|
*/
|
|
374
|
-
declare function initLocL<T extends Record<string, any>, Fallback extends keyof T & string, S extends ScopeType<T, Fallback>
|
|
375
|
+
declare function initLocL<T extends Record<string, any>, Fallback extends keyof T & string, S extends ScopeType<T, Fallback> = undefined, F extends Record<string, Formatter> = {}, UseDefaultFormatter extends boolean = true>(config: LocLConfig<T, Fallback> & {
|
|
375
376
|
scope?: S;
|
|
376
377
|
formatters?: F;
|
|
377
378
|
useDefaultFormatters?: UseDefaultFormatter;
|
package/dist/index.d.ts
CHANGED
|
@@ -130,12 +130,12 @@ declare const defaultFormatters: {
|
|
|
130
130
|
};
|
|
131
131
|
|
|
132
132
|
type NestedKeyOf<ObjectType extends object> = {
|
|
133
|
-
[Key in keyof ObjectType & string]: ObjectType[Key] extends any[] ? `${Key}` : ObjectType[Key] extends object ? `${Key}` | `${Key}.${NestedKeyOf<ObjectType[Key]>}` : `${Key}`;
|
|
134
|
-
}[keyof ObjectType & string];
|
|
133
|
+
[Key in keyof ObjectType & (string | number)]: ObjectType[Key] extends any[] ? `${Key}` : ObjectType[Key] extends object ? `${Key}` | `${Key}.${NestedKeyOf<ObjectType[Key]>}` : `${Key}`;
|
|
134
|
+
}[keyof ObjectType & (string | number)];
|
|
135
135
|
type NestedKeyOfObj<ObjectType extends object, SkipArrays extends boolean = false> = {
|
|
136
136
|
[Key in keyof ObjectType & string]: ObjectType[Key] extends Array<any> ? SkipArrays extends true ? never : `${Key}` | `${Key}.${number}` : ObjectType[Key] extends object ? `${Key}` | `${Key}.${NestedKeyOfObj<ObjectType[Key], SkipArrays>}` : never;
|
|
137
137
|
}[keyof ObjectType & string];
|
|
138
|
-
type PathValue<T, P extends string> = P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? Rest extends
|
|
138
|
+
type PathValue<T, P extends string> = P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? PathValue<T[Key], Rest> : Key extends `${infer N extends number}` ? N extends keyof T ? PathValue<T[N], Rest> : never : never : P extends keyof T ? T[P] : P extends `${infer N extends number}` ? N extends keyof T ? T[N] : never : never;
|
|
139
139
|
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
|
|
140
140
|
type DeepPick<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends keyof T ? {
|
|
141
141
|
[Key in K]: DeepPick<T[K], Rest>;
|
|
@@ -249,6 +249,7 @@ declare class LocL<T extends Record<string, any>, Fallback extends keyof T & str
|
|
|
249
249
|
fallbackLanguage: Fallback;
|
|
250
250
|
formatters?: F;
|
|
251
251
|
useDefaultFormatters?: UseDefaultFormatter;
|
|
252
|
+
scope?: S;
|
|
252
253
|
});
|
|
253
254
|
/**
|
|
254
255
|
* Creates a new proxy translator instance with a different configuration.
|
|
@@ -284,7 +285,7 @@ declare class LocL<T extends Record<string, any>, Fallback extends keyof T & str
|
|
|
284
285
|
* @returns The translated and formatted string, or the translation object.
|
|
285
286
|
*/
|
|
286
287
|
t(): TranslationObjectFor<S, T, Fallback>;
|
|
287
|
-
t<K extends NestedKeyOf<TranslationObjectFor<S, T, Fallback>>>(key: K, values?: InterpolationOptions, format?: FormatOptions<F, UseDefaultFormatter>): PathValue<TranslationObjectFor<S, T, Fallback>, K
|
|
288
|
+
t<K extends NestedKeyOf<TranslationObjectFor<S, T, Fallback>>>(key: K, values?: InterpolationOptions, format?: FormatOptions<F, UseDefaultFormatter>): PathValue<TranslationObjectFor<S, T, Fallback>, K>;
|
|
288
289
|
/**
|
|
289
290
|
* Translates a key without strict type checking.
|
|
290
291
|
* This is useful for compatibility with other i18n libraries or dynamic keys.
|
|
@@ -371,7 +372,7 @@ declare class LocL<T extends Record<string, any>, Fallback extends keyof T & str
|
|
|
371
372
|
*
|
|
372
373
|
* @returns A new `LocL` instance configured with the provided options.
|
|
373
374
|
*/
|
|
374
|
-
declare function initLocL<T extends Record<string, any>, Fallback extends keyof T & string, S extends ScopeType<T, Fallback>
|
|
375
|
+
declare function initLocL<T extends Record<string, any>, Fallback extends keyof T & string, S extends ScopeType<T, Fallback> = undefined, F extends Record<string, Formatter> = {}, UseDefaultFormatter extends boolean = true>(config: LocLConfig<T, Fallback> & {
|
|
375
376
|
scope?: S;
|
|
376
377
|
formatters?: F;
|
|
377
378
|
useDefaultFormatters?: UseDefaultFormatter;
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -231,7 +231,7 @@ translator.t("price", { price: 123 }); // "The price is $123.00"
|
|
|
231
231
|
You can also define your own custom formatters:
|
|
232
232
|
|
|
233
233
|
```typescript
|
|
234
|
-
const translator =
|
|
234
|
+
const translator = initLocL({
|
|
235
235
|
resources,
|
|
236
236
|
fallbackLanguage: "en",
|
|
237
237
|
formatters: {
|