diff --git a/README.md b/README.md index 0eeb87f..c6b6b4b 100644 --- a/README.md +++ b/README.md @@ -735,10 +735,9 @@ can be picky about giving up their *preh-shus*... ## High-priority to-dos 1. Restore the following as may become available in flat config: - 1. eslint-plugin-import - 2. eslint-plugin-unsanitized - 3. @fintechstudios/eslint-plugin-chai-as-promised (has PR) - 4. eslint-plugin-mocha-cleanup (has PR) + 1. eslint-plugin-unsanitized + 2. @fintechstudios/eslint-plugin-chai-as-promised (has PR) + 3. eslint-plugin-mocha-cleanup (has PR) ## To-dos diff --git a/cypress.js b/cypress.js index 7e97baf..a65a81f 100644 --- a/cypress.js +++ b/cypress.js @@ -1,4 +1,4 @@ -import cypress from 'eslint-plugin-cypress/flat'; +import cypress from 'eslint-plugin-cypress'; import mochaPlus from './mocha-plus.js'; diff --git a/great-eye.js b/great-eye.js index d4bfec6..7fb2e9f 100644 --- a/great-eye.js +++ b/great-eye.js @@ -39,10 +39,9 @@ export default function greatEye (pkg, types) { ] }], - // Todo: Reenable when reapplied - // 'import/no-unused-modules': ['warn', { - // missingExports: true, unusedExports: true - // }], + 'import/no-unused-modules': ['warn', { + missingExports: true, unusedExports: true + }], 'jsdoc/check-alignment': ['warn'], 'jsdoc/check-indentation': ['warn'], diff --git a/main.js b/main.js index c4fd832..e907369 100644 --- a/main.js +++ b/main.js @@ -8,13 +8,16 @@ import brettz9 from '@brettz9/eslint-plugin'; import markdown from '@eslint/markdown'; import html from 'eslint-plugin-html'; import promise from 'eslint-plugin-promise'; -// import importPlugin from 'eslint-plugin-import'; +import importPlugin from 'eslint-plugin-import'; import unicorn from 'eslint-plugin-unicorn'; import comments from '@eslint-community/eslint-plugin-eslint-comments/configs'; import arrayFunc from 'eslint-plugin-array-func'; import sonarjs from 'eslint-plugin-sonarjs'; import jsdoc from 'eslint-plugin-jsdoc'; + +// eslint-disable-next-line @stylistic/max-len -- Long +// eslint-disable-next-line import/namespace, import/default, import/no-named-as-default, import/no-named-as-default-member -- Experimental JSON import noUseExtendNative from 'eslint-plugin-no-use-extend-native'; import script from './script.js'; @@ -59,7 +62,7 @@ export default function main (pkg) { // These may override 'standard' which includes their rules, // so including first - // ...compat.extends('plugin:import/recommended'), // Todo: Reenable after ESLint 9/Flat support: https://github.com/import-js/eslint-plugin-import/issues/2948 + importPlugin.flatConfigs.recommended, promise.configs['flat/recommended'], // This may override eslint:recommended and the promise/import rules, // but it doesn't turn any off diff --git a/sauron.js b/sauron.js index ae9d2c4..baee258 100644 --- a/sauron.js +++ b/sauron.js @@ -126,9 +126,8 @@ export default function sauron (pkg, types) { ], 'vars-on-top': ['warn'], - // Todo: Reenable after: https://github.com/import-js/eslint-plugin-import/issues/2948 - // 'import/unambiguous': 'warn', - // 'import/no-commonjs': 'warn', + 'import/unambiguous': 'warn', + 'import/no-commonjs': 'warn', 'jsdoc/require-jsdoc': ['warn', { require: { diff --git a/standard.js b/standard.js index 2ce4b90..92ff629 100644 --- a/standard.js +++ b/standard.js @@ -124,13 +124,12 @@ export default [{ 'valid-typeof': 'error', '@stylistic/wrap-iife': 'error', '@stylistic/yield-star-spacing': 'error', - yoda: 'error' - // Todo: Reenable - // 'import/export': 'error', - // 'import/first': 'error', - // 'import/no-duplicates': 'error', - // 'import/no-named-default': 'error', - // 'import/no-webpack-loader-syntax': 'error' + yoda: 'error', + 'import/export': 'error', + 'import/first': 'error', + 'import/no-duplicates': 'error', + 'import/no-named-default': 'error', + 'import/no-webpack-loader-syntax': 'error' } }, { name: 'ash-nazg/standard/node', diff --git a/typings/eslint-plugin-cypress.d.ts b/typings/eslint-plugin-cypress.d.ts index fe0f06b..ffce83d 100644 --- a/typings/eslint-plugin-cypress.d.ts +++ b/typings/eslint-plugin-cypress.d.ts @@ -1,4 +1,4 @@ -declare module 'eslint-plugin-cypress/flat' { +declare module 'eslint-plugin-cypress' { import type { Linter } from "eslint"; declare const cypress: { diff --git a/typings/eslint-plugin-import.d.ts b/typings/eslint-plugin-import.d.ts new file mode 100644 index 0000000..20cab10 --- /dev/null +++ b/typings/eslint-plugin-import.d.ts @@ -0,0 +1,9 @@ +declare module 'eslint-plugin-import' { + interface ConfigsStructure { + flatConfigs: { + recommended: import('eslint').Linter.Config + } + } + var importPlugin: ConfigsStructure + export = importPlugin; +}