use-intl 3.25.0 → 4.0.0-beta-00a79d4

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.
Files changed (119) hide show
  1. package/core.d.ts +2 -1
  2. package/dist/esm/development/core.js +82 -0
  3. package/dist/esm/development/index.js +7 -0
  4. package/dist/{development/createFormatter-D2v4ATzl.js → esm/development/initializeConfig-DSmAVNvj.js} +277 -129
  5. package/dist/esm/development/react.js +184 -0
  6. package/dist/esm/production/core.js +1 -0
  7. package/dist/esm/production/index.js +1 -0
  8. package/dist/esm/production/initializeConfig-BE7tJS3N.js +1 -0
  9. package/dist/esm/production/react.js +1 -0
  10. package/dist/types/{src/core → core}/AbstractIntlMessages.d.ts +3 -2
  11. package/dist/types/core/AppConfig.d.ts +25 -0
  12. package/dist/types/{src/core → core}/DateTimeFormatOptions.d.ts +1 -1
  13. package/dist/types/{src/core → core}/Formats.d.ts +2 -2
  14. package/dist/types/core/ICUArgs.d.ts +3 -0
  15. package/dist/types/core/ICUTags.d.ts +2 -0
  16. package/dist/types/{src/core → core}/IntlConfig.d.ts +6 -13
  17. package/dist/types/core/IntlError.d.ts +6 -0
  18. package/dist/types/{src/core/IntlError.d.ts → core/IntlErrorCode.d.ts} +2 -6
  19. package/dist/types/core/MessageKeys.d.ts +10 -0
  20. package/dist/types/core/TranslationValues.d.ts +9 -0
  21. package/dist/types/{src/core → core}/convertFormatsToIntlMessageFormat.d.ts +4 -4
  22. package/dist/types/{src/core → core}/createBaseTranslator.d.ts +9 -12
  23. package/dist/types/core/createFormatter.d.ts +28 -0
  24. package/dist/types/core/createTranslator.d.ts +52 -0
  25. package/dist/types/core/createTranslatorImpl.d.ts +17 -0
  26. package/dist/types/{src/core → core}/defaults.d.ts +1 -1
  27. package/dist/types/{src/core → core}/formatters.d.ts +1 -1
  28. package/dist/types/core/hasLocale.d.ts +10 -0
  29. package/dist/types/core/index.d.ts +20 -0
  30. package/dist/types/{src/core → core}/initializeConfig.d.ts +4 -4
  31. package/dist/types/core/types.d.ts +3 -0
  32. package/dist/types/{src/core → core}/validateMessages.d.ts +2 -2
  33. package/dist/types/core.d.ts +1 -0
  34. package/dist/types/index.d.ts +2 -0
  35. package/dist/types/{src/react → react}/IntlContext.d.ts +2 -2
  36. package/dist/types/react/IntlProvider.d.ts +7 -0
  37. package/dist/types/react/index.d.ts +7 -0
  38. package/dist/types/{src/react → react}/useFormatter.d.ts +1 -1
  39. package/dist/types/{src/react → react}/useIntlContext.d.ts +1 -1
  40. package/dist/types/react/useLocale.d.ts +2 -0
  41. package/dist/types/react/useMessages.d.ts +2 -0
  42. package/dist/types/react/useNow.d.ts +8 -0
  43. package/dist/types/react/useTimeZone.d.ts +1 -0
  44. package/dist/types/react/useTranslations.d.ts +12 -0
  45. package/dist/types/react/useTranslationsImpl.d.ts +9 -0
  46. package/dist/types/react.d.ts +1 -0
  47. package/package.json +18 -24
  48. package/react.d.ts +2 -1
  49. package/_IntlProvider.d.ts +0 -1
  50. package/_useLocale.d.ts +0 -1
  51. package/dist/_IntlProvider.js +0 -7
  52. package/dist/_useLocale.js +0 -7
  53. package/dist/core.js +0 -7
  54. package/dist/development/IntlContext-BKfsnzBx.js +0 -7
  55. package/dist/development/_IntlProvider.js +0 -61
  56. package/dist/development/_useLocale-0Rl9uR82.js +0 -19
  57. package/dist/development/_useLocale.js +0 -11
  58. package/dist/development/core.js +0 -69
  59. package/dist/development/index.js +0 -31
  60. package/dist/development/initializeConfig-BhfMSHP7.js +0 -185
  61. package/dist/development/react.js +0 -151
  62. package/dist/esm/IntlContext-DoS4CDM3.js +0 -1
  63. package/dist/esm/_IntlProvider.js +0 -1
  64. package/dist/esm/_useLocale-v-ZT5JoE.js +0 -1
  65. package/dist/esm/_useLocale.js +0 -1
  66. package/dist/esm/core.js +0 -1
  67. package/dist/esm/createFormatter-zqPbsiYR.js +0 -1
  68. package/dist/esm/index.js +0 -1
  69. package/dist/esm/initializeConfig-D2A8plWf.js +0 -1
  70. package/dist/esm/react.js +0 -1
  71. package/dist/index.js +0 -7
  72. package/dist/production/IntlContext-DcFt0tgW.js +0 -1
  73. package/dist/production/_IntlProvider.js +0 -1
  74. package/dist/production/_useLocale-CpTrqBDt.js +0 -1
  75. package/dist/production/_useLocale.js +0 -1
  76. package/dist/production/core.js +0 -1
  77. package/dist/production/createFormatter-CZeYe_QF.js +0 -1
  78. package/dist/production/index.js +0 -1
  79. package/dist/production/initializeConfig-AbYTngyP.js +0 -1
  80. package/dist/production/react.js +0 -1
  81. package/dist/react.js +0 -7
  82. package/dist/types/src/_IntlProvider.d.ts +0 -1
  83. package/dist/types/src/_useLocale.d.ts +0 -1
  84. package/dist/types/src/core/TranslationValues.d.ts +0 -6
  85. package/dist/types/src/core/createFormatter.d.ts +0 -27
  86. package/dist/types/src/core/createFormatter.test.d.ts +0 -1
  87. package/dist/types/src/core/createTranslator.d.ts +0 -71
  88. package/dist/types/src/core/createTranslator.test.d.ts +0 -1
  89. package/dist/types/src/core/createTranslatorImpl.d.ts +0 -17
  90. package/dist/types/src/core/index.d.ts +0 -18
  91. package/dist/types/src/core/utils/MessageKeys.d.ts +0 -5
  92. package/dist/types/src/core/utils/NamespaceKeys.d.ts +0 -5
  93. package/dist/types/src/core/utils/NestedKeyOf.d.ts +0 -4
  94. package/dist/types/src/core/utils/NestedValueOf.d.ts +0 -2
  95. package/dist/types/src/core.d.ts +0 -1
  96. package/dist/types/src/index.d.ts +0 -2
  97. package/dist/types/src/react/IntlProvider.d.ts +0 -7
  98. package/dist/types/src/react/IntlProvider.test.d.ts +0 -1
  99. package/dist/types/src/react/index.d.ts +0 -7
  100. package/dist/types/src/react/index.test.d.ts +0 -1
  101. package/dist/types/src/react/useFormatter.test.d.ts +0 -1
  102. package/dist/types/src/react/useLocale.d.ts +0 -1
  103. package/dist/types/src/react/useLocale.test.d.ts +0 -1
  104. package/dist/types/src/react/useMessages.d.ts +0 -2
  105. package/dist/types/src/react/useMessages.test.d.ts +0 -1
  106. package/dist/types/src/react/useNow.d.ts +0 -23
  107. package/dist/types/src/react/useNow.test.d.ts +0 -1
  108. package/dist/types/src/react/useTimeZone.d.ts +0 -1
  109. package/dist/types/src/react/useTimeZone.test.d.ts +0 -1
  110. package/dist/types/src/react/useTranslations.d.ts +0 -62
  111. package/dist/types/src/react/useTranslations.test.d.ts +0 -1
  112. package/dist/types/src/react/useTranslationsImpl.d.ts +0 -9
  113. package/dist/types/src/react.d.ts +0 -1
  114. package/dist/types/test/setup.d.ts +0 -1
  115. /package/dist/types/{src/core → core}/NumberFormatOptions.d.ts +0 -0
  116. /package/dist/types/{src/core → core}/RelativeTimeFormatOptions.d.ts +0 -0
  117. /package/dist/types/{src/core → core}/TimeZone.d.ts +0 -0
  118. /package/dist/types/{src/core → core}/joinPath.d.ts +0 -0
  119. /package/dist/types/{src/core → core}/resolveNamespace.d.ts +0 -0
