From 5872a985ac3ea1d7a99893265fc11533337c3872 Mon Sep 17 00:00:00 2001 From: Shogo Sensui Date: Tue, 14 Sep 2021 23:38:29 +0900 Subject: [PATCH] Enable `import/named` rule for JavaScript (#601) --- config/plugins.cjs | 5 ++--- lib/options-manager.js | 4 ++++ test/options-manager.js | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/config/plugins.cjs b/config/plugins.cjs index ad2ec36c..5c18d393 100644 --- a/config/plugins.cjs +++ b/config/plugins.cjs @@ -200,9 +200,8 @@ module.exports = { ], 'import/first': 'error', - // Disabled as it doesn't work with TypeScript. - // This issue and some others: https://github.com/benmosher/eslint-plugin-import/issues/1341 - // 'import/named': 'error', + // Enabled, but disabled on TypeScript (https://github.com/xojs/xo/issues/576) + 'import/named': 'error', 'import/namespace': [ 'error', diff --git a/lib/options-manager.js b/lib/options-manager.js index 6e4e3d0f..9df909ce 100644 --- a/lib/options-manager.js +++ b/lib/options-manager.js @@ -350,6 +350,10 @@ const buildXOConfig = options => config => { // Does not work when the TS definition exports a default const. config.baseConfig.rules['import/default'] = 'off'; + + // Disabled as it doesn't work with TypeScript. + // This issue and some others: https://github.com/benmosher/eslint-plugin-import/issues/1341 + config.baseConfig.rules['import/named'] = 'off'; } config.baseConfig.settings['import/resolver'] = gatherImportResolvers(options); diff --git a/test/options-manager.js b/test/options-manager.js index a67b07ac..efc632d3 100644 --- a/test/options-manager.js +++ b/test/options-manager.js @@ -437,6 +437,7 @@ test('buildConfig: typescript', t => { project: './tsconfig.json', projectFolderIgnoreList: [/\/node_modules\/(?!.*\.cache\/xo-linter)/], }); + t.is(config.baseConfig.rules['import/named'], 'off'); }); test('buildConfig: typescript with parserOption', t => {