From f9266f9af9f092377f6be975d938ec0b55b851d7 Mon Sep 17 00:00:00 2001 From: Long Ho Date: Mon, 8 Feb 2021 22:59:21 -0500 Subject: [PATCH] fix(@formatjs/intl): fix __addMessages issues with references --- packages/intl/src/create-intl.ts | 8 +++----- packages/intl/tests/create-intl.test.ts | 10 ++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/intl/src/create-intl.ts b/packages/intl/src/create-intl.ts index a9f456e557..98b9a6b650 100644 --- a/packages/intl/src/create-intl.ts +++ b/packages/intl/src/create-intl.ts @@ -173,11 +173,9 @@ export function createIntl( ); } - // @ts-expect-error this is fine - resolvedConfig.messages = { - ...resolvedConfig.messages, - ...messages, - }; + Object.keys(messages).forEach(k => { + resolvedConfig.messages[k] = messages[k]; + }); }, }; } diff --git a/packages/intl/tests/create-intl.test.ts b/packages/intl/tests/create-intl.test.ts index 998cb7c9af..d39ab8c9eb 100644 --- a/packages/intl/tests/create-intl.test.ts +++ b/packages/intl/tests/create-intl.test.ts @@ -13,3 +13,13 @@ test('createIntl', function () { }) ).toBe('bar'); }); + +test('__addMessages', function () { + const intl = createIntl({ + locale: 'en', + messages: {}, + }); + expect(intl.messages).toEqual({}); + intl.__addMessages({foo: ''}); + expect(intl.messages).toEqual({foo: ''}); +});