react-intlayer 5.5.3 → 5.5.5

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 (43) hide show
  1. package/dist/cjs/client/index.cjs +10 -4
  2. package/dist/cjs/client/index.cjs.map +1 -1
  3. package/dist/cjs/client/useDictionaryDynamic.cjs +42 -0
  4. package/dist/cjs/client/useDictionaryDynamic.cjs.map +1 -0
  5. package/dist/cjs/client/useLoadDynamic.cjs +56 -0
  6. package/dist/cjs/client/useLoadDynamic.cjs.map +1 -0
  7. package/dist/cjs/index.cjs +4 -0
  8. package/dist/cjs/index.cjs.map +1 -1
  9. package/dist/cjs/server/index.cjs +6 -0
  10. package/dist/cjs/server/index.cjs.map +1 -1
  11. package/dist/cjs/server/useDictionaryDynamic.cjs +51 -0
  12. package/dist/cjs/server/useDictionaryDynamic.cjs.map +1 -0
  13. package/dist/cjs/server/useLoadDynamic.cjs +34 -0
  14. package/dist/cjs/server/useLoadDynamic.cjs.map +1 -0
  15. package/dist/esm/client/index.mjs +12 -8
  16. package/dist/esm/client/index.mjs.map +1 -1
  17. package/dist/esm/client/useDictionaryDynamic.mjs +18 -0
  18. package/dist/esm/client/useDictionaryDynamic.mjs.map +1 -0
  19. package/dist/esm/client/useLoadDynamic.mjs +32 -0
  20. package/dist/esm/client/useLoadDynamic.mjs.map +1 -0
  21. package/dist/esm/index.mjs +12 -8
  22. package/dist/esm/index.mjs.map +1 -1
  23. package/dist/esm/server/index.mjs +4 -0
  24. package/dist/esm/server/index.mjs.map +1 -1
  25. package/dist/esm/server/useDictionaryDynamic.mjs +17 -0
  26. package/dist/esm/server/useDictionaryDynamic.mjs.map +1 -0
  27. package/dist/esm/server/useLoadDynamic.mjs +10 -0
  28. package/dist/esm/server/useLoadDynamic.mjs.map +1 -0
  29. package/dist/types/client/index.d.ts +8 -6
  30. package/dist/types/client/index.d.ts.map +1 -1
  31. package/dist/types/client/useDictionaryDynamic.d.ts +9 -0
  32. package/dist/types/client/useDictionaryDynamic.d.ts.map +1 -0
  33. package/dist/types/client/useLoadDynamic.d.ts +2 -0
  34. package/dist/types/client/useLoadDynamic.d.ts.map +1 -0
  35. package/dist/types/index.d.ts +1 -1
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/types/server/index.d.ts +2 -0
  38. package/dist/types/server/index.d.ts.map +1 -1
  39. package/dist/types/server/useDictionaryDynamic.d.ts +9 -0
  40. package/dist/types/server/useDictionaryDynamic.d.ts.map +1 -0
  41. package/dist/types/server/useLoadDynamic.d.ts +2 -0
  42. package/dist/types/server/useLoadDynamic.d.ts.map +1 -0
  43. package/package.json +15 -15
@@ -26,23 +26,27 @@ __export(client_exports, {
26
26
  setLocaleCookie: () => import_useLocaleCookie.setLocaleCookie,
27
27
  t: () => import_t.t,
28
28
  useDictionary: () => import_useDictionary.useDictionary,
29
+ useDictionaryDynamic: () => import_useDictionaryDynamic.useDictionaryDynamic,
29
30
  useIntlayer: () => import_useIntlayer.useIntlayer,
30
31
  useIntlayerAsync: () => import_useIntlayerAsync.useIntlayerAsync,
31
32
  useIntlayerContext: () => import_IntlayerProvider.useIntlayerContext,
33
+ useLoadDynamic: () => import_useLoadDynamic.useLoadDynamic,
32
34
  useLocale: () => import_useLocale.useLocale,
33
35
  useLocaleBase: () => import_useLocaleBase.useLocaleBase,
34
36
  useLocaleCookie: () => import_useLocaleCookie.useLocaleCookie
35
37
  });
36
38
  module.exports = __toCommonJS(client_exports);
39
+ var import_getBrowserLocale = require('./getBrowserLocale.cjs');
37
40
  var import_IntlayerProvider = require('./IntlayerProvider.cjs');
41
+ var import_t = require('./t.cjs');
42
+ var import_useDictionary = require('./useDictionary.cjs');
43
+ var import_useDictionaryDynamic = require('./useDictionaryDynamic.cjs');
38
44
  var import_useIntlayer = require('./useIntlayer.cjs');
39
45
  var import_useIntlayerAsync = require('./useIntlayerAsync.cjs');
40
- var import_useDictionary = require('./useDictionary.cjs');
41
- var import_useLocaleBase = require('./useLocaleBase.cjs');
46
+ var import_useLoadDynamic = require('./useLoadDynamic.cjs');
42
47
  var import_useLocale = require('./useLocale.cjs');
48
+ var import_useLocaleBase = require('./useLocaleBase.cjs');
43
49
  var import_useLocaleCookie = require('./useLocaleCookie.cjs');
44
- var import_getBrowserLocale = require('./getBrowserLocale.cjs');
45
- var import_t = require('./t.cjs');
46
50
  // Annotate the CommonJS export names for ESM import in node:
