next-intl 4.0.0-beta-67507cc → 4.0.0-beta-40d535a

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.
@@ -28,17 +28,16 @@ function createMessagesDeclaration(messagesPath) {
28
28
  if (!fullPath.endsWith('.json')) {
29
29
  throwError(`\`createMessagesDeclaration\` needs to point to a JSON file. Received: ${fullPath}`);
30
30
  }
31
- const isDev = process.argv.includes('dev');
32
- const isBuild = process.argv.includes('build');
33
- if (!isDev && !isBuild) {
34
- return;
35
- }
31
+
32
+ // Keep this as a runtime check and don't replace
33
+ // this with a constant during the build process
34
+ const env = process.env['NODE_ENV'.trim()];
36
35
 
37
36
  // Next.js can call the Next.js config multiple
38
37
  // times - ensure we only run once.
39
38
  runOnce(() => {
40
39
  compileDeclaration(messagesPath);
41
- if (isDev) {
40
+ if (env === 'development') {
42
41
  startWatching(messagesPath);
43
42
  }
44
43
  });
@@ -17,17 +17,16 @@ function createMessagesDeclaration(messagesPath) {
17
17
  if (!fullPath.endsWith('.json')) {
18
18
  throwError(`\`createMessagesDeclaration\` needs to point to a JSON file. Received: ${fullPath}`);
19
19
  }
20
- const isDev = process.argv.includes('dev');
21
- const isBuild = process.argv.includes('build');
22
- if (!isDev && !isBuild) {
23
- return;
24
- }
20
+
21
+ // Keep this as a runtime check and don't replace
22
+ // this with a constant during the build process
23
+ const env = process.env['NODE_ENV'.trim()];
25
24
 
26
25
  // Next.js can call the Next.js config multiple
27
26
  // times - ensure we only run once.
28
27
  runOnce(() => {
29
28
  compileDeclaration(messagesPath);
30
- if (isDev) {
29
+ if (env === 'development') {
31
30
  startWatching(messagesPath);
32
31
  }
33
32
  });
@@ -3,11 +3,13 @@ import getFormats from '../server/react-server/getFormats.js';
3
3
  import NextIntlClientProvider from '../shared/NextIntlClientProvider.js';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
  import getLocaleCached from '../server/react-server/getLocale.js';
6
+ import getMessages from '../server/react-server/getMessages.js';
6
7
  import getTimeZone from '../server/react-server/getTimeZone.js';
7
8
 
8
9
  async function NextIntlClientProviderServer({
9
10
  formats,
10
11
  locale,
12
+ messages,
11
13
  now,
12
14
  timeZone,
13
15
  ...rest
@@ -17,7 +19,8 @@ async function NextIntlClientProviderServer({
17
19
  // See https://github.com/amannn/next-intl/issues/631
18
20
  , {
19
21
  formats: formats === undefined ? await getFormats() : formats,
20
- locale: locale ?? (await getLocaleCached())
22
+ locale: locale ?? (await getLocaleCached()),
23
+ messages: messages === undefined ? await getMessages() : messages
21
24
  // Note that we don't assign a default for `now` here,
22
25
  // we only read one from the request config - if any.
23
26
  // Otherwise this would cause a `dynamicIO` error.
@@ -3,10 +3,6 @@ import { createFormatter } from 'use-intl/core';
3
3
  import getDefaultNow from './getDefaultNow.js';
4
4
 
5
5
  function getFormatterCachedImpl(config) {
6
- // same here?
7
- // also add a test
8
- // also for getTranslations/useTranslations
9
- // add a test with a getter maybe, don't mock
10
6
  return createFormatter({
11
7
  ...config,
12
8
  // Only init when necessary to avoid triggering a `dynamicIO` error
@@ -1,8 +1,8 @@
1
1
  export { default as getRequestConfig } from './server/react-server/getRequestConfig.js';
2
2
  export { default as getFormatter } from './server/react-server/getFormatter.js';
3
3
  export { default as getNow } from './server/react-server/getNow.js';
4
- export { default as getMessages } from './server/react-server/getMessages.js';
5
4
  export { default as getTimeZone } from './server/react-server/getTimeZone.js';
6
5
  export { default as getTranslations } from './server/react-server/getTranslations.js';
6
+ export { default as getMessages } from './server/react-server/getMessages.js';
7
7
  export { default as getLocale } from './server/react-server/getLocale.js';
8
8
  export { setCachedRequestLocale as setRequestLocale } from './server/react-server/RequestLocaleCache.js';
@@ -1 +1 @@
1
- import e from"fs";import s from"path";import{throwError as t}from"./utils.js";function n(n){const i=s.resolve(n);e.existsSync(i)||t(`\`createMessagesDeclaration\` points to a non-existent file: ${i}`),i.endsWith(".json")||t(`\`createMessagesDeclaration\` needs to point to a JSON file. Received: ${i}`);const r=process.argv.includes("dev"),c=process.argv.includes("build");var a;(r||c)&&(a=()=>{o(n),r&&function(s){const t=e.watch(s,(e=>{"change"===e&&o(s,!0)}));process.on("exit",(()=>{t.close()}))}(n)},"1"!==process.env._NEXT_INTL_COMPILE_MESSAGES&&(process.env._NEXT_INTL_COMPILE_MESSAGES="1",a()))}function o(s,t=!1){const n=s.replace(/\.json$/,".d.json.ts");function o(e){return`// This file is auto-generated by next-intl, do not edit directly.\n// See: https://next-intl.dev/docs/workflows/typescript#messages-arguments\n\ndeclare const messages: ${e.trim()};\nexport default messages;`}if(t)return e.promises.readFile(s,"utf-8").then((s=>e.promises.writeFile(n,o(s))));const i=e.readFileSync(s,"utf-8");e.writeFileSync(n,o(i))}export{n as default};
1
+ import e from"fs";import t from"path";import{throwError as s}from"./utils.js";function n(n){const i=t.resolve(n);e.existsSync(i)||s(`\`createMessagesDeclaration\` points to a non-existent file: ${i}`),i.endsWith(".json")||s(`\`createMessagesDeclaration\` needs to point to a JSON file. Received: ${i}`);const r=process.env["NODE_ENV".trim()];var c;c=()=>{o(n),"development"===r&&function(t){const s=e.watch(t,(e=>{"change"===e&&o(t,!0)}));process.on("exit",(()=>{s.close()}))}(n)},"1"!==process.env._NEXT_INTL_COMPILE_MESSAGES&&(process.env._NEXT_INTL_COMPILE_MESSAGES="1",c())}function o(t,s=!1){const n=t.replace(/\.json$/,".d.json.ts");function o(e){return`// This file is auto-generated by next-intl, do not edit directly.\n// See: https://next-intl.dev/docs/workflows/typescript#messages-arguments\n\ndeclare const messages: ${e.trim()};\nexport default messages;`}if(s)return e.promises.readFile(t,"utf-8").then((t=>e.promises.writeFile(n,o(t))));const i=e.readFileSync(t,"utf-8");e.writeFileSync(n,o(i))}export{n as default};
@@ -1 +1 @@
1
- import r from"../server/react-server/getConfigNow.js";import e from"../server/react-server/getFormats.js";import t from"../shared/NextIntlClientProvider.js";import{jsx as o}from"react/jsx-runtime";import a from"../server/react-server/getLocale.js";import s from"../server/react-server/getTimeZone.js";async function i({formats:i,locale:m,now:n,timeZone:f,...c}){return o(t,{formats:void 0===i?await e():i,locale:m??await a(),now:n??await r(),timeZone:f??await s(),...c})}export{i as default};
1
+ import e from"../server/react-server/getConfigNow.js";import r from"../server/react-server/getFormats.js";import t from"../shared/NextIntlClientProvider.js";import{jsx as o}from"react/jsx-runtime";import s from"../server/react-server/getLocale.js";import a from"../server/react-server/getMessages.js";import m from"../server/react-server/getTimeZone.js";async function i({formats:i,locale:n,messages:v,now:f,timeZone:c,...g}){return o(t,{formats:void 0===i?await r():i,locale:n??await s(),messages:void 0===v?await a():v,now:f??await e(),timeZone:c??await m(),...g})}export{i as default};
@@ -1 +1 @@
1
- export{default as getRequestConfig}from"./server/react-server/getRequestConfig.js";export{default as getFormatter}from"./server/react-server/getFormatter.js";export{default as getNow}from"./server/react-server/getNow.js";export{default as getMessages}from"./server/react-server/getMessages.js";export{default as getTimeZone}from"./server/react-server/getTimeZone.js";export{default as getTranslations}from"./server/react-server/getTranslations.js";export{default as getLocale}from"./server/react-server/getLocale.js";export{setCachedRequestLocale as setRequestLocale}from"./server/react-server/RequestLocaleCache.js";
1
+ export{default as getRequestConfig}from"./server/react-server/getRequestConfig.js";export{default as getFormatter}from"./server/react-server/getFormatter.js";export{default as getNow}from"./server/react-server/getNow.js";export{default as getTimeZone}from"./server/react-server/getTimeZone.js";export{default as getTranslations}from"./server/react-server/getTranslations.js";export{default as getMessages}from"./server/react-server/getMessages.js";export{default as getLocale}from"./server/react-server/getLocale.js";export{setCachedRequestLocale as setRequestLocale}from"./server/react-server/RequestLocaleCache.js";
@@ -1,5 +1,5 @@
1
1
  import type { ComponentProps } from 'react';
2
2
  import BaseNextIntlClientProvider from '../shared/NextIntlClientProvider.js';
3
3
  type Props = ComponentProps<typeof BaseNextIntlClientProvider>;
4
- export default function NextIntlClientProviderServer({ formats, locale, now, timeZone, ...rest }: Props): Promise<import("react/jsx-runtime").JSX.Element>;
4
+ export default function NextIntlClientProviderServer({ formats, locale, messages, now, timeZone, ...rest }: Props): Promise<import("react/jsx-runtime").JSX.Element>;
5
5
  export {};
@@ -1,8 +1,12 @@
1
1
  import { type IntlConfig, type Locale, _createIntlFormatters } from 'use-intl/core';
2
- declare function getConfigImpl(localeOverride?: Locale): Promise<IntlConfig & {
3
- getMessageFallback: NonNullable<IntlConfig['getMessageFallback']>;
4
- onError: NonNullable<IntlConfig['onError']>;
2
+ declare function getConfigImpl(localeOverride?: Locale): Promise<{
3
+ locale: IntlConfig['locale'];
4
+ formats?: NonNullable<IntlConfig['formats']>;
5
5
  timeZone: NonNullable<IntlConfig['timeZone']>;
6
+ onError: NonNullable<IntlConfig['onError']>;
7
+ getMessageFallback: NonNullable<IntlConfig['getMessageFallback']>;
8
+ messages?: NonNullable<IntlConfig['messages']>;
9
+ now?: NonNullable<IntlConfig['now']>;
6
10
  _formatters: ReturnType<typeof _createIntlFormatters>;
7
11
  }>;
8
12
  declare const getConfig: typeof getConfigImpl;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-intl",
3
- "version": "4.0.0-beta-67507cc",
3
+ "version": "4.0.0-beta-40d535a",
4
4
  "sideEffects": false,
5
5
  "author": "Jan Amann <jan@amann.work>",
6
6
  "funding": [
@@ -112,7 +112,7 @@
112
112
  "dependencies": {
113
113
  "@formatjs/intl-localematcher": "^0.5.4",
114
114
  "negotiator": "^1.0.0",
115
- "use-intl": "4.0.0-beta-67507cc"
115
+ "use-intl": "4.0.0-beta-40d535a"
116
116
  },
117
117
  "peerDependencies": {
118
118
  "next": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0",
@@ -124,5 +124,5 @@
124
124
  "optional": true
125
125
  }
126
126
  },
127
- "gitHead": "9220b68c2e83f70b1d45ecad3f672ecf2cde0d57"
127
+ "gitHead": "036819e56a60031af2e0ef875916954dd6cc944d"
128
128
  }