From 53954792f9c825c8f8c83cfaa2b7712c8f863e6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Greg=20Zi=C3=B3=C5=82kowski?= Date: Tue, 28 Apr 2020 13:45:53 +0200 Subject: [PATCH] ESLint Plugin: Relax check for i18n-text-domain rule (#21928) --- .../rules/__tests__/i18n-text-domain.js | 6 ++++++ packages/eslint-plugin/rules/i18n-text-domain.js | 14 +++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/eslint-plugin/rules/__tests__/i18n-text-domain.js b/packages/eslint-plugin/rules/__tests__/i18n-text-domain.js index 1212c90d998ed7..d2c78263e61ed4 100644 --- a/packages/eslint-plugin/rules/__tests__/i18n-text-domain.js +++ b/packages/eslint-plugin/rules/__tests__/i18n-text-domain.js @@ -16,6 +16,12 @@ const ruleTester = new RuleTester( { ruleTester.run( 'i18n-text-domain', rule, { valid: [ + { + code: `_x( 'Hello World' )`, + }, + { + code: `_x( 'Hello World', 'random' )`, + }, { code: `__( 'Hello World' )`, options: [ { allowedTextDomain: 'default' } ], diff --git a/packages/eslint-plugin/rules/i18n-text-domain.js b/packages/eslint-plugin/rules/i18n-text-domain.js index 94b0619372d547..b47564738d06e2 100644 --- a/packages/eslint-plugin/rules/i18n-text-domain.js +++ b/packages/eslint-plugin/rules/i18n-text-domain.js @@ -48,7 +48,6 @@ module.exports = { }, { type: 'string', - default: 'default', }, ], }, @@ -68,12 +67,14 @@ module.exports = { }, create( context ) { const options = context.options[ 0 ] || {}; - const { allowedTextDomain = 'default' } = options; + const { allowedTextDomain } = options; const allowedTextDomains = Array.isArray( allowedTextDomain ) ? allowedTextDomain - : [ allowedTextDomain ]; + : [ allowedTextDomain ].filter( ( value ) => value ); const canFixTextDomain = allowedTextDomains.length === 1; - const allowDefault = allowedTextDomains.includes( 'default' ); + const allowDefault = + allowedTextDomains.length === 0 || + allowedTextDomains.includes( 'default' ); return { CallExpression( node ) { @@ -134,7 +135,10 @@ module.exports = { return; } - if ( ! allowedTextDomains.includes( value ) ) { + if ( + allowedTextDomains.length && + ! allowedTextDomains.includes( value ) + ) { const replaceTextDomain = ( fixer ) => { return fixer.replaceTextRange( // account for quotes.