From 3afaceccb669b59ee2f5b42ee2e138646ccdb79d Mon Sep 17 00:00:00 2001 From: Aman Kubanychbek Date: Tue, 15 Dec 2020 19:57:55 +0600 Subject: [PATCH] fix: prevent adding undefined msgid to messages (#915) --- .../src/index.ts | 19 +++++++++++-------- .../test/fixtures/js-with-macros.js | 6 ++++++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/babel-plugin-extract-messages/src/index.ts b/packages/babel-plugin-extract-messages/src/index.ts index dd81c52c9..8eaf1bca0 100644 --- a/packages/babel-plugin-extract-messages/src/index.ts +++ b/packages/babel-plugin-extract-messages/src/index.ts @@ -19,6 +19,9 @@ function addMessage( messages, { id, message: newDefault, origin, comment, ...props } ) { + // prevent from adding undefined msgid + if (id === undefined) return + if (messages.has(id)) { const message = messages.get(id) @@ -27,15 +30,15 @@ function addMessage( throw path.buildCodeFrameError( "Different defaults for the same message ID." ) - } else { - if (newDefault) { - message.message = newDefault - } + } - ;[].push.apply(message.origin, origin) - if (comment) { - ;[].push.apply(message.extractedComments, [comment]) - } + if (newDefault) { + message.message = newDefault + } + + ;[].push.apply(message.origin, origin) + if (comment) { + ;[].push.apply(message.extractedComments, [comment]) } } else { const extractedComments = comment ? [comment] : [] diff --git a/packages/babel-plugin-extract-messages/test/fixtures/js-with-macros.js b/packages/babel-plugin-extract-messages/test/fixtures/js-with-macros.js index f7c1ed960..607eb9c01 100644 --- a/packages/babel-plugin-extract-messages/test/fixtures/js-with-macros.js +++ b/packages/babel-plugin-extract-messages/test/fixtures/js-with-macros.js @@ -20,3 +20,9 @@ const withTId = t({ id: "ID Some", message: "Message with id some" }) + +const id = 'message id' + +const withUnknownId = t({ + id: id +})