use-intl 0.0.0-package-boundaries.0 → 0.0.0-package-boundaries-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/core/use-intl.esm.js +132 -27
- package/dist/core/use-intl.esm.js.map +1 -1
- package/dist/core/use-intl.esm10.js +27 -23
- package/dist/core/use-intl.esm10.js.map +1 -1
- package/dist/core/use-intl.esm2.js +9 -196
- package/dist/core/use-intl.esm2.js.map +1 -1
- package/dist/core/use-intl.esm3.js +30 -11
- package/dist/core/use-intl.esm3.js.map +1 -1
- package/dist/core/use-intl.esm4.js +31 -132
- package/dist/core/use-intl.esm4.js.map +1 -1
- package/dist/core/use-intl.esm5.js +20 -28
- package/dist/core/use-intl.esm5.js.map +1 -1
- package/dist/core/use-intl.esm6.js +193 -21
- package/dist/core/use-intl.esm6.js.map +1 -1
- package/dist/core/use-intl.esm8.js +46 -28
- package/dist/core/use-intl.esm8.js.map +1 -1
- package/dist/core/use-intl.esm9.js +23 -45
- package/dist/core/use-intl.esm9.js.map +1 -1
- package/dist/react/use-intl.esm.js +2 -2
- package/dist/react/use-intl.esm10.js +3 -10
- package/dist/react/use-intl.esm10.js.map +1 -1
- package/dist/react/use-intl.esm11.js +2 -2
- package/dist/react/use-intl.esm2.js +1 -1
- package/dist/react/use-intl.esm3.js +41 -4
- package/dist/react/use-intl.esm3.js.map +1 -1
- package/dist/react/use-intl.esm4.js +1 -1
- package/dist/react/use-intl.esm5.js +4 -41
- package/dist/react/use-intl.esm5.js.map +1 -1
- package/dist/react/use-intl.esm6.js +2 -2
- package/dist/react/use-intl.esm7.js +20 -4
- package/dist/react/use-intl.esm7.js.map +1 -1
- package/dist/react/use-intl.esm8.js +4 -20
- package/dist/react/use-intl.esm8.js.map +1 -1
- package/dist/react/use-intl.esm9.js +10 -3
- package/dist/react/use-intl.esm9.js.map +1 -1
- package/dist/use-intl.esm.js +10 -10
- package/package.json +1 -1
|
@@ -1,32 +1,50 @@
|
|
|
1
|
-
import { extends as _extends } from '../_virtual/use-intl.esm.js';
|
|
1
|
+
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../_virtual/use-intl.esm.js';
|
|
2
|
+
import IntlError, { IntlErrorCode } from './use-intl.esm3.js';
|
|
3
|
+
import createBaseTranslator from './use-intl.esm6.js';
|
|
4
|
+
import resolveNamespace from './use-intl.esm11.js';
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
function
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
6
|
+
var _excluded = ["getMessageFallback", "messages", "namespace", "onError"];
|
|
7
|
+
function createTranslatorImpl(_ref, namespacePrefix) {
|
|
8
|
+
var getMessageFallback = _ref.getMessageFallback,
|
|
9
|
+
messages = _ref.messages,
|
|
10
|
+
namespace = _ref.namespace,
|
|
11
|
+
onError = _ref.onError,
|
|
12
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
13
|
+
// The `namespacePrefix` is part of the type system.
|
|
14
|
+
// See the comment in the function invocation.
|
|
15
|
+
messages = messages[namespacePrefix];
|
|
16
|
+
namespace = resolveNamespace(namespace, namespacePrefix);
|
|
17
|
+
var translator = createBaseTranslator(_extends({}, rest, {
|
|
18
|
+
onError: onError,
|
|
19
|
+
getMessageFallback: getMessageFallback,
|
|
20
|
+
messages: messages,
|
|
21
|
+
namespace: namespace
|
|
22
|
+
}));
|
|
23
|
+
var originalRich = translator.rich;
|
|
24
|
+
function base() {
|
|
25
|
+
return translator.apply(void 0, arguments);
|
|
26
|
+
}
|
|
27
|
+
// Augment `t.rich` to return plain strings
|
|
28
|
+
base.rich = function (key, /** Key value pairs for values to interpolate into the message. */
|
|
29
|
+
values, formats) {
|
|
30
|
+
// `chunks` is returned as a string when no React element
|
|
31
|
+
// is used, therefore it's safe to cast this type.
|
|
32
|
+
var result = originalRich(key, values, formats);
|
|
33
|
+
// When only string chunks are provided to the parser, only strings should be returned here.
|
|
34
|
+
if (typeof result !== 'string') {
|
|
35
|
+
var error = new IntlError(IntlErrorCode.FORMATTING_ERROR, process.env.NODE_ENV !== 'production' ? "`createTranslator` only accepts functions for rich text formatting that receive and return strings.\n\nE.g. t.rich('rich', {b: (chunks) => `<b>${chunks}</b>`})" : undefined);
|
|
36
|
+
onError(error);
|
|
37
|
+
return getMessageFallback({
|
|
38
|
+
error: error,
|
|
39
|
+
key: key,
|
|
40
|
+
namespace: namespace
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
base.raw = translator.raw;
|
|
46
|
+
return base;
|
|
29
47
|
}
|
|
30
48
|
|
|
31
|
-
export {
|
|
49
|
+
export { createTranslatorImpl as default };
|
|
32
50
|
//# sourceMappingURL=use-intl.esm8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-intl.esm8.js","sources":["../../src/core/
|
|
1
|
+
{"version":3,"file":"use-intl.esm8.js","sources":["../../src/core/createTranslatorImpl.tsx"],"sourcesContent":["import AbstractIntlMessages from './AbstractIntlMessages';\nimport {InitializedIntlConfig} from './IntlConfig';\nimport IntlError, {IntlErrorCode} from './IntlError';\nimport {\n RichTranslationValues,\n RichTranslationValuesPlain\n} from './TranslationValues';\nimport createBaseTranslator from './createBaseTranslator';\nimport resolveNamespace from './resolveNamespace';\nimport NestedKeyOf from './utils/NestedKeyOf';\n\nexport type CreateTranslatorImplProps<Messages> = Omit<\n InitializedIntlConfig,\n 'messages'\n> & {\n namespace: string;\n messages: Messages;\n};\n\nexport default function createTranslatorImpl<\n Messages extends AbstractIntlMessages,\n NestedKey extends NestedKeyOf<Messages>\n>(\n {\n getMessageFallback,\n messages,\n namespace,\n onError,\n ...rest\n }: CreateTranslatorImplProps<Messages>,\n namespacePrefix: string\n) {\n // The `namespacePrefix` is part of the type system.\n // See the comment in the function invocation.\n messages = messages[namespacePrefix] as Messages;\n namespace = resolveNamespace(namespace, namespacePrefix) as NestedKey;\n\n const translator = createBaseTranslator<Messages, NestedKey>({\n ...rest,\n onError,\n getMessageFallback,\n messages,\n namespace\n });\n\n const originalRich = translator.rich;\n\n function base(...args: Parameters<typeof translator>) {\n return translator(...args);\n }\n\n // Augment `t.rich` to return plain strings\n base.rich = (\n key: Parameters<typeof originalRich>[0],\n /** Key value pairs for values to interpolate into the message. */\n values: RichTranslationValuesPlain,\n formats?: Parameters<typeof originalRich>[2]\n ): string => {\n // `chunks` is returned as a string when no React element\n // is used, therefore it's safe to cast this type.\n const result = originalRich(key, values as RichTranslationValues, formats);\n\n // When only string chunks are provided to the parser, only strings should be returned here.\n if (typeof result !== 'string') {\n const error = new IntlError(\n IntlErrorCode.FORMATTING_ERROR,\n process.env.NODE_ENV !== 'production'\n ? \"`createTranslator` only accepts functions for rich text formatting that receive and return strings.\\n\\nE.g. t.rich('rich', {b: (chunks) => `<b>${chunks}</b>`})\"\n : undefined\n );\n\n onError(error);\n return getMessageFallback({error, key, namespace});\n }\n\n return result;\n };\n\n base.raw = translator.raw;\n\n return base;\n}\n"],"names":["createTranslatorImpl","_ref","namespacePrefix","getMessageFallback","messages","namespace","onError","rest","_objectWithoutPropertiesLoose","_excluded","resolveNamespace","translator","createBaseTranslator","_extends","originalRich","rich","base","apply","arguments","key","values","formats","result","error","IntlError","IntlErrorCode","FORMATTING_ERROR","process","env","NODE_ENV","undefined","raw"],"mappings":";;;;;;AAmBc,SAAUA,oBAAoBA,CAAAC,IAAA,EAW1CC,eAAuB,EAAA;AAAA,EAAA,IANrBC,kBAAkB,GAAAF,IAAA,CAAlBE,kBAAkB;IAClBC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IACTC,OAAO,GAAAL,IAAA,CAAPK,OAAO;AACJC,IAAAA,IAAI,GAAAC,6BAAA,CAAAP,IAAA,EAAAQ,SAAA,CAAA,CAAA;AAIT;AACA;AACAL,EAAAA,QAAQ,GAAGA,QAAQ,CAACF,eAAe,CAAa,CAAA;AAChDG,EAAAA,SAAS,GAAGK,gBAAgB,CAACL,SAAS,EAAEH,eAAe,CAAc,CAAA;AAErE,EAAA,IAAMS,UAAU,GAAGC,oBAAoB,CAAAC,QAAA,KAClCN,IAAI,EAAA;AACPD,IAAAA,OAAO,EAAPA,OAAO;AACPH,IAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBC,IAAAA,QAAQ,EAARA,QAAQ;AACRC,IAAAA,SAAS,EAATA,SAAAA;AAAS,GAAA,CACV,CAAC,CAAA;AAEF,EAAA,IAAMS,YAAY,GAAGH,UAAU,CAACI,IAAI,CAAA;EAEpC,SAASC,IAAIA,GAAuC;AAClD,IAAA,OAAOL,UAAU,CAAAM,KAAA,CAAA,KAAA,CAAA,EAAAC,SAAQ,CAAC,CAAA;AAC5B,GAAA;AAEA;AACAF,EAAAA,IAAI,CAACD,IAAI,GAAG,UACVI,GAAuC;EAEvCC,MAAkC,EAClCC,OAA4C,EAClC;AACV;AACA;IACA,IAAMC,MAAM,GAAGR,YAAY,CAACK,GAAG,EAAEC,MAA+B,EAAEC,OAAO,CAAC,CAAA;AAE1E;AACA,IAAA,IAAI,OAAOC,MAAM,KAAK,QAAQ,EAAE;MAC9B,IAAMC,KAAK,GAAG,IAAIC,SAAS,CACzBC,aAAa,CAACC,gBAAgB,EAC9BC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GACjC,iKAAiK,GACjKC,SAAS,CACd,CAAA;MAEDxB,OAAO,CAACiB,KAAK,CAAC,CAAA;AACd,MAAA,OAAOpB,kBAAkB,CAAC;AAACoB,QAAAA,KAAK,EAALA,KAAK;AAAEJ,QAAAA,GAAG,EAAHA,GAAG;AAAEd,QAAAA,SAAS,EAATA,SAAAA;AAAU,OAAA,CAAC,CAAA;AACnD,KAAA;AAED,IAAA,OAAOiB,MAAM,CAAA;GACd,CAAA;AAEDN,EAAAA,IAAI,CAACe,GAAG,GAAGpB,UAAU,CAACoB,GAAG,CAAA;AAEzB,EAAA,OAAOf,IAAI,CAAA;AACb;;;;"}
|
|
@@ -1,50 +1,28 @@
|
|
|
1
|
-
import
|
|
2
|
-
import IntlError, { IntlErrorCode } from './use-intl.esm.js';
|
|
3
|
-
import createBaseTranslator from './use-intl.esm2.js';
|
|
4
|
-
import resolveNamespace from './use-intl.esm11.js';
|
|
1
|
+
import IntlError, { IntlErrorCode } from './use-intl.esm3.js';
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
getMessageFallback: getMessageFallback,
|
|
20
|
-
messages: messages,
|
|
21
|
-
namespace: namespace
|
|
22
|
-
}));
|
|
23
|
-
var originalRich = translator.rich;
|
|
24
|
-
function base() {
|
|
25
|
-
return translator.apply(void 0, arguments);
|
|
26
|
-
}
|
|
27
|
-
// Augment `t.rich` to return plain strings
|
|
28
|
-
base.rich = function (key, /** Key value pairs for values to interpolate into the message. */
|
|
29
|
-
values, formats) {
|
|
30
|
-
// `chunks` is returned as a string when no React element
|
|
31
|
-
// is used, therefore it's safe to cast this type.
|
|
32
|
-
var result = originalRich(key, values, formats);
|
|
33
|
-
// When only string chunks are provided to the parser, only strings should be returned here.
|
|
34
|
-
if (typeof result !== 'string') {
|
|
35
|
-
var error = new IntlError(IntlErrorCode.FORMATTING_ERROR, process.env.NODE_ENV !== 'production' ? "`createTranslator` only accepts functions for rich text formatting that receive and return strings.\n\nE.g. t.rich('rich', {b: (chunks) => `<b>${chunks}</b>`})" : undefined);
|
|
36
|
-
onError(error);
|
|
37
|
-
return getMessageFallback({
|
|
38
|
-
error: error,
|
|
39
|
-
key: key,
|
|
40
|
-
namespace: namespace
|
|
41
|
-
});
|
|
3
|
+
function validateMessagesSegment(messages, invalidKeyLabels, parentPath) {
|
|
4
|
+
Object.entries(messages).forEach(function (_ref) {
|
|
5
|
+
var key = _ref[0],
|
|
6
|
+
messageOrMessages = _ref[1];
|
|
7
|
+
if (key.includes('.')) {
|
|
8
|
+
var keyLabel = key;
|
|
9
|
+
if (parentPath) keyLabel += " (at " + parentPath + ")";
|
|
10
|
+
invalidKeyLabels.push(keyLabel);
|
|
11
|
+
}
|
|
12
|
+
if (messageOrMessages != null && typeof messageOrMessages === 'object') {
|
|
13
|
+
validateMessagesSegment(messageOrMessages, invalidKeyLabels, [parentPath, key].filter(function (part) {
|
|
14
|
+
return part != null;
|
|
15
|
+
}).join('.'));
|
|
42
16
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function validateMessages(messages, onError) {
|
|
20
|
+
var invalidKeyLabels = [];
|
|
21
|
+
validateMessagesSegment(messages, invalidKeyLabels);
|
|
22
|
+
if (invalidKeyLabels.length > 0) {
|
|
23
|
+
onError(new IntlError(IntlErrorCode.INVALID_KEY, process.env.NODE_ENV !== 'production' ? "Namespace keys can not contain the character \".\" as this is used to express nesting. Please remove it or replace it with another character.\n\nInvalid " + (invalidKeyLabels.length === 1 ? 'key' : 'keys') + ": " + invalidKeyLabels.join(', ') + "\n\nIf you're migrating from a flat structure, you can convert your messages as follows:\n\nimport {set} from \"lodash\";\n\nconst input = {\n \"one.one\": \"1.1\",\n \"one.two\": \"1.2\",\n \"two.one.one\": \"2.1.1\"\n};\n\nconst output = Object.entries(input).reduce(\n (acc, [key, value]) => set(acc, key, value),\n {}\n);\n\n// Output:\n//\n// {\n// \"one\": {\n// \"one\": \"1.1\",\n// \"two\": \"1.2\"\n// },\n// \"two\": {\n// \"one\": {\n// \"one\": \"2.1.1\"\n// }\n// }\n// }\n" : undefined));
|
|
24
|
+
}
|
|
47
25
|
}
|
|
48
26
|
|
|
49
|
-
export {
|
|
27
|
+
export { validateMessages as default };
|
|
50
28
|
//# sourceMappingURL=use-intl.esm9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-intl.esm9.js","sources":["../../src/core/
|
|
1
|
+
{"version":3,"file":"use-intl.esm9.js","sources":["../../src/core/validateMessages.tsx"],"sourcesContent":["import AbstractIntlMessages from './AbstractIntlMessages';\nimport IntlError, {IntlErrorCode} from './IntlError';\n\nfunction validateMessagesSegment(\n messages: AbstractIntlMessages,\n invalidKeyLabels: Array<string>,\n parentPath?: string\n) {\n Object.entries(messages).forEach(([key, messageOrMessages]) => {\n if (key.includes('.')) {\n let keyLabel = key;\n if (parentPath) keyLabel += ` (at ${parentPath})`;\n invalidKeyLabels.push(keyLabel);\n }\n\n if (messageOrMessages != null && typeof messageOrMessages === 'object') {\n validateMessagesSegment(\n messageOrMessages,\n invalidKeyLabels,\n [parentPath, key].filter((part) => part != null).join('.')\n );\n }\n });\n}\n\nexport default function validateMessages(\n messages: AbstractIntlMessages,\n onError: (error: IntlError) => void\n) {\n const invalidKeyLabels: Array<string> = [];\n validateMessagesSegment(messages, invalidKeyLabels);\n\n if (invalidKeyLabels.length > 0) {\n onError(\n new IntlError(\n IntlErrorCode.INVALID_KEY,\n process.env.NODE_ENV !== 'production'\n ? `Namespace keys can not contain the character \".\" as this is used to express nesting. Please remove it or replace it with another character.\n\nInvalid ${\n invalidKeyLabels.length === 1 ? 'key' : 'keys'\n }: ${invalidKeyLabels.join(', ')}\n\nIf you're migrating from a flat structure, you can convert your messages as follows:\n\nimport {set} from \"lodash\";\n\nconst input = {\n \"one.one\": \"1.1\",\n \"one.two\": \"1.2\",\n \"two.one.one\": \"2.1.1\"\n};\n\nconst output = Object.entries(input).reduce(\n (acc, [key, value]) => set(acc, key, value),\n {}\n);\n\n// Output:\n//\n// {\n// \"one\": {\n// \"one\": \"1.1\",\n// \"two\": \"1.2\"\n// },\n// \"two\": {\n// \"one\": {\n// \"one\": \"2.1.1\"\n// }\n// }\n// }\n`\n : undefined\n )\n );\n }\n}\n"],"names":["validateMessagesSegment","messages","invalidKeyLabels","parentPath","Object","entries","forEach","_ref","key","messageOrMessages","includes","keyLabel","push","filter","part","join","validateMessages","onError","length","IntlError","IntlErrorCode","INVALID_KEY","process","env","NODE_ENV","undefined"],"mappings":";;AAGA,SAASA,uBAAuBA,CAC9BC,QAA8B,EAC9BC,gBAA+B,EAC/BC,UAAmB,EAAA;EAEnBC,MAAM,CAACC,OAAO,CAACJ,QAAQ,CAAC,CAACK,OAAO,CAAC,UAAAC,IAAA,EAA6B;IAAA,IAA3BC,GAAG,GAAAD,IAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,iBAAiB,GAAAF,IAAA,CAAA,CAAA,CAAA,CAAA;AACvD,IAAA,IAAIC,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC,EAAE;MACrB,IAAIC,QAAQ,GAAGH,GAAG,CAAA;AAClB,MAAA,IAAIL,UAAU,EAAEQ,QAAQ,IAAA,OAAA,GAAYR,UAAU,GAAG,GAAA,CAAA;AACjDD,MAAAA,gBAAgB,CAACU,IAAI,CAACD,QAAQ,CAAC,CAAA;AAChC,KAAA;IAED,IAAIF,iBAAiB,IAAI,IAAI,IAAI,OAAOA,iBAAiB,KAAK,QAAQ,EAAE;AACtET,MAAAA,uBAAuB,CACrBS,iBAAiB,EACjBP,gBAAgB,EAChB,CAACC,UAAU,EAAEK,GAAG,CAAC,CAACK,MAAM,CAAC,UAACC,IAAI,EAAA;QAAA,OAAKA,IAAI,IAAI,IAAI,CAAA;AAAA,OAAA,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAC3D,CAAA;AACF,KAAA;AACH,GAAC,CAAC,CAAA;AACJ,CAAA;AAEc,SAAUC,gBAAgBA,CACtCf,QAA8B,EAC9BgB,OAAmC,EAAA;EAEnC,IAAMf,gBAAgB,GAAkB,EAAE,CAAA;AAC1CF,EAAAA,uBAAuB,CAACC,QAAQ,EAAEC,gBAAgB,CAAC,CAAA;AAEnD,EAAA,IAAIA,gBAAgB,CAACgB,MAAM,GAAG,CAAC,EAAE;AAC/BD,IAAAA,OAAO,CACL,IAAIE,SAAS,CACXC,aAAa,CAACC,WAAW,EACzBC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAI/BtB,2JAAAA,IAAAA,gBAAgB,CAACgB,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,MAC1C,CAAKhB,GAAAA,IAAAA,GAAAA,gBAAgB,CAACa,IAAI,CAAC,IAAI,CAAC,GA+BhCU,4gBAAAA,GAAAA,SAAS,CACd,CACF,CAAA;AACF,GAAA;AACH;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../_virtual/use-intl.esm.js';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import initializeConfig from '../core/use-intl.
|
|
4
|
-
import IntlContext from './use-intl.
|
|
3
|
+
import initializeConfig from '../core/use-intl.esm5.js';
|
|
4
|
+
import IntlContext from './use-intl.esm10.js';
|
|
5
5
|
|
|
6
6
|
var _excluded = ["children"];
|
|
7
7
|
function IntlProvider(_ref) {
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import IntlContext from './use-intl.esm9.js';
|
|
1
|
+
import { createContext } from 'react';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
var context = useContext(IntlContext);
|
|
6
|
-
if (!context) {
|
|
7
|
-
throw new Error(process.env.NODE_ENV !== 'production' ? 'No intl context found. Have you configured the provider?' : undefined);
|
|
8
|
-
}
|
|
9
|
-
return context;
|
|
10
|
-
}
|
|
3
|
+
var IntlContext = /*#__PURE__*/createContext(undefined);
|
|
11
4
|
|
|
12
|
-
export {
|
|
5
|
+
export { IntlContext as default };
|
|
13
6
|
//# sourceMappingURL=use-intl.esm10.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-intl.esm10.js","sources":["../../src/react/
|
|
1
|
+
{"version":3,"file":"use-intl.esm10.js","sources":["../../src/react/IntlContext.tsx"],"sourcesContent":["import {createContext} from 'react';\nimport {InitializedIntlConfig} from '../core/IntlConfig';\n\nconst IntlContext = createContext<InitializedIntlConfig | undefined>(undefined);\n\nexport default IntlContext;\n"],"names":["IntlContext","createContext","undefined"],"mappings":";;AAGA,IAAMA,WAAW,gBAAGC,aAAa,CAAoCC,SAAS;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useRef, useMemo } from 'react';
|
|
2
|
-
import createBaseTranslator from '../core/use-intl.
|
|
2
|
+
import createBaseTranslator from '../core/use-intl.esm6.js';
|
|
3
3
|
import resolveNamespace from '../core/use-intl.esm11.js';
|
|
4
|
-
import useIntlContext from './use-intl.
|
|
4
|
+
import useIntlContext from './use-intl.esm9.js';
|
|
5
5
|
|
|
6
6
|
function useTranslationsImpl(allMessages, namespace, namespacePrefix) {
|
|
7
7
|
var _useIntlContext = useIntlContext(),
|
|
@@ -1,8 +1,45 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import useIntlContext from './use-intl.esm9.js';
|
|
2
3
|
|
|
3
|
-
function
|
|
4
|
-
return
|
|
4
|
+
function getNow() {
|
|
5
|
+
return new Date();
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Reading the current date via `new Date()` in components should be avoided, as
|
|
9
|
+
* it causes components to be impure and can lead to flaky tests. Instead, this
|
|
10
|
+
* hook can be used.
|
|
11
|
+
*
|
|
12
|
+
* By default, it returns the time when the component mounts. If `updateInterval`
|
|
13
|
+
* is specified, the value will be updated based on the interval.
|
|
14
|
+
*
|
|
15
|
+
* You can however also return a static value from this hook, if you
|
|
16
|
+
* configure the `now` parameter on the context provider. Note however,
|
|
17
|
+
* that if `updateInterval` is configured in this case, the component
|
|
18
|
+
* will initialize with the global value, but will afterwards update
|
|
19
|
+
* continuously based on the interval.
|
|
20
|
+
*
|
|
21
|
+
* For unit tests, this can be mocked to a constant value. For end-to-end
|
|
22
|
+
* testing, an environment parameter can be passed to the `now` parameter
|
|
23
|
+
* of the provider to mock this to a static value.
|
|
24
|
+
*/
|
|
25
|
+
function useNow(options) {
|
|
26
|
+
var updateInterval = options == null ? void 0 : options.updateInterval;
|
|
27
|
+
var _useIntlContext = useIntlContext(),
|
|
28
|
+
globalNow = _useIntlContext.now;
|
|
29
|
+
var _useState = useState(globalNow || getNow()),
|
|
30
|
+
now = _useState[0],
|
|
31
|
+
setNow = _useState[1];
|
|
32
|
+
useEffect(function () {
|
|
33
|
+
if (!updateInterval) return;
|
|
34
|
+
var intervalId = setInterval(function () {
|
|
35
|
+
setNow(getNow());
|
|
36
|
+
}, updateInterval);
|
|
37
|
+
return function () {
|
|
38
|
+
clearInterval(intervalId);
|
|
39
|
+
};
|
|
40
|
+
}, [globalNow, updateInterval]);
|
|
41
|
+
return now;
|
|
5
42
|
}
|
|
6
43
|
|
|
7
|
-
export {
|
|
44
|
+
export { useNow as default };
|
|
8
45
|
//# sourceMappingURL=use-intl.esm3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-intl.esm3.js","sources":["../../src/react/
|
|
1
|
+
{"version":3,"file":"use-intl.esm3.js","sources":["../../src/react/useNow.tsx"],"sourcesContent":["import {useState, useEffect} from 'react';\nimport useIntlContext from './useIntlContext';\n\ntype Options = {\n updateInterval?: number;\n};\n\nfunction getNow() {\n return new Date();\n}\n\n/**\n * Reading the current date via `new Date()` in components should be avoided, as\n * it causes components to be impure and can lead to flaky tests. Instead, this\n * hook can be used.\n *\n * By default, it returns the time when the component mounts. If `updateInterval`\n * is specified, the value will be updated based on the interval.\n *\n * You can however also return a static value from this hook, if you\n * configure the `now` parameter on the context provider. Note however,\n * that if `updateInterval` is configured in this case, the component\n * will initialize with the global value, but will afterwards update\n * continuously based on the interval.\n *\n * For unit tests, this can be mocked to a constant value. For end-to-end\n * testing, an environment parameter can be passed to the `now` parameter\n * of the provider to mock this to a static value.\n */\nexport default function useNow(options?: Options) {\n const updateInterval = options?.updateInterval;\n\n const {now: globalNow} = useIntlContext();\n const [now, setNow] = useState(globalNow || getNow());\n\n useEffect(() => {\n if (!updateInterval) return;\n\n const intervalId = setInterval(() => {\n setNow(getNow());\n }, updateInterval);\n\n return () => {\n clearInterval(intervalId);\n };\n }, [globalNow, updateInterval]);\n\n return now;\n}\n"],"names":["getNow","Date","useNow","options","updateInterval","_useIntlContext","useIntlContext","globalNow","now","_useState","useState","setNow","useEffect","intervalId","setInterval","clearInterval"],"mappings":";;;AAOA,SAASA,MAAMA,GAAA;EACb,OAAO,IAAIC,IAAI,EAAE,CAAA;AACnB,CAAA;AAEA;;;;;;;;;;;;;;;;;AAiBG;AACqB,SAAAC,MAAMA,CAACC,OAAiB,EAAA;AAC9C,EAAA,IAAMC,cAAc,GAAGD,OAAO,IAAPA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEC,cAAc,CAAA;AAE9C,EAAA,IAAAC,eAAA,GAAyBC,cAAc,EAAE;IAA7BC,SAAS,GAAAF,eAAA,CAAdG,GAAG,CAAA;EACV,IAAAC,SAAA,GAAsBC,QAAQ,CAACH,SAAS,IAAIP,MAAM,EAAE,CAAC;AAA9CQ,IAAAA,GAAG,GAAAC,SAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,MAAM,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;AAElBG,EAAAA,SAAS,CAAC,YAAK;IACb,IAAI,CAACR,cAAc,EAAE,OAAA;AAErB,IAAA,IAAMS,UAAU,GAAGC,WAAW,CAAC,YAAK;AAClCH,MAAAA,MAAM,CAACX,MAAM,EAAE,CAAC,CAAA;KACjB,EAAEI,cAAc,CAAC,CAAA;AAElB,IAAA,OAAO,YAAK;MACVW,aAAa,CAACF,UAAU,CAAC,CAAA;KAC1B,CAAA;AACH,GAAC,EAAE,CAACN,SAAS,EAAEH,cAAc,CAAC,CAAC,CAAA;AAE/B,EAAA,OAAOI,GAAG,CAAA;AACZ;;;;"}
|
|
@@ -1,45 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import useIntlContext from './use-intl.esm10.js';
|
|
1
|
+
import useIntlContext from './use-intl.esm9.js';
|
|
3
2
|
|
|
4
|
-
function
|
|
5
|
-
return
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Reading the current date via `new Date()` in components should be avoided, as
|
|
9
|
-
* it causes components to be impure and can lead to flaky tests. Instead, this
|
|
10
|
-
* hook can be used.
|
|
11
|
-
*
|
|
12
|
-
* By default, it returns the time when the component mounts. If `updateInterval`
|
|
13
|
-
* is specified, the value will be updated based on the interval.
|
|
14
|
-
*
|
|
15
|
-
* You can however also return a static value from this hook, if you
|
|
16
|
-
* configure the `now` parameter on the context provider. Note however,
|
|
17
|
-
* that if `updateInterval` is configured in this case, the component
|
|
18
|
-
* will initialize with the global value, but will afterwards update
|
|
19
|
-
* continuously based on the interval.
|
|
20
|
-
*
|
|
21
|
-
* For unit tests, this can be mocked to a constant value. For end-to-end
|
|
22
|
-
* testing, an environment parameter can be passed to the `now` parameter
|
|
23
|
-
* of the provider to mock this to a static value.
|
|
24
|
-
*/
|
|
25
|
-
function useNow(options) {
|
|
26
|
-
var updateInterval = options == null ? void 0 : options.updateInterval;
|
|
27
|
-
var _useIntlContext = useIntlContext(),
|
|
28
|
-
globalNow = _useIntlContext.now;
|
|
29
|
-
var _useState = useState(globalNow || getNow()),
|
|
30
|
-
now = _useState[0],
|
|
31
|
-
setNow = _useState[1];
|
|
32
|
-
useEffect(function () {
|
|
33
|
-
if (!updateInterval) return;
|
|
34
|
-
var intervalId = setInterval(function () {
|
|
35
|
-
setNow(getNow());
|
|
36
|
-
}, updateInterval);
|
|
37
|
-
return function () {
|
|
38
|
-
clearInterval(intervalId);
|
|
39
|
-
};
|
|
40
|
-
}, [globalNow, updateInterval]);
|
|
41
|
-
return now;
|
|
3
|
+
function useMessages() {
|
|
4
|
+
return useIntlContext().messages;
|
|
42
5
|
}
|
|
43
6
|
|
|
44
|
-
export {
|
|
7
|
+
export { useMessages as default };
|
|
45
8
|
//# sourceMappingURL=use-intl.esm5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-intl.esm5.js","sources":["../../src/react/
|
|
1
|
+
{"version":3,"file":"use-intl.esm5.js","sources":["../../src/react/useMessages.tsx"],"sourcesContent":["import useIntlContext from './useIntlContext';\n\nexport default function useMessages() {\n return useIntlContext().messages;\n}\n"],"names":["useMessages","useIntlContext","messages"],"mappings":";;AAEc,SAAUA,WAAWA,GAAA;AACjC,EAAA,OAAOC,cAAc,EAAE,CAACC,QAAQ,CAAA;AAClC;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
-
import createIntl from '../core/use-intl.
|
|
3
|
-
import useIntlContext from './use-intl.
|
|
2
|
+
import createIntl from '../core/use-intl.esm2.js';
|
|
3
|
+
import useIntlContext from './use-intl.esm9.js';
|
|
4
4
|
|
|
5
5
|
var hasWarned = false;
|
|
6
6
|
/** @deprecated Switch to `useFormatter` instead. */
|
|
@@ -1,8 +1,24 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import createFormatter from '../core/use-intl.esm.js';
|
|
3
|
+
import useIntlContext from './use-intl.esm9.js';
|
|
2
4
|
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
+
function useFormatter() {
|
|
6
|
+
var _useIntlContext = useIntlContext(),
|
|
7
|
+
formats = _useIntlContext.formats,
|
|
8
|
+
locale = _useIntlContext.locale,
|
|
9
|
+
globalNow = _useIntlContext.now,
|
|
10
|
+
onError = _useIntlContext.onError,
|
|
11
|
+
timeZone = _useIntlContext.timeZone;
|
|
12
|
+
return useMemo(function () {
|
|
13
|
+
return createFormatter({
|
|
14
|
+
formats: formats,
|
|
15
|
+
locale: locale,
|
|
16
|
+
now: globalNow,
|
|
17
|
+
onError: onError,
|
|
18
|
+
timeZone: timeZone
|
|
19
|
+
});
|
|
20
|
+
}, [formats, globalNow, locale, onError, timeZone]);
|
|
5
21
|
}
|
|
6
22
|
|
|
7
|
-
export {
|
|
23
|
+
export { useFormatter as default };
|
|
8
24
|
//# sourceMappingURL=use-intl.esm7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-intl.esm7.js","sources":["../../src/react/
|
|
1
|
+
{"version":3,"file":"use-intl.esm7.js","sources":["../../src/react/useFormatter.tsx"],"sourcesContent":["import {useMemo} from 'react';\nimport createFormatter from '../core/createFormatter';\nimport useIntlContext from './useIntlContext';\n\nexport default function useFormatter() {\n const {formats, locale, now: globalNow, onError, timeZone} = useIntlContext();\n\n return useMemo(\n () =>\n createFormatter({\n formats,\n locale,\n now: globalNow,\n onError,\n timeZone\n }),\n [formats, globalNow, locale, onError, timeZone]\n );\n}\n"],"names":["useFormatter","_useIntlContext","useIntlContext","formats","locale","globalNow","now","onError","timeZone","useMemo","createFormatter"],"mappings":";;;;AAIc,SAAUA,YAAYA,GAAA;AAClC,EAAA,IAAAC,eAAA,GAA6DC,cAAc,EAAE;IAAtEC,OAAO,GAAAF,eAAA,CAAPE,OAAO;IAAEC,MAAM,GAAAH,eAAA,CAANG,MAAM;IAAOC,SAAS,GAAAJ,eAAA,CAAdK,GAAG;IAAaC,OAAO,GAAAN,eAAA,CAAPM,OAAO;IAAEC,QAAQ,GAAAP,eAAA,CAARO,QAAQ,CAAA;AAEzD,EAAA,OAAOC,OAAO,CACZ,YAAA;AAAA,IAAA,OACEC,eAAe,CAAC;AACdP,MAAAA,OAAO,EAAPA,OAAO;AACPC,MAAAA,MAAM,EAANA,MAAM;AACNE,MAAAA,GAAG,EAAED,SAAS;AACdE,MAAAA,OAAO,EAAPA,OAAO;AACPC,MAAAA,QAAQ,EAARA,QAAAA;AACD,KAAA,CAAC,CAAA;GACJ,EAAA,CAACL,OAAO,EAAEE,SAAS,EAAED,MAAM,EAAEG,OAAO,EAAEC,QAAQ,CAAC,CAChD,CAAA;AACH;;;;"}
|
|
@@ -1,24 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import createFormatter from '../core/use-intl.esm4.js';
|
|
3
|
-
import useIntlContext from './use-intl.esm10.js';
|
|
1
|
+
import useIntlContext from './use-intl.esm9.js';
|
|
4
2
|
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
formats = _useIntlContext.formats,
|
|
8
|
-
locale = _useIntlContext.locale,
|
|
9
|
-
globalNow = _useIntlContext.now,
|
|
10
|
-
onError = _useIntlContext.onError,
|
|
11
|
-
timeZone = _useIntlContext.timeZone;
|
|
12
|
-
return useMemo(function () {
|
|
13
|
-
return createFormatter({
|
|
14
|
-
formats: formats,
|
|
15
|
-
locale: locale,
|
|
16
|
-
now: globalNow,
|
|
17
|
-
onError: onError,
|
|
18
|
-
timeZone: timeZone
|
|
19
|
-
});
|
|
20
|
-
}, [formats, globalNow, locale, onError, timeZone]);
|
|
3
|
+
function useTimeZone() {
|
|
4
|
+
return useIntlContext().timeZone;
|
|
21
5
|
}
|
|
22
6
|
|
|
23
|
-
export {
|
|
7
|
+
export { useTimeZone as default };
|
|
24
8
|
//# sourceMappingURL=use-intl.esm8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-intl.esm8.js","sources":["../../src/react/
|
|
1
|
+
{"version":3,"file":"use-intl.esm8.js","sources":["../../src/react/useTimeZone.tsx"],"sourcesContent":["import useIntlContext from './useIntlContext';\n\nexport default function useTimeZone() {\n return useIntlContext().timeZone;\n}\n"],"names":["useTimeZone","useIntlContext","timeZone"],"mappings":";;AAEc,SAAUA,WAAWA,GAAA;AACjC,EAAA,OAAOC,cAAc,EAAE,CAACC,QAAQ,CAAA;AAClC;;;;"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import IntlContext from './use-intl.esm10.js';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
function useIntlContext() {
|
|
5
|
+
var context = useContext(IntlContext);
|
|
6
|
+
if (!context) {
|
|
7
|
+
throw new Error(process.env.NODE_ENV !== 'production' ? 'No intl context found. Have you configured the provider?' : undefined);
|
|
8
|
+
}
|
|
9
|
+
return context;
|
|
10
|
+
}
|
|
4
11
|
|
|
5
|
-
export {
|
|
12
|
+
export { useIntlContext as default };
|
|
6
13
|
//# sourceMappingURL=use-intl.esm9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-intl.esm9.js","sources":["../../src/react/
|
|
1
|
+
{"version":3,"file":"use-intl.esm9.js","sources":["../../src/react/useIntlContext.tsx"],"sourcesContent":["import {useContext} from 'react';\nimport IntlContext from './IntlContext';\n\nexport default function useIntlContext() {\n const context = useContext(IntlContext);\n\n if (!context) {\n throw new Error(\n process.env.NODE_ENV !== 'production'\n ? 'No intl context found. Have you configured the provider?'\n : undefined\n );\n }\n\n return context;\n}\n"],"names":["useIntlContext","context","useContext","IntlContext","Error","process","env","NODE_ENV","undefined"],"mappings":";;;AAGc,SAAUA,cAAcA,GAAA;AACpC,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAACC,WAAW,CAAC,CAAA;EAEvC,IAAI,CAACF,OAAO,EAAE;AACZ,IAAA,MAAM,IAAIG,KAAK,CACbC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GACjC,0DAA0D,GAC1DC,SAAS,CACd,CAAA;AACF,GAAA;AAED,EAAA,OAAOP,OAAO,CAAA;AAChB;;;;"}
|
package/dist/use-intl.esm.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export { default as IntlError, IntlErrorCode } from './core/use-intl.
|
|
2
|
-
export { default as createTranslator } from './core/use-intl.
|
|
3
|
-
export { default as createBaseTranslator } from './core/use-intl.
|
|
4
|
-
export { default as createFormatter } from './core/use-intl.
|
|
5
|
-
export { default as initializeConfig } from './core/use-intl.
|
|
6
|
-
export { default as createIntl } from './core/use-intl.
|
|
1
|
+
export { default as IntlError, IntlErrorCode } from './core/use-intl.esm3.js';
|
|
2
|
+
export { default as createTranslator } from './core/use-intl.esm4.js';
|
|
3
|
+
export { default as createBaseTranslator } from './core/use-intl.esm6.js';
|
|
4
|
+
export { default as createFormatter } from './core/use-intl.esm.js';
|
|
5
|
+
export { default as initializeConfig } from './core/use-intl.esm5.js';
|
|
6
|
+
export { default as createIntl } from './core/use-intl.esm2.js';
|
|
7
7
|
export { default as IntlProvider } from './react/use-intl.esm.js';
|
|
8
8
|
export { default as useTranslations } from './react/use-intl.esm4.js';
|
|
9
9
|
export { default as useLocale } from './react/use-intl.esm2.js';
|
|
10
|
-
export { default as useNow } from './react/use-intl.
|
|
11
|
-
export { default as useTimeZone } from './react/use-intl.
|
|
12
|
-
export { default as useMessages } from './react/use-intl.
|
|
13
|
-
export { default as useFormatter } from './react/use-intl.
|
|
10
|
+
export { default as useNow } from './react/use-intl.esm3.js';
|
|
11
|
+
export { default as useTimeZone } from './react/use-intl.esm8.js';
|
|
12
|
+
export { default as useMessages } from './react/use-intl.esm5.js';
|
|
13
|
+
export { default as useFormatter } from './react/use-intl.esm7.js';
|
|
14
14
|
export { default as useIntl } from './react/use-intl.esm6.js';
|
|
15
15
|
//# sourceMappingURL=use-intl.esm.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "use-intl",
|
|
3
|
-
"version": "0.0.0-package-boundaries
|
|
3
|
+
"version": "0.0.0-package-boundaries-1",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"author": "Jan Amann <jan@amann.work>",
|
|
6
6
|
"description": "Minimal, but complete solution for managing internationalization in React apps.",
|