package/core.d.ts CHANGED
@@ -1 +1,2 @@
1
- export * from './dist/types/src/core';
1
+ // Needed for projects with `moduleResolution: 'node'`
2
+ export * from './dist/types/core.d.ts';
@@ -0,0 +1,82 @@
1
+ import { r as resolveNamespace, e as createBaseTranslator, d as createCache, b as createIntlFormatters, f as defaultGetMessageFallback, g as defaultOnError } from './initializeConfig-DSmAVNvj.js';
2
+ export { I as IntlError, a as IntlErrorCode, c as createFormatter, i as initializeConfig } from './initializeConfig-DSmAVNvj.js';
3
+
4
+
5
+
6
+
7
+ function createTranslatorImpl({
8
+ messages,
9
+ namespace,
10
+ ...rest
11
+ }, namespacePrefix) {
12
+ // The `namespacePrefix` is part of the type system.
13
+ // See the comment in the function invocation.
14
+ messages = messages[namespacePrefix];
15
+ namespace = resolveNamespace(namespace, namespacePrefix);
16
+ return createBaseTranslator({
17
+ ...rest,
18
+ messages,
19
+ namespace
20
+ });
21
+ }
22
+
23
+ /**
24
+ * Translates messages from the given namespace by using the ICU syntax.
25
+ * See https://formatjs.io/docs/core-concepts/icu-syntax.
26
+ *
27
+ * If no namespace is provided, all available messages are returned.
28
+ * The namespace can also indicate nesting by using a dot
29
+ * (e.g. `namespace.Component`).
30
+ */
31
+ function createTranslator({
32
+ _cache = createCache(),
33
+ _formatters = createIntlFormatters(_cache),
34
+ getMessageFallback = defaultGetMessageFallback,
35
+ messages,
36
+ namespace,
37
+ onError = defaultOnError,
38
+ ...rest
39
+ }) {
40
+ // We have to wrap the actual function so the type inference for the optional
41
+ // namespace works correctly. See https://stackoverflow.com/a/71529575/343045
42
+ // The prefix ("!") is arbitrary.
43
+ // @ts-expect-error Use the explicit annotation instead
44
+ return createTranslatorImpl({
45
+ ...rest,
46
+ onError,
47
+ cache: _cache,
48
+ formatters: _formatters,
49
+ getMessageFallback,
50
+ // @ts-expect-error `messages` is allowed to be `undefined` here and will be handled internally
51
+ messages: {
52
+ '!': messages
53
+ },
54
+ namespace: namespace ? `!.${namespace}` : '!'
55
+ }, '!');
56
+ }
57
+
58
+ /**
59
+ * Checks if a locale exists in a list of locales.
60
+ *
61
+ * Additionally, in development, the provided locales are validated to
62
+ * ensure they follow the Unicode language identifier standard.
63
+ *
64
+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale
65
+ */
66
+ function hasLocale(locales, candidate) {
67
+ {
68
+ for (const locale of locales) {
69
+ try {
70
+ const constructed = new Intl.Locale(locale);
71
+ if (!constructed.language) {
72
+ throw new Error('Language is required');
73
+ }
74
+ } catch {
75
+ console.error(`Found invalid locale within provided \`locales\`: "${locale}"\nPlease ensure you're using a valid Unicode locale identifier (e.g. "en-US").`);
76
+ }
77
+ }
78
+ }
79
+ return locales.includes(candidate);
80
+ }
81
+
82
+ export { createCache as _createCache, createIntlFormatters as _createIntlFormatters, createTranslator, hasLocale };
@@ -0,0 +1,7 @@
1
+ export { I as IntlError, a as IntlErrorCode, d as _createCache, b as _createIntlFormatters, c as createFormatter, i as initializeConfig } from './initializeConfig-DSmAVNvj.js';
2
+ export { createTranslator, hasLocale } from './core.js';
3
+ export { IntlProvider, useFormatter, useLocale, useMessages, useNow, useTimeZone, useTranslations } from './react.js';
4
+
5
+
6
+
7
+