diff --git a/eslint-configs/eslint-config-seekingalpha-base/CHANGELOG.md b/eslint-configs/eslint-config-seekingalpha-base/CHANGELOG.md index a0056bff..4b939006 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/CHANGELOG.md +++ b/eslint-configs/eslint-config-seekingalpha-base/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 11.38.0 - 2025-12-27 + +- [new] extend sharable oxlint config with eslint-plugin-import rules + ## 11.37.0 - 2025-12-27 - [breaking] drop `eslint-plugin-array-func` diff --git a/eslint-configs/eslint-config-seekingalpha-base/oxc.js b/eslint-configs/eslint-config-seekingalpha-base/oxc.js index ca10fa2e..b687b836 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/oxc.js +++ b/eslint-configs/eslint-config-seekingalpha-base/oxc.js @@ -1,6 +1,7 @@ import { ESLintDisabled } from './rules/eslint/oxlint-disabled.js'; import { ESLintPluginPromiseDisabled } from './rules/eslint-plugin-promise/oxlint-disabled.js'; import { ESLintPluginUnicornDisabled } from './rules/eslint-plugin-unicorn/oxlint-disabled.js'; +import { ESLintPluginImportDisabled } from './rules/eslint-plugin-import/oxlint-disabled.js'; import config from './index.js'; @@ -9,6 +10,7 @@ const oxcConfig = { rules: { ...config.rules, ...ESLintDisabled, + ...ESLintPluginImportDisabled, ...ESLintPluginPromiseDisabled, ...ESLintPluginUnicornDisabled, }, diff --git a/eslint-configs/eslint-config-seekingalpha-base/oxlint-config.json b/eslint-configs/eslint-config-seekingalpha-base/oxlint-config.json index dffa7f5a..7663c2b0 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/oxlint-config.json +++ b/eslint-configs/eslint-config-seekingalpha-base/oxlint-config.json @@ -2,6 +2,7 @@ "$schema": "./node_modules/oxlint/configuration_schema.json", "extends": [ "./rules/eslint/oxlint-config.json", + "./rules/eslint-plugin-import/oxlint-config.json", "./rules/eslint-plugin-promise/oxlint-config.json", "./rules/eslint-plugin-unicorn/oxlint-config.json" ] diff --git a/eslint-configs/eslint-config-seekingalpha-base/package.json b/eslint-configs/eslint-config-seekingalpha-base/package.json index 7227c037..2d518c80 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/package.json +++ b/eslint-configs/eslint-config-seekingalpha-base/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-seekingalpha-base", - "version": "11.37.0", + "version": "11.38.0", "description": "SeekingAlpha's sharable base ESLint config", "main": "index.js", "type": "module", diff --git a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-import/oxlint-config.json b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-import/oxlint-config.json new file mode 100644 index 00000000..5348905c --- /dev/null +++ b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-import/oxlint-config.json @@ -0,0 +1,57 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["import"], + "rules": { + "import/no-named-as-default": "error", + "import/no-named-as-default-member": "error", + "import/no-empty-named-blocks": "error", + "import/no-mutable-exports": "error", + "import/no-amd": "error", + "import/default": "error", + "import/export": "error", + "import/exports-last": "off", + "import/namespace": [ + "error", + { + "allowComputed": true + } + ], + "import/no-absolute-path": [ + "error", + { + "esmodule": true, + "commonjs": true, + "amd": false + } + ], + "import/no-dynamic-require": "error", + "import/no-webpack-loader-syntax": "error", + "import/prefer-default-export": "off", + "import/unambiguous": "off", + "import/no-self-import": "error", + "import/consistent-type-specifier-style": ["error", "prefer-top-level"], + "import/first": "error", + "import/group-exports": "off", + "import/max-dependencies": "off", + "import/named": "error", + "import/no-duplicates": "error", + "import/no-namespace": "error", + "import/extensions": [ + "error", + { + "js": "never", + "jsx": "never", + "ts": "never", + "tsx": "never", + "ignorePackages": true + } + ], + "import/no-unassigned-import": "error", + "import/no-named-default": "error", + "import/no-named-export": "off", + "import/no-default-export": "error", + "import/no-anonymous-default-export": "error", + "import/no-commonjs": "off", + "import/no-cycle": "off" + } +} diff --git a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-import/oxlint-disabled.js b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-import/oxlint-disabled.js new file mode 100644 index 00000000..4776e967 --- /dev/null +++ b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-import/oxlint-disabled.js @@ -0,0 +1,32 @@ +export const ESLintPluginImportDisabled = { + 'import/no-named-as-default': 'off', + 'import/no-named-as-default-member': 'off', + 'import/no-empty-named-blocks': 'off', + 'import/no-mutable-exports': 'off', + 'import/no-amd': 'off', + 'import/default': 'off', + 'import/export': 'off', + 'import/exports-last': 'off', + 'import/namespace': 'off', + 'import/no-absolute-path': 'off', + 'import/no-dynamic-require': 'off', + 'import/no-webpack-loader-syntax': 'off', + 'import/prefer-default-export': 'off', + 'import/unambiguous': 'off', + 'import/no-self-import': 'off', + 'import/consistent-type-specifier-style': 'off', + 'import/first': 'off', + 'import/group-exports': 'off', + 'import/max-dependencies': 'off', + 'import/named': 'off', + 'import/no-duplicates': 'off', + 'import/no-namespace': 'off', + 'import/extensions': 'off', + 'import/no-unassigned-import': 'off', + 'import/no-named-default': 'off', + 'import/no-named-export': 'off', + 'import/no-default-export': 'off', + 'import/no-anonymous-default-export': 'off', + 'import/no-commonjs': 'off', + 'import/no-cycle': 'off', +}; diff --git a/package.json b/package.json index 8b4b3b60..16f2861f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "seekingalpha-javascript-style", - "version": "9.81.0", + "version": "9.82.0", "description": "Set of linting rules, guides and best practices for best Javascript code", "main": "index.js", "type": "module",