47
51
  0 && (module.exports = {
48
52
  IntlayerClientContext,
@@ -53,9 +57,11 @@ var import_t = require('./t.cjs');
53
57
  setLocaleCookie,
54
58
  t,
55
59
  useDictionary,
60
+ useDictionaryDynamic,
56
61
  useIntlayer,
57
62
  useIntlayerAsync,
58
63
  useIntlayerContext,
64
+ useLoadDynamic,
59
65
  useLocale,
60
66
  useLocaleBase,
61
67
  useLocaleCookie
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/client/index.ts"],"sourcesContent":["export {\n type IntlayerProviderProps,\n IntlayerClientContext,\n IntlayerProviderContent,\n useIntlayerContext,\n IntlayerProvider,\n} from './IntlayerProvider';\nexport { useIntlayer } from './useIntlayer';\nexport { useIntlayerAsync } from './useIntlayerAsync';\nexport { useDictionary } from './useDictionary';\nexport { useLocaleBase } from './useLocaleBase';\nexport { useLocale } from './useLocale';\nexport {\n useLocaleCookie,\n localeCookie,\n setLocaleCookie,\n} from './useLocaleCookie';\nexport { getBrowserLocale } from './getBrowserLocale';\nexport { t } from './t';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAMO;AACP,yBAA4B;AAC5B,8BAAiC;AACjC,2BAA8B;AAC9B,2BAA8B;AAC9B,uBAA0B;AAC1B,6BAIO;AACP,8BAAiC;AACjC,eAAkB;","names":[]}
1
+ {"version":3,"sources":["../../../src/client/index.ts"],"sourcesContent":["export { getBrowserLocale } from './getBrowserLocale';\nexport {\n IntlayerClientContext,\n IntlayerProvider,\n IntlayerProviderContent,\n useIntlayerContext,\n type IntlayerProviderProps,\n} from './IntlayerProvider';\nexport { t } from './t';\nexport { useDictionary } from './useDictionary';\nexport { useDictionaryDynamic } from './useDictionaryDynamic';\nexport { useIntlayer } from './useIntlayer';\nexport { useIntlayerAsync } from './useIntlayerAsync';\nexport { useLoadDynamic } from './useLoadDynamic';\nexport { useLocale } from './useLocale';\nexport { useLocaleBase } from './useLocaleBase';\nexport {\n localeCookie,\n setLocaleCookie,\n useLocaleCookie,\n} from './useLocaleCookie';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAiC;AACjC,8BAMO;AACP,eAAkB;AAClB,2BAA8B;AAC9B,kCAAqC;AACrC,yBAA4B;AAC5B,8BAAiC;AACjC,4BAA+B;AAC/B,uBAA0B;AAC1B,2BAA8B;AAC9B,6BAIO;","names":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var useDictionaryDynamic_exports = {};
21
+ __export(useDictionaryDynamic_exports, {
22
+ useDictionaryDynamic: () => useDictionaryDynamic
23
+ });
24
+ module.exports = __toCommonJS(useDictionaryDynamic_exports);
25
+ var import_react = require("react");
26
+ var import_IntlayerProvider = require('./IntlayerProvider.cjs');
27
+ var import_useDictionary = require('./useDictionary.cjs');
28
+ var import_useLoadDynamic = require('./useLoadDynamic.cjs');
29
+ const useDictionaryDynamic = (dictionaryPromise, key, locale) => {
30
+ const { locale: currentLocale } = (0, import_react.useContext)(import_IntlayerProvider.IntlayerClientContext);
31
+ const localeTarget = locale ?? currentLocale;
32
+ const dictionary = (0, import_useLoadDynamic.useLoadDynamic)(
33
+ `${key}.${localeTarget}`,
34
+ dictionaryPromise[localeTarget]()
35
+ );
36
+ return (0, import_useDictionary.useDictionary)(dictionary, localeTarget);
37
+ };
38
+ // Annotate the CommonJS export names for ESM import in node:
39
+ 0 && (module.exports = {
40
+ useDictionaryDynamic
41
+ });
42
+ //# sourceMappingURL=useDictionaryDynamic.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/useDictionaryDynamic.ts"],"sourcesContent":["'use client';\n\nimport type { LocalesValues } from '@intlayer/config/client';\nimport type {\n Dictionary,\n DictionaryKeys,\n LanguageContent,\n} from '@intlayer/core';\nimport { useContext } from 'react';\nimport { IntlayerClientContext } from './IntlayerProvider';\nimport { useDictionary } from './useDictionary';\nimport { useLoadDynamic } from './useLoadDynamic';\n\n/**\n * On the server side, Hook that transform a dictionary and return the content\n *\n * If the locale is not provided, it will use the locale from the client context\n */\nexport const useDictionaryDynamic = <\n T extends Dictionary,\n K extends DictionaryKeys,\n>(\n dictionaryPromise: LanguageContent<() => Promise<T>>,\n key: K,\n locale?: LocalesValues\n) => {\n const { locale: currentLocale } = useContext(IntlayerClientContext);\n const localeTarget = locale ?? currentLocale;\n\n const dictionary = useLoadDynamic<T>(\n `${key}.${localeTarget}`,\n dictionaryPromise[localeTarget]!()\n ) as T;\n\n return useDictionary(dictionary, localeTarget);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,mBAA2B;AAC3B,8BAAsC;AACtC,2BAA8B;AAC9B,4BAA+B;AAOxB,MAAM,uBAAuB,CAIlC,mBACA,KACA,WACG;AACH,QAAM,EAAE,QAAQ,cAAc,QAAI,yBAAW,6CAAqB;AAClE,QAAM,eAAe,UAAU;AAE/B,QAAM,iBAAa;AAAA,IACjB,GAAG,GAAG,IAAI,YAAY;AAAA,IACtB,kBAAkB,YAAY,EAAG;AAAA,EACnC;AAEA,aAAO,oCAAc,YAAY,YAAY;AAC/C;","names":[]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var useLoadDynamic_exports = {};
20
+ __export(useLoadDynamic_exports, {
21
+ useLoadDynamic: () => useLoadDynamic
22
+ });
23
+ module.exports = __toCommonJS(useLoadDynamic_exports);
24
+ const createSuspender = (promise) => {
25
+ let status = "pending";
26
+ let result;
27
+ const suspender = promise.then(
28
+ (r) => {
29
+ status = "success";
30
+ result = r;
31
+ },
32
+ (e) => {
33
+ status = "error";
34
+ result = e;
35
+ }
36
+ );
37
+ return {
38
+ read() {
39
+ if (status === "pending") throw suspender;
40
+ if (status === "error") throw result;
41
+ return result;
42
+ }
43
+ };
44
+ };
45
+ const cache = /* @__PURE__ */ new Map();
46
+ const useLoadDynamic = (key, promise) => {
47
+ if (!cache.has(key)) {
48
+ cache.set(key, createSuspender(promise));
49
+ }
50
+ return cache.get(key).read();
51
+ };
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ useLoadDynamic
55
+ });
56
+ //# sourceMappingURL=useLoadDynamic.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/useLoadDynamic.ts"],"sourcesContent":["type Status = 'pending' | 'success' | 'error';\n\nconst createSuspender = <T>(promise: Promise<T>) => {\n let status: Status = 'pending';\n let result: T;\n const suspender = promise.then(\n (r) => {\n status = 'success';\n result = r;\n },\n (e) => {\n status = 'error';\n result = e as any;\n }\n );\n\n return {\n read() {\n if (status === 'pending') throw suspender;\n if (status === 'error') throw result;\n return result!;\n },\n };\n};\n\nconst cache = new Map<string, ReturnType<typeof createSuspender>>();\n\nexport const useLoadDynamic = <T>(key: string, promise: Promise<T>): T => {\n if (!cache.has(key)) {\n cache.set(key, createSuspender(promise));\n }\n\n return (cache.get(key)! as ReturnType<typeof createSuspender>).read() as T;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,MAAM,kBAAkB,CAAI,YAAwB;AAClD,MAAI,SAAiB;AACrB,MAAI;AACJ,QAAM,YAAY,QAAQ;AAAA,IACxB,CAAC,MAAM;AACL,eAAS;AACT,eAAS;AAAA,IACX;AAAA,IACA,CAAC,MAAM;AACL,eAAS;AACT,eAAS;AAAA,IACX;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO;AACL,UAAI,WAAW,UAAW,OAAM;AAChC,UAAI,WAAW,QAAS,OAAM;AAC9B,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,MAAM,QAAQ,oBAAI,IAAgD;AAE3D,MAAM,iBAAiB,CAAI,KAAa,YAA2B;AACxE,MAAI,CAAC,MAAM,IAAI,GAAG,GAAG;AACnB,UAAM,IAAI,KAAK,gBAAgB,OAAO,CAAC;AAAA,EACzC;AAEA,SAAQ,MAAM,IAAI,GAAG,EAA0C,KAAK;AACtE;","names":[]}
@@ -27,9 +27,11 @@ __export(index_exports, {
27
27
  setLocaleCookie: () => import_client.setLocaleCookie,
28
28
  t: () => import_client.t,
29
29
  useDictionary: () => import_client.useDictionary,
30
+ useDictionaryDynamic: () => import_client.useDictionaryDynamic,
30
31
  useIntlayer: () => import_client.useIntlayer,
31
32
  useIntlayerAsync: () => import_client.useIntlayerAsync,
32
33
  useIntlayerContext: () => import_client.useIntlayerContext,
34
+ useLoadDynamic: () => import_client.useLoadDynamic,
33
35
  useLocale: () => import_client.useLocale,
34
36
  useLocaleBase: () => import_client.useLocaleBase,
35
37
  useLocaleCookie: () => import_client.useLocaleCookie
@@ -48,9 +50,11 @@ var import_markdown = require('./markdown/index.cjs');
48
50
  setLocaleCookie,
49
51
  t,
50
52
  useDictionary,
53
+ useDictionaryDynamic,
51
54
  useIntlayer,
52
55
  useIntlayerAsync,
53
56
  useIntlayerContext,
57
+ useLoadDynamic,
54
58
  useLocale,
55
59
  useLocaleBase,
56
60
  useLocaleCookie
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import type { IInterpreterPluginReact } from './plugins';\n\ndeclare module '@intlayer/core' {\n interface IInterpreterPlugin<T, S> extends IInterpreterPluginReact<T> {}\n}\n\nexport {\n IntlayerProvider,\n IntlayerProviderContent,\n type IntlayerProviderProps,\n IntlayerClientContext,\n useIntlayer,\n useIntlayerAsync,\n useDictionary,\n useLocale,\n useLocaleCookie,\n useIntlayerContext,\n localeCookie,\n setLocaleCookie,\n getBrowserLocale,\n useLocaleBase,\n t,\n} from './client/index';\nexport { type IntlayerNode } from './IntlayerNode';\nexport { MarkdownProvider } from './markdown/index';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAgBO;AAEP,sBAAiC;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import type { IInterpreterPluginReact } from './plugins';\n\ndeclare module '@intlayer/core' {\n interface IInterpreterPlugin<T, S> extends IInterpreterPluginReact<T> {}\n}\n\nexport {\n getBrowserLocale,\n IntlayerClientContext,\n IntlayerProvider,\n IntlayerProviderContent,\n localeCookie,\n setLocaleCookie,\n t,\n useDictionary,\n useDictionaryDynamic,\n useIntlayer,\n useIntlayerAsync,\n useIntlayerContext,\n useLoadDynamic,\n useLocale,\n useLocaleBase,\n useLocaleCookie,\n type IntlayerProviderProps,\n} from './client/index';\nexport { type IntlayerNode } from './IntlayerNode';\nexport { MarkdownProvider } from './markdown/index';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oBAkBO;AAEP,sBAAiC;","names":[]}
@@ -23,14 +23,18 @@ __export(server_exports, {
23
23
  locale: () => import_IntlayerServerProvider.locale,
24
24
  t: () => import_t.t,
25
25
  useDictionary: () => import_useDictionary.useDictionary,
26
+ useDictionaryDynamic: () => import_useDictionaryDynamic.useDictionaryDynamic,
26
27
  useIntlayer: () => import_useIntlayer.useIntlayer,
28
+ useLoadDynamic: () => import_useLoadDynamic.useLoadDynamic,
27
29
  useLocale: () => import_useLocale.useLocale
28
30
  });
29
31
  module.exports = __toCommonJS(server_exports);
30
32
  var import_IntlayerServerProvider = require('./IntlayerServerProvider.cjs');
31
33
  var import_t = require('./t.cjs');
32
34
  var import_useDictionary = require('./useDictionary.cjs');
35
+ var import_useDictionaryDynamic = require('./useDictionaryDynamic.cjs');
33
36
  var import_useIntlayer = require('./useIntlayer.cjs');
37
+ var import_useLoadDynamic = require('./useLoadDynamic.cjs');
34
38
  var import_useLocale = require('./useLocale.cjs');
35
39
  // Annotate the CommonJS export names for ESM import in node:
36
40
  0 && (module.exports = {
@@ -39,7 +43,9 @@ var import_useLocale = require('./useLocale.cjs');
39
43
  locale,
40
44
  t,
41
45
  useDictionary,
46
+ useDictionaryDynamic,
42
47
  useIntlayer,
48
+ useLoadDynamic,
43
49
  useLocale
44
50
  });
45
51
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/index.ts"],"sourcesContent":["export {\n IntlayerServerContext as IntlayerServer,\n IntlayerServerProvider,\n locale,\n} from './IntlayerServerProvider';\nexport { t } from './t';\nexport { useDictionary } from './useDictionary';\nexport { useIntlayer } from './useIntlayer';\nexport { useLocale } from './useLocale';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAIO;AACP,eAAkB;AAClB,2BAA8B;AAC9B,yBAA4B;AAC5B,uBAA0B;","names":[]}
1
+ {"version":3,"sources":["../../../src/server/index.ts"],"sourcesContent":["export {\n IntlayerServerContext as IntlayerServer,\n IntlayerServerProvider,\n locale,\n} from './IntlayerServerProvider';\nexport { t } from './t';\nexport { useDictionary } from './useDictionary';\nexport { useDictionaryDynamic } from './useDictionaryDynamic';\nexport { useIntlayer } from './useIntlayer';\nexport { useLoadDynamic } from './useLoadDynamic';\nexport { useLocale } from './useLocale';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAIO;AACP,eAAkB;AAClB,2BAA8B;AAC9B,kCAAqC;AACrC,yBAA4B;AAC5B,4BAA+B;AAC/B,uBAA0B;","names":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var useDictionaryDynamic_exports = {};
30
+ __export(useDictionaryDynamic_exports, {
31
+ useDictionaryDynamic: () => useDictionaryDynamic
32
+ });
33
+ module.exports = __toCommonJS(useDictionaryDynamic_exports);
34
+ var import_built = __toESM(require("@intlayer/config/built"));
35
+ var import_IntlayerServerProvider = require('./IntlayerServerProvider.cjs');
36
+ var import_serverContext = require('./serverContext.cjs');
37
+ var import_useDictionary = require('./useDictionary.cjs');
38
+ var import_useLoadDynamic = require('./useLoadDynamic.cjs');
39
+ const useDictionaryDynamic = (dictionaryPromise, key, locale) => {
40
+ const localeTarget = locale ?? (0, import_serverContext.getServerContext)(import_IntlayerServerProvider.IntlayerServerContext) ?? import_built.default.internationalization.defaultLocale;
41
+ const dictionary = (0, import_useLoadDynamic.useLoadDynamic)(
42
+ `${key}.${localeTarget}`,
43
+ dictionaryPromise[localeTarget]()
44
+ );
45
+ return (0, import_useDictionary.useDictionary)(dictionary, localeTarget);
46
+ };
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ useDictionaryDynamic
50
+ });
51
+ //# sourceMappingURL=useDictionaryDynamic.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/useDictionaryDynamic.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport type { LocalesValues } from '@intlayer/config/client';\nimport { LanguageContent, type Dictionary } from '@intlayer/core';\nimport { IntlayerServerContext } from './IntlayerServerProvider';\nimport { getServerContext } from './serverContext';\nimport { useDictionary } from './useDictionary';\nimport { useLoadDynamic } from './useLoadDynamic';\n\n/**\n * On the server side, Hook that transform a dictionary and return the content\n *\n * If the locale is not provided, it will use the locale from the server context\n */\nexport const useDictionaryDynamic = <T extends Dictionary>(\n dictionaryPromise: LanguageContent<() => Promise<T>>,\n key: string,\n locale?: LocalesValues\n) => {\n const localeTarget =\n locale ??\n getServerContext<LocalesValues>(IntlayerServerContext) ??\n configuration.internationalization.defaultLocale;\n\n const dictionary = useLoadDynamic<T>(\n `${key}.${localeTarget}`,\n dictionaryPromise[localeTarget]!()\n );\n\n return useDictionary(dictionary, localeTarget);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAG1B,oCAAsC;AACtC,2BAAiC;AACjC,2BAA8B;AAC9B,4BAA+B;AAOxB,MAAM,uBAAuB,CAClC,mBACA,KACA,WACG;AACH,QAAM,eACJ,cACA,uCAAgC,mDAAqB,KACrD,aAAAA,QAAc,qBAAqB;AAErC,QAAM,iBAAa;AAAA,IACjB,GAAG,GAAG,IAAI,YAAY;AAAA,IACtB,kBAAkB,YAAY,EAAG;AAAA,EACnC;AAEA,aAAO,oCAAc,YAAY,YAAY;AAC/C;","names":["configuration"]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var useLoadDynamic_exports = {};
20
+ __export(useLoadDynamic_exports, {
21
+ useLoadDynamic: () => useLoadDynamic
22
+ });
23
+ module.exports = __toCommonJS(useLoadDynamic_exports);
24
+ var import_react = require("react");
25
+ const useLoadDynamic = (_key, promise) => {
26
+ const cachedPromise = (0, import_react.cache)(async () => await promise)();
27
+ const dictionary = (0, import_react.use)(cachedPromise);
28
+ return dictionary;
29
+ };
30
+ // Annotate the CommonJS export names for ESM import in node:
31
+ 0 && (module.exports = {
32
+ useLoadDynamic
33
+ });
34
+ //# sourceMappingURL=useLoadDynamic.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/useLoadDynamic.ts"],"sourcesContent":["import { cache, use } from 'react';\n\nexport const useLoadDynamic = <T>(_key: string, promise: Promise<T>): T => {\n const cachedPromise = cache(async () => await promise)();\n\n const dictionary = use(cachedPromise);\n\n return dictionary;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2B;AAEpB,MAAM,iBAAiB,CAAI,MAAc,YAA2B;AACzE,QAAM,oBAAgB,oBAAM,YAAY,MAAM,OAAO,EAAE;AAEvD,QAAM,iBAAa,kBAAI,aAAa;AAEpC,SAAO;AACT;","names":[]}
@@ -1,21 +1,23 @@
1
+ import { getBrowserLocale } from "./getBrowserLocale.mjs";
1
2
  import {
2
3
  IntlayerClientContext,
4
+ IntlayerProvider,
3
5
  IntlayerProviderContent,
4
- useIntlayerContext,
5
- IntlayerProvider
6
+ useIntlayerContext
6
7
  } from "./IntlayerProvider.mjs";
8
+ import { t } from "./t.mjs";
9
+ import { useDictionary } from "./useDictionary.mjs";
10
+ import { useDictionaryDynamic } from "./useDictionaryDynamic.mjs";
7
11
  import { useIntlayer } from "./useIntlayer.mjs";
8
12
  import { useIntlayerAsync } from "./useIntlayerAsync.mjs";
9
- import { useDictionary } from "./useDictionary.mjs";
10
- import { useLocaleBase } from "./useLocaleBase.mjs";
13
+ import { useLoadDynamic } from "./useLoadDynamic.mjs";
11
14
  import { useLocale } from "./useLocale.mjs";
15
+ import { useLocaleBase } from "./useLocaleBase.mjs";
12
16
  import {
13
- useLocaleCookie,
14
17
  localeCookie,
15
- setLocaleCookie
18
+ setLocaleCookie,
19
+ useLocaleCookie
16
20
  } from "./useLocaleCookie.mjs";
17
- import { getBrowserLocale } from "./getBrowserLocale.mjs";
18
- import { t } from "./t.mjs";
19
21
  export {
20
22
  IntlayerClientContext,
21
23
  IntlayerProvider,
@@ -25,9 +27,11 @@ export {
25
27
  setLocaleCookie,
26
28
  t,
27
29
  useDictionary,
30
+ useDictionaryDynamic,
28
31
  useIntlayer,
29
32
  useIntlayerAsync,
30
33
  useIntlayerContext,
34
+ useLoadDynamic,
31
35
  useLocale,
32
36
  useLocaleBase,
33
37
  useLocaleCookie
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/client/index.ts"],"sourcesContent":["export {\n type IntlayerProviderProps,\n IntlayerClientContext,\n IntlayerProviderContent,\n useIntlayerContext,\n IntlayerProvider,\n} from './IntlayerProvider';\nexport { useIntlayer } from './useIntlayer';\nexport { useIntlayerAsync } from './useIntlayerAsync';\nexport { useDictionary } from './useDictionary';\nexport { useLocaleBase } from './useLocaleBase';\nexport { useLocale } from './useLocale';\nexport {\n useLocaleCookie,\n localeCookie,\n setLocaleCookie,\n} from './useLocaleCookie';\nexport { getBrowserLocale } from './getBrowserLocale';\nexport { t } from './t';\n"],"mappings":"AAAA;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AACjC,SAAS,SAAS;","names":[]}
1
+ {"version":3,"sources":["../../../src/client/index.ts"],"sourcesContent":["export { getBrowserLocale } from './getBrowserLocale';\nexport {\n IntlayerClientContext,\n IntlayerProvider,\n IntlayerProviderContent,\n useIntlayerContext,\n type IntlayerProviderProps,\n} from './IntlayerProvider';\nexport { t } from './t';\nexport { useDictionary } from './useDictionary';\nexport { useDictionaryDynamic } from './useDictionaryDynamic';\nexport { useIntlayer } from './useIntlayer';\nexport { useIntlayerAsync } from './useIntlayerAsync';\nexport { useLoadDynamic } from './useLoadDynamic';\nexport { useLocale } from './useLocale';\nexport { useLocaleBase } from './useLocaleBase';\nexport {\n localeCookie,\n setLocaleCookie,\n useLocaleCookie,\n} from './useLocaleCookie';\n"],"mappings":"AAAA,SAAS,wBAAwB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,SAAS;AAClB,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AACrC,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { useContext } from "react";
3
+ import { IntlayerClientContext } from "./IntlayerProvider.mjs";
4
+ import { useDictionary } from "./useDictionary.mjs";
5
+ import { useLoadDynamic } from "./useLoadDynamic.mjs";
6
+ const useDictionaryDynamic = (dictionaryPromise, key, locale) => {
7
+ const { locale: currentLocale } = useContext(IntlayerClientContext);
8
+ const localeTarget = locale ?? currentLocale;
9
+ const dictionary = useLoadDynamic(
10
+ `${key}.${localeTarget}`,
11
+ dictionaryPromise[localeTarget]()
12
+ );
13
+ return useDictionary(dictionary, localeTarget);
14
+ };
15
+ export {
16
+ useDictionaryDynamic
17
+ };
18
+ //# sourceMappingURL=useDictionaryDynamic.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/useDictionaryDynamic.ts"],"sourcesContent":["'use client';\n\nimport type { LocalesValues } from '@intlayer/config/client';\nimport type {\n Dictionary,\n DictionaryKeys,\n LanguageContent,\n} from '@intlayer/core';\nimport { useContext } from 'react';\nimport { IntlayerClientContext } from './IntlayerProvider';\nimport { useDictionary } from './useDictionary';\nimport { useLoadDynamic } from './useLoadDynamic';\n\n/**\n * On the server side, Hook that transform a dictionary and return the content\n *\n * If the locale is not provided, it will use the locale from the client context\n */\nexport const useDictionaryDynamic = <\n T extends Dictionary,\n K extends DictionaryKeys,\n>(\n dictionaryPromise: LanguageContent<() => Promise<T>>,\n key: K,\n locale?: LocalesValues\n) => {\n const { locale: currentLocale } = useContext(IntlayerClientContext);\n const localeTarget = locale ?? currentLocale;\n\n const dictionary = useLoadDynamic<T>(\n `${key}.${localeTarget}`,\n dictionaryPromise[localeTarget]!()\n ) as T;\n\n return useDictionary(dictionary, localeTarget);\n};\n"],"mappings":";AAQA,SAAS,kBAAkB;AAC3B,SAAS,6BAA6B;AACtC,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAOxB,MAAM,uBAAuB,CAIlC,mBACA,KACA,WACG;AACH,QAAM,EAAE,QAAQ,cAAc,IAAI,WAAW,qBAAqB;AAClE,QAAM,eAAe,UAAU;AAE/B,QAAM,aAAa;AAAA,IACjB,GAAG,GAAG,IAAI,YAAY;AAAA,IACtB,kBAAkB,YAAY,EAAG;AAAA,EACnC;AAEA,SAAO,cAAc,YAAY,YAAY;AAC/C;","names":[]}
@@ -0,0 +1,32 @@
1
+ const createSuspender = (promise) => {
2
+ let status = "pending";
3
+ let result;
4
+ const suspender = promise.then(
5
+ (r) => {
6
+ status = "success";
7
+ result = r;
8
+ },
9
+ (e) => {
10
+ status = "error";
11
+ result = e;
12
+ }
13
+ );
14
+ return {
15
+ read() {
16
+ if (status === "pending") throw suspender;
17
+ if (status === "error") throw result;
18
+ return result;
19
+ }
20
+ };
21
+ };
22
+ const cache = /* @__PURE__ */ new Map();
23
+ const useLoadDynamic = (key, promise) => {
24
+ if (!cache.has(key)) {
25
+ cache.set(key, createSuspender(promise));
26
+ }
27
+ return cache.get(key).read();
28
+ };
29
+ export {
30
+ useLoadDynamic
31
+ };
32
+ //# sourceMappingURL=useLoadDynamic.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/client/useLoadDynamic.ts"],"sourcesContent":["type Status = 'pending' | 'success' | 'error';\n\nconst createSuspender = <T>(promise: Promise<T>) => {\n let status: Status = 'pending';\n let result: T;\n const suspender = promise.then(\n (r) => {\n status = 'success';\n result = r;\n },\n (e) => {\n status = 'error';\n result = e as any;\n }\n );\n\n return {\n read() {\n if (status === 'pending') throw suspender;\n if (status === 'error') throw result;\n return result!;\n },\n };\n};\n\nconst cache = new Map<string, ReturnType<typeof createSuspender>>();\n\nexport const useLoadDynamic = <T>(key: string, promise: Promise<T>): T => {\n if (!cache.has(key)) {\n cache.set(key, createSuspender(promise));\n }\n\n return (cache.get(key)! as ReturnType<typeof createSuspender>).read() as T;\n};\n"],"mappings":"AAEA,MAAM,kBAAkB,CAAI,YAAwB;AAClD,MAAI,SAAiB;AACrB,MAAI;AACJ,QAAM,YAAY,QAAQ;AAAA,IACxB,CAAC,MAAM;AACL,eAAS;AACT,eAAS;AAAA,IACX;AAAA,IACA,CAAC,MAAM;AACL,eAAS;AACT,eAAS;AAAA,IACX;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO;AACL,UAAI,WAAW,UAAW,OAAM;AAChC,UAAI,WAAW,QAAS,OAAM;AAC9B,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,MAAM,QAAQ,oBAAI,IAAgD;AAE3D,MAAM,iBAAiB,CAAI,KAAa,YAA2B;AACxE,MAAI,CAAC,MAAM,IAAI,GAAG,GAAG;AACnB,UAAM,IAAI,KAAK,gBAAgB,OAAO,CAAC;AAAA,EACzC;AAEA,SAAQ,MAAM,IAAI,GAAG,EAA0C,KAAK;AACtE;","names":[]}
@@ -1,18 +1,20 @@
1
1
  import {
2
+ getBrowserLocale,
3
+ IntlayerClientContext,
2
4
  IntlayerProvider,
3
5
  IntlayerProviderContent,
4
- IntlayerClientContext,
6
+ localeCookie,
7
+ setLocaleCookie,
8
+ t,
9
+ useDictionary,
10
+ useDictionaryDynamic,
5
11
  useIntlayer,
6
12
  useIntlayerAsync,
7
- useDictionary,
8
- useLocale,
9
- useLocaleCookie,
10
13
  useIntlayerContext,
11
- localeCookie,
12
- setLocaleCookie,
13
- getBrowserLocale,
14
+ useLoadDynamic,
15
+ useLocale,
14
16
  useLocaleBase,
15
- t
17
+ useLocaleCookie
16
18
  } from "./client/index.mjs";
17
19
  import { MarkdownProvider } from "./markdown/index.mjs";
18
20
  export {
@@ -25,9 +27,11 @@ export {
25
27
  setLocaleCookie,
26
28
  t,
27
29
  useDictionary,
30
+ useDictionaryDynamic,
28
31
  useIntlayer,
29
32
  useIntlayerAsync,
30
33
  useIntlayerContext,
34
+ useLoadDynamic,
31
35
  useLocale,
32
36
  useLocaleBase,
33
37
  useLocaleCookie
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import type { IInterpreterPluginReact } from './plugins';\n\ndeclare module '@intlayer/core' {\n interface IInterpreterPlugin<T, S> extends IInterpreterPluginReact<T> {}\n}\n\nexport {\n IntlayerProvider,\n IntlayerProviderContent,\n type IntlayerProviderProps,\n IntlayerClientContext,\n useIntlayer,\n useIntlayerAsync,\n useDictionary,\n useLocale,\n useLocaleCookie,\n useIntlayerContext,\n localeCookie,\n setLocaleCookie,\n getBrowserLocale,\n useLocaleBase,\n t,\n} from './client/index';\nexport { type IntlayerNode } from './IntlayerNode';\nexport { MarkdownProvider } from './markdown/index';\n"],"mappings":"AAMA;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,wBAAwB;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import type { IInterpreterPluginReact } from './plugins';\n\ndeclare module '@intlayer/core' {\n interface IInterpreterPlugin<T, S> extends IInterpreterPluginReact<T> {}\n}\n\nexport {\n getBrowserLocale,\n IntlayerClientContext,\n IntlayerProvider,\n IntlayerProviderContent,\n localeCookie,\n setLocaleCookie,\n t,\n useDictionary,\n useDictionaryDynamic,\n useIntlayer,\n useIntlayerAsync,\n useIntlayerContext,\n useLoadDynamic,\n useLocale,\n useLocaleBase,\n useLocaleCookie,\n type IntlayerProviderProps,\n} from './client/index';\nexport { type IntlayerNode } from './IntlayerNode';\nexport { MarkdownProvider } from './markdown/index';\n"],"mappings":"AAMA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,wBAAwB;","names":[]}
@@ -5,7 +5,9 @@ import {
5
5
  } from "./IntlayerServerProvider.mjs";
6
6
  import { t } from "./t.mjs";
7
7
  import { useDictionary } from "./useDictionary.mjs";
8
+ import { useDictionaryDynamic } from "./useDictionaryDynamic.mjs";
8
9
  import { useIntlayer } from "./useIntlayer.mjs";
10
+ import { useLoadDynamic } from "./useLoadDynamic.mjs";
9
11
  import { useLocale } from "./useLocale.mjs";
10
12
  export {
11
13
  IntlayerServerContext as IntlayerServer,
@@ -13,7 +15,9 @@ export {
13
15
  locale,
14
16
  t,
15
17
  useDictionary,
18
+ useDictionaryDynamic,
16
19
  useIntlayer,
20
+ useLoadDynamic,
17
21
  useLocale
18
22
  };
19
23
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/index.ts"],"sourcesContent":["export {\n IntlayerServerContext as IntlayerServer,\n IntlayerServerProvider,\n locale,\n} from './IntlayerServerProvider';\nexport { t } from './t';\nexport { useDictionary } from './useDictionary';\nexport { useIntlayer } from './useIntlayer';\nexport { useLocale } from './useLocale';\n"],"mappings":"AAAA;AAAA,EAC2B;AAAA,EACzB;AAAA,EACA;AAAA,OACK;AACP,SAAS,SAAS;AAClB,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;","names":[]}
1
+ {"version":3,"sources":["../../../src/server/index.ts"],"sourcesContent":["export {\n IntlayerServerContext as IntlayerServer,\n IntlayerServerProvider,\n locale,\n} from './IntlayerServerProvider';\nexport { t } from './t';\nexport { useDictionary } from './useDictionary';\nexport { useDictionaryDynamic } from './useDictionaryDynamic';\nexport { useIntlayer } from './useIntlayer';\nexport { useLoadDynamic } from './useLoadDynamic';\nexport { useLocale } from './useLocale';\n"],"mappings":"AAAA;AAAA,EAC2B;AAAA,EACzB;AAAA,EACA;AAAA,OACK;AACP,SAAS,SAAS;AAClB,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AACrC,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;","names":[]}
@@ -0,0 +1,17 @@
1
+ import configuration from "@intlayer/config/built";
2
+ import { IntlayerServerContext } from "./IntlayerServerProvider.mjs";
3
+ import { getServerContext } from "./serverContext.mjs";
4
+ import { useDictionary } from "./useDictionary.mjs";
5
+ import { useLoadDynamic } from "./useLoadDynamic.mjs";
6
+ const useDictionaryDynamic = (dictionaryPromise, key, locale) => {
7
+ const localeTarget = locale ?? getServerContext(IntlayerServerContext) ?? configuration.internationalization.defaultLocale;
8
+ const dictionary = useLoadDynamic(
9
+ `${key}.${localeTarget}`,
10
+ dictionaryPromise[localeTarget]()
11
+ );
12
+ return useDictionary(dictionary, localeTarget);
13
+ };
14
+ export {
15
+ useDictionaryDynamic
16
+ };
17
+ //# sourceMappingURL=useDictionaryDynamic.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/useDictionaryDynamic.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport type { LocalesValues } from '@intlayer/config/client';\nimport { LanguageContent, type Dictionary } from '@intlayer/core';\nimport { IntlayerServerContext } from './IntlayerServerProvider';\nimport { getServerContext } from './serverContext';\nimport { useDictionary } from './useDictionary';\nimport { useLoadDynamic } from './useLoadDynamic';\n\n/**\n * On the server side, Hook that transform a dictionary and return the content\n *\n * If the locale is not provided, it will use the locale from the server context\n */\nexport const useDictionaryDynamic = <T extends Dictionary>(\n dictionaryPromise: LanguageContent<() => Promise<T>>,\n key: string,\n locale?: LocalesValues\n) => {\n const localeTarget =\n locale ??\n getServerContext<LocalesValues>(IntlayerServerContext) ??\n configuration.internationalization.defaultLocale;\n\n const dictionary = useLoadDynamic<T>(\n `${key}.${localeTarget}`,\n dictionaryPromise[localeTarget]!()\n );\n\n return useDictionary(dictionary, localeTarget);\n};\n"],"mappings":"AAAA,OAAO,mBAAmB;AAG1B,SAAS,6BAA6B;AACtC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAOxB,MAAM,uBAAuB,CAClC,mBACA,KACA,WACG;AACH,QAAM,eACJ,UACA,iBAAgC,qBAAqB,KACrD,cAAc,qBAAqB;AAErC,QAAM,aAAa;AAAA,IACjB,GAAG,GAAG,IAAI,YAAY;AAAA,IACtB,kBAAkB,YAAY,EAAG;AAAA,EACnC;AAEA,SAAO,cAAc,YAAY,YAAY;AAC/C;","names":[]}
@@ -0,0 +1,10 @@
1
+ import { cache, use } from "react";
2
+ const useLoadDynamic = (_key, promise) => {
3
+ const cachedPromise = cache(async () => await promise)();
4
+ const dictionary = use(cachedPromise);
5
+ return dictionary;
6
+ };
7
+ export {
8
+ useLoadDynamic
9
+ };
10
+ //# sourceMappingURL=useLoadDynamic.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/useLoadDynamic.ts"],"sourcesContent":["import { cache, use } from 'react';\n\nexport const useLoadDynamic = <T>(_key: string, promise: Promise<T>): T => {\n const cachedPromise = cache(async () => await promise)();\n\n const dictionary = use(cachedPromise);\n\n return dictionary;\n};\n"],"mappings":"AAAA,SAAS,OAAO,WAAW;AAEpB,MAAM,iBAAiB,CAAI,MAAc,YAA2B;AACzE,QAAM,gBAAgB,MAAM,YAAY,MAAM,OAAO,EAAE;AAEvD,QAAM,aAAa,IAAI,aAAa;AAEpC,SAAO;AACT;","names":[]}
@@ -1,10 +1,12 @@
1
- export { type IntlayerProviderProps, IntlayerClientContext, IntlayerProviderContent, useIntlayerContext, IntlayerProvider, } from './IntlayerProvider';
1
+ export { getBrowserLocale } from './getBrowserLocale';
2
+ export { IntlayerClientContext, IntlayerProvider, IntlayerProviderContent, useIntlayerContext, type IntlayerProviderProps, } from './IntlayerProvider';
3
+ export { t } from './t';
4
+ export { useDictionary } from './useDictionary';
5
+ export { useDictionaryDynamic } from './useDictionaryDynamic';
2
6
  export { useIntlayer } from './useIntlayer';
3
7
  export { useIntlayerAsync } from './useIntlayerAsync';
4
- export { useDictionary } from './useDictionary';
5
- export { useLocaleBase } from './useLocaleBase';
8
+ export { useLoadDynamic } from './useLoadDynamic';
6
9
  export { useLocale } from './useLocale';
7
- export { useLocaleCookie, localeCookie, setLocaleCookie, } from './useLocaleCookie';
8
- export { getBrowserLocale } from './getBrowserLocale';
9
- export { t } from './t';
10
+ export { useLocaleBase } from './useLocaleBase';
11
+ export { localeCookie, setLocaleCookie, useLocaleCookie, } from './useLocaleCookie';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { LocalesValues } from '@intlayer/config/client';
2
+ import type { Dictionary, DictionaryKeys, LanguageContent } from '@intlayer/core';
3
+ /**
4
+ * On the server side, Hook that transform a dictionary and return the content
5
+ *
6
+ * If the locale is not provided, it will use the locale from the client context
7
+ */
8
+ export declare const useDictionaryDynamic: <T extends Dictionary, K extends DictionaryKeys>(dictionaryPromise: LanguageContent<() => Promise<T>>, key: K, locale?: LocalesValues) => any;
9
+ //# sourceMappingURL=useDictionaryDynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDictionaryDynamic.d.ts","sourceRoot":"","sources":["../../../src/client/useDictionaryDynamic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAMxB;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,cAAc,EAExB,mBAAmB,eAAe,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EACpD,KAAK,CAAC,EACN,SAAS,aAAa,QAWvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useLoadDynamic: <T>(key: string, promise: Promise<T>) => T;
2
+ //# sourceMappingURL=useLoadDynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLoadDynamic.d.ts","sourceRoot":"","sources":["../../../src/client/useLoadDynamic.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,KAAK,MAAM,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,KAAG,CAMpE,CAAC"}
@@ -3,7 +3,7 @@ declare module '@intlayer/core' {
3
3
  interface IInterpreterPlugin<T, S> extends IInterpreterPluginReact<T> {
4
4
  }
5
5
  }
6
- export { IntlayerProvider, IntlayerProviderContent, type IntlayerProviderProps, IntlayerClientContext, useIntlayer, useIntlayerAsync, useDictionary, useLocale, useLocaleCookie, useIntlayerContext, localeCookie, setLocaleCookie, getBrowserLocale, useLocaleBase, t, } from './client/index';
6
+ export { getBrowserLocale, IntlayerClientContext, IntlayerProvider, IntlayerProviderContent, localeCookie, setLocaleCookie, t, useDictionary, useDictionaryDynamic, useIntlayer, useIntlayerAsync, useIntlayerContext, useLoadDynamic, useLocale, useLocaleBase, useLocaleCookie, type IntlayerProviderProps, } from './client/index';
7
7
  export { type IntlayerNode } from './IntlayerNode';
8
8
  export { MarkdownProvider } from './markdown/index';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,QAAQ,gBAAgB,CAAC;IAC9B,UAAU,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,uBAAuB,CAAC,CAAC,CAAC;KAAG;CACzE;AAED,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,CAAC,GACF,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,QAAQ,gBAAgB,CAAC;IAC9B,UAAU,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,uBAAuB,CAAC,CAAC,CAAC;KAAG;CACzE;AAED,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,eAAe,EACf,CAAC,EACD,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,aAAa,EACb,eAAe,EACf,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,6 +1,8 @@
1
1
  export { IntlayerServerContext as IntlayerServer, IntlayerServerProvider, locale, } from './IntlayerServerProvider';
2
2
  export { t } from './t';
3
3
  export { useDictionary } from './useDictionary';
4
+ export { useDictionaryDynamic } from './useDictionaryDynamic';
4
5
  export { useIntlayer } from './useIntlayer';
6
+ export { useLoadDynamic } from './useLoadDynamic';
5
7
  export { useLocale } from './useLocale';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,IAAI,cAAc,EACvC,sBAAsB,EACtB,MAAM,GACP,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,IAAI,cAAc,EACvC,sBAAsB,EACtB,MAAM,GACP,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { LocalesValues } from '@intlayer/config/client';
2
+ import { LanguageContent, type Dictionary } from '@intlayer/core';
3
+ /**
4
+ * On the server side, Hook that transform a dictionary and return the content
5
+ *
6
+ * If the locale is not provided, it will use the locale from the server context
7
+ */
8
+ export declare const useDictionaryDynamic: <T extends Dictionary>(dictionaryPromise: LanguageContent<() => Promise<T>>, key: string, locale?: LocalesValues) => import("@intlayer/core").DeepTransformContent<T["content"], import("../plugins").IInterpreterPluginState>;
9
+ //# sourceMappingURL=useDictionaryDynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDictionaryDynamic.d.ts","sourceRoot":"","sources":["../../../src/server/useDictionaryDynamic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMlE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,UAAU,EACvD,mBAAmB,eAAe,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EACpD,KAAK,MAAM,EACX,SAAS,aAAa,8GAavB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useLoadDynamic: <T>(_key: string, promise: Promise<T>) => T;
2
+ //# sourceMappingURL=useLoadDynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLoadDynamic.d.ts","sourceRoot":"","sources":["../../../src/server/useLoadDynamic.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,MAAM,MAAM,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,KAAG,CAMrE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-intlayer",
3
- "version": "5.5.3",
3
+ "version": "5.5.5",
4
4
  "private": false,
5
5
  "description": "Easily internationalize i18n your React applications with type-safe multilingual content management.",
6
6
  "keywords": [
@@ -69,11 +69,11 @@
69
69
  ],
70
70
  "dependencies": {
71
71
  "js-cookie": "^3.0.5",
72
- "@intlayer/config": "5.5.3",
73
- "@intlayer/core": "5.5.3",
74
- "@intlayer/dictionaries-entry": "5.5.3",
75
- "@intlayer/api": "5.5.3",
76
- "@intlayer/editor-react": "5.5.3"
72
+ "@intlayer/api": "5.5.5",
73
+ "@intlayer/config": "5.5.5",
74
+ "@intlayer/core": "5.5.5",
75
+ "@intlayer/editor-react": "5.5.5",
76
+ "@intlayer/dictionaries-entry": "5.5.5"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@craco/types": "^7.1.0",
@@ -90,20 +90,20 @@
90
90
  "tsup": "^8.4.0",
91
91
  "typescript": "^5.8.2",
92
92
  "@utils/eslint-config": "1.0.4",
93
- "@utils/ts-config-types": "1.0.4",
94
93
  "@utils/ts-config": "1.0.4",
95
- "@utils/tsup-config": "1.0.4",
96
- "@intlayer/backend": "5.5.3"
94
+ "@utils/ts-config-types": "1.0.4",
95
+ "@intlayer/backend": "5.5.5",
96
+ "@utils/tsup-config": "1.0.4"
97
97
  },
98
98
  "peerDependencies": {
99
99
  "react": ">=16.0.0",
100
100
  "react-dom": ">=16.0.0",
101
- "@intlayer/api": "5.5.3",
102
- "@intlayer/config": "5.5.3",
103
- "@intlayer/core": "5.5.3",
104
- "@intlayer/editor-react": "5.5.3",
105
- "intlayer": "5.5.3",
106
- "@intlayer/dictionaries-entry": "5.5.3"
101
+ "@intlayer/api": "5.5.5",
102
+ "@intlayer/core": "5.5.5",
103
+ "@intlayer/config": "5.5.5",
104
+ "@intlayer/dictionaries-entry": "5.5.5",
105
+ "@intlayer/editor-react": "5.5.5",
106
+ "intlayer": "5.5.5"
107
107
  },
108
108
  "engines": {
109
109
  "node": ">=14.18"