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 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 string ? PathValue<T[Key], Rest> : never : never : P extends keyof T ? T[P] : never;
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> extends string ? string : 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> | undefined = undefined, F extends Record<string, Formatter> = {}, UseDefaultFormatter extends boolean = true>(config: LocLConfig<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 string ? PathValue<T[Key], Rest> : never : never : P extends keyof T ? T[P] : never;
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> extends string ? string : 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> | undefined = undefined, F extends Record<string, Formatter> = {}, UseDefaultFormatter extends boolean = true>(config: LocLConfig<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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "locl-js",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Modern TypeScript internationalization (i18n) library with type-safety, performance, and backend usability",
5
5
  "license": "MIT",
6
6
  "author": "Sztrida Sámuel <sztsam@gmail.com>",
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 = initTranslator({
234
+ const translator = initLocL({
235
235
  resources,
236
236
  fallbackLanguage: "en",
237
237
  formatters: {