intor-translator 1.0.4 → 1.0.6

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.cjs CHANGED
@@ -235,7 +235,12 @@ var BaseTranslator = class {
235
235
  get messages() {
236
236
  return this.messagesRef.current;
237
237
  }
238
- /** Replace messages with new ones. */
238
+ /**
239
+ * Replace messages with new ones.
240
+ *
241
+ * Note: This allows runtime setting of messages even if M is inferred as `never` (uninitialized).
242
+ * Type cast is used to bypass TypeScript restrictions on dynamic messages.
243
+ */
239
244
  setMessages(messages) {
240
245
  this.messagesRef.current = messages;
241
246
  clearMessageKeyCache();
@@ -269,7 +274,7 @@ var CoreTranslator = class extends BaseTranslator {
269
274
  replacements
270
275
  });
271
276
  };
272
- this.options = options;
277
+ this.options = options || {};
273
278
  }
274
279
  /** Get the current loading state. */
275
280
  get isLoading() {
@@ -320,7 +325,6 @@ var ScopeTranslator = class extends CoreTranslator {
320
325
  }
321
326
  };
322
327
  };
323
- this.options = options;
324
328
  }
325
329
  };
326
330
 
package/dist/index.d.cts CHANGED
@@ -355,8 +355,13 @@ declare class BaseTranslator<M extends LocaleNamespaceMessages = never> {
355
355
  constructor(options?: BaseTranslatorOptions<M>);
356
356
  /** Get all message data. */
357
357
  get messages(): M | undefined;
358
- /** Replace messages with new ones. */
359
- setMessages(messages: M): void;
358
+ /**
359
+ * Replace messages with new ones.
360
+ *
361
+ * Note: This allows runtime setting of messages even if M is inferred as `never` (uninitialized).
362
+ * Type cast is used to bypass TypeScript restrictions on dynamic messages.
363
+ */
364
+ setMessages<N extends LocaleNamespaceMessages>(messages: N): void;
360
365
  /** Get the current active locale. */
361
366
  get locale(): LocaleKey<M> | undefined;
362
367
  /** Change the active locale if available. */
@@ -371,7 +376,7 @@ interface CoreTranslatorOptions<M extends LocaleNamespaceMessages> extends BaseT
371
376
  declare class CoreTranslator<M extends LocaleNamespaceMessages = never> extends BaseTranslator<M> {
372
377
  protected options: CoreTranslatorOptions<M>;
373
378
  protected isLoadingRef: IsLoadingRef;
374
- constructor(options: CoreTranslatorOptions<M>);
379
+ constructor(options?: CoreTranslatorOptions<M>);
375
380
  /** Get the current loading state. */
376
381
  get isLoading(): boolean;
377
382
  /** Set the loading state. */
@@ -379,8 +384,8 @@ declare class CoreTranslator<M extends LocaleNamespaceMessages = never> extends
379
384
  t: <Result = string>(key: InferTranslatorKey<M>, replacements?: Replacement | RichReplacement) => Result;
380
385
  }
381
386
 
382
- declare class ScopeTranslator<M extends LocaleNamespaceMessages> extends CoreTranslator<M> {
383
- constructor(options: CoreTranslatorOptions<M>);
387
+ declare class ScopeTranslator<M extends LocaleNamespaceMessages = never> extends CoreTranslator<M> {
388
+ constructor(options?: CoreTranslatorOptions<M>);
384
389
  scoped: <K extends NodeKeys<UnionLocaleMessages<M>> & string, ScopedKeys extends ScopedLeafKeys<M, K> & string>(preKey: K) => {
385
390
  hasKey: (key?: ScopedKeys | undefined, targetLocale?: string) => boolean;
386
391
  t: (key?: ScopedKeys | undefined, replacements?: Replacement | RichReplacement) => string;
package/dist/index.d.ts CHANGED
@@ -355,8 +355,13 @@ declare class BaseTranslator<M extends LocaleNamespaceMessages = never> {
355
355
  constructor(options?: BaseTranslatorOptions<M>);
356
356
  /** Get all message data. */
357
357
  get messages(): M | undefined;
358
- /** Replace messages with new ones. */
359
- setMessages(messages: M): void;
358
+ /**
359
+ * Replace messages with new ones.
360
+ *
361
+ * Note: This allows runtime setting of messages even if M is inferred as `never` (uninitialized).
362
+ * Type cast is used to bypass TypeScript restrictions on dynamic messages.
363
+ */
364
+ setMessages<N extends LocaleNamespaceMessages>(messages: N): void;
360
365
  /** Get the current active locale. */
361
366
  get locale(): LocaleKey<M> | undefined;
362
367
  /** Change the active locale if available. */
@@ -371,7 +376,7 @@ interface CoreTranslatorOptions<M extends LocaleNamespaceMessages> extends BaseT
371
376
  declare class CoreTranslator<M extends LocaleNamespaceMessages = never> extends BaseTranslator<M> {
372
377
  protected options: CoreTranslatorOptions<M>;
373
378
  protected isLoadingRef: IsLoadingRef;
374
- constructor(options: CoreTranslatorOptions<M>);
379
+ constructor(options?: CoreTranslatorOptions<M>);
375
380
  /** Get the current loading state. */
376
381
  get isLoading(): boolean;
377
382
  /** Set the loading state. */
@@ -379,8 +384,8 @@ declare class CoreTranslator<M extends LocaleNamespaceMessages = never> extends
379
384
  t: <Result = string>(key: InferTranslatorKey<M>, replacements?: Replacement | RichReplacement) => Result;
380
385
  }
381
386
 
382
- declare class ScopeTranslator<M extends LocaleNamespaceMessages> extends CoreTranslator<M> {
383
- constructor(options: CoreTranslatorOptions<M>);
387
+ declare class ScopeTranslator<M extends LocaleNamespaceMessages = never> extends CoreTranslator<M> {
388
+ constructor(options?: CoreTranslatorOptions<M>);
384
389
  scoped: <K extends NodeKeys<UnionLocaleMessages<M>> & string, ScopedKeys extends ScopedLeafKeys<M, K> & string>(preKey: K) => {
385
390
  hasKey: (key?: ScopedKeys | undefined, targetLocale?: string) => boolean;
386
391
  t: (key?: ScopedKeys | undefined, replacements?: Replacement | RichReplacement) => string;
package/dist/index.js CHANGED
@@ -233,7 +233,12 @@ var BaseTranslator = class {
233
233
  get messages() {
234
234
  return this.messagesRef.current;
235
235
  }
236
- /** Replace messages with new ones. */
236
+ /**
237
+ * Replace messages with new ones.
238
+ *
239
+ * Note: This allows runtime setting of messages even if M is inferred as `never` (uninitialized).
240
+ * Type cast is used to bypass TypeScript restrictions on dynamic messages.
241
+ */
237
242
  setMessages(messages) {
238
243
  this.messagesRef.current = messages;
239
244
  clearMessageKeyCache();
@@ -267,7 +272,7 @@ var CoreTranslator = class extends BaseTranslator {
267
272
  replacements
268
273
  });
269
274
  };
270
- this.options = options;
275
+ this.options = options || {};
271
276
  }
272
277
  /** Get the current loading state. */
273
278
  get isLoading() {
@@ -318,7 +323,6 @@ var ScopeTranslator = class extends CoreTranslator {
318
323
  }
319
324
  };
320
325
  };
321
- this.options = options;
322
326
  }
323
327
  };
324
328
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intor-translator",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "A type safe translator that knows what to say and how to handle the rest. Supports custom messages, rich replacements, and async loading.",
5
5
  "author": "Yiming Liao",
6
6
  "license": "MIT",