From 32435a865da5a68aec8d0926b846c9a4611a51c3 Mon Sep 17 00:00:00 2001 From: Teajey <21069848+Teajey@users.noreply.github.com> Date: Wed, 8 Dec 2021 12:28:15 +1300 Subject: [PATCH] Add ignoreContext option --- src/transform.js | 3 ++- test/parser.test.js | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/transform.js b/src/transform.js index 039eaf96..a5e777a7 100644 --- a/src/transform.js +++ b/src/transform.js @@ -40,6 +40,7 @@ export default class i18nTransform extends Transform { skipDefaultValues: false, customValueTemplate: null, failOnWarnings: false, + ignoreContext: false, } this.options = { ...this.defaults, ...options } @@ -314,7 +315,7 @@ export default class i18nTransform extends Transform { } addEntry(entry) { - if (entry.context) { + if (!this.options.ignoreContext && entry.context) { const contextEntry = Object.assign({}, entry) delete contextEntry.context contextEntry.key += this.options.contextSeparator + entry.context diff --git a/test/parser.test.js b/test/parser.test.js index 11ebcb3e..1d204065 100644 --- a/test/parser.test.js +++ b/test/parser.test.js @@ -785,6 +785,31 @@ describe('parser', () => { }) }) + describe('ignoreContext', () => { + it('adds entry without context', (done) => { + let result + const i18nextParser = new i18nTransform({ ignoreContext: true }) + const fakeFile = new Vinyl({ + contents: Buffer.from("t('first', {context: 'female'})"), + path: 'file.js', + }) + + i18nextParser.on('data', (file) => { + if (file.relative.endsWith(enLibraryPath)) { + result = JSON.parse(file.contents) + } + }) + i18nextParser.once('end', () => { + assert.deepEqual(result, { + first: '', + }) + done() + }) + + i18nextParser.end(fakeFile) + }) + }) + it('handles output with $LOCALE and $NAMESPACE var', (done) => { let result const i18nextParser = new i18nTransform({