use-intl 4.0.0-beta-0825f08 → 4.0.0-beta-f10dbba

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.
@@ -20,6 +20,9 @@ function createTranslatorImpl({
20
20
  });
21
21
  }
22
22
 
23
+ // This type is slightly more loose than `AbstractIntlMessages`
24
+ // in order to avoid a type error.
25
+
23
26
  /**
24
27
  * Translates messages from the given namespace by using the ICU syntax.
25
28
  * See https://formatjs.io/docs/core-concepts/icu-syntax.
@@ -6,7 +6,7 @@ import type TimeZone from './TimeZone.tsx';
6
6
  /**
7
7
  * Should be used for entry points that configure the library.
8
8
  */
9
- type IntlConfig<Messages = AbstractIntlMessages> = {
9
+ type IntlConfig<Messages extends AbstractIntlMessages = AbstractIntlMessages> = {
10
10
  /** A valid Unicode locale tag (e.g. "en" or "en-GB"). */
11
11
  locale: Locale;
12
12
  /** Global formats can be provided to achieve consistent
@@ -44,7 +44,7 @@ type IntlConfig<Messages = AbstractIntlMessages> = {
44
44
  * A stricter set of the configuration that should be used internally
45
45
  * once defaults are assigned to `IntlConfiguration`.
46
46
  */
47
- export type InitializedIntlConfig<Messages = AbstractIntlMessages> = IntlConfig<Messages> & {
47
+ export type InitializedIntlConfig<Messages extends AbstractIntlMessages = AbstractIntlMessages> = IntlConfig<Messages> & {
48
48
  onError: NonNullable<IntlConfig<Messages>['onError']>;
49
49
  getMessageFallback: NonNullable<IntlConfig<Messages>['getMessageFallback']>;
50
50
  };
@@ -1,5 +1,4 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { Messages } from './AppConfig.tsx';
3
2
  import type Formats from './Formats.tsx';
4
3
  import type ICUArgs from './ICUArgs.tsx';
5
4
  import type ICUTags from './ICUTags.tsx';
@@ -18,7 +17,8 @@ type TranslateArgs<Value extends string, TagsFn extends RichTagsFunction | Marku
18
17
  values?: Record<string, TranslationValues[string] | TagsFn>,
19
18
  formats?: Formats
20
19
  ] : (Value extends any ? (key: ICUArgsWithTags<Value, TagsFn>) => void : never) extends (key: infer Args) => void ? OnlyOptional<Args> extends true ? [values?: undefined, formats?: Formats] : [values: Prettify<Args>, formats?: Formats] : never;
21
- type NamespacedMessageKeys<TranslatorMessages extends Messages, Namespace extends NamespaceKeys<TranslatorMessages, NestedKeyOf<TranslatorMessages>> = never> = MessageKeys<NestedValueOf<{
20
+ type IntlMessages = Record<string, any>;
21
+ type NamespacedMessageKeys<TranslatorMessages extends IntlMessages, Namespace extends NamespaceKeys<TranslatorMessages, NestedKeyOf<TranslatorMessages>> = never> = MessageKeys<NestedValueOf<{
22
22
  '!': TranslatorMessages;
23
23
  }, [
24
24
  Namespace
@@ -27,7 +27,7 @@ type NamespacedMessageKeys<TranslatorMessages extends Messages, Namespace extend
27
27
  }, [
28
28
  Namespace
29
29
  ] extends [never] ? '!' : `!.${Namespace}`>>>;
30
- type NamespacedValue<TranslatorMessages extends Messages, Namespace extends NamespaceKeys<TranslatorMessages, NestedKeyOf<TranslatorMessages>>, TargetKey extends NamespacedMessageKeys<TranslatorMessages, Namespace>> = NestedValueOf<TranslatorMessages, [
30
+ type NamespacedValue<TranslatorMessages extends IntlMessages, Namespace extends NamespaceKeys<TranslatorMessages, NestedKeyOf<TranslatorMessages>>, TargetKey extends NamespacedMessageKeys<TranslatorMessages, Namespace>> = NestedValueOf<TranslatorMessages, [
31
31
  Namespace
32
32
  ] extends [never] ? TargetKey : `${Namespace}.${TargetKey}`>;
33
33
  /**
@@ -38,7 +38,7 @@ type NamespacedValue<TranslatorMessages extends Messages, Namespace extends Name
38
38
  * The namespace can also indicate nesting by using a dot
39
39
  * (e.g. `namespace.Component`).
40
40
  */
41
- export default function createTranslator<const TranslatorMessages extends Messages = Messages, const Namespace extends NamespaceKeys<TranslatorMessages, NestedKeyOf<TranslatorMessages>> = never>({ _cache, _formatters, getMessageFallback, messages, namespace, onError, ...rest }: Omit<IntlConfig<TranslatorMessages>, 'messages'> & {
41
+ export default function createTranslator<const TranslatorMessages extends IntlMessages, const Namespace extends NamespaceKeys<TranslatorMessages, NestedKeyOf<TranslatorMessages>> = never>({ _cache, _formatters, getMessageFallback, messages, namespace, onError, ...rest }: Omit<IntlConfig<TranslatorMessages>, 'messages'> & {
42
42
  messages?: TranslatorMessages;
43
43
  namespace?: Namespace;
44
44
  /** @private */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "use-intl",
3
- "version": "4.0.0-beta-0825f08",
3
+ "version": "4.0.0-beta-f10dbba",
4
4
  "sideEffects": false,
5
5
  "author": "Jan Amann <jan@amann.work>",
6
6
  "description": "Internationalization (i18n) for React",
@@ -64,5 +64,5 @@
64
64
  "peerDependencies": {
65
65
  "react": "^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0"
66
66
  },
67
- "gitHead": "4c9f2f636b2ce73f2758b77035f94d47e9f91879"
67
+ "gitHead": "0b110fbdc662f812b077e5e3935cc3401c23aa46"
68
68
  }