From 0c1a72738097550465650c5170514cd30ff75b78 Mon Sep 17 00:00:00 2001 From: Aleksey Kovalevsky Date: Thu, 6 Mar 2025 15:23:27 +0200 Subject: [PATCH 1/8] eslint-plugin-array-func flat config --- .../eslint-config-seekingalpha-base/flat.js | 6 ++++++ .../rules/eslint-plugin-array-func/flat.js | 12 ++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-array-func/flat.js diff --git a/eslint-configs/eslint-config-seekingalpha-base/flat.js b/eslint-configs/eslint-config-seekingalpha-base/flat.js index c5104048..a3be6f46 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/flat.js +++ b/eslint-configs/eslint-config-seekingalpha-base/flat.js @@ -1,9 +1,15 @@ // eslint-disable-next-line n/file-extension-in-import, import/extensions import esLintConfig from './rules/eslint/flat.js'; +// eslint-disable-next-line n/file-extension-in-import, import/extensions +import esLintPluginArrayFuncConfig from './rules/eslint-plugin-array-func/flat.js'; // eslint-disable-next-line import/no-default-export, import/no-anonymous-default-export export default { + plugins: { + ...esLintPluginArrayFuncConfig.plugins, + }, rules: { ...esLintConfig.rules, + ...esLintPluginArrayFuncConfig.rules, }, }; diff --git a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-array-func/flat.js b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-array-func/flat.js new file mode 100644 index 00000000..c5dd2344 --- /dev/null +++ b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-array-func/flat.js @@ -0,0 +1,12 @@ +import arrayFunc from 'eslint-plugin-array-func'; + +// eslint-disable-next-line n/file-extension-in-import, import/extensions +import config from './index.js'; + +// eslint-disable-next-line import/no-default-export, import/no-anonymous-default-export +export default { + plugins: { + 'array-func': arrayFunc, + }, + rules: config.rules, +}; From a9a4668b243842b2640005fc6a0822372c9e96b2 Mon Sep 17 00:00:00 2001 From: Aleksey Kovalevsky Date: Thu, 6 Mar 2025 15:46:05 +0200 Subject: [PATCH 2/8] eslint-plugin-import flat config --- .eslintrc.cjs | 8 ++++++- .../eslint-config-seekingalpha-base/flat.js | 9 +++++--- .../rules/eslint-plugin-array-func/flat.js | 6 ++---- .../rules/eslint-plugin-import/flat.js | 21 +++++++++++++++++++ .../rules/eslint/flat.js | 4 ---- package.json | 2 +- prettier.config.js | 1 - 7 files changed, 37 insertions(+), 14 deletions(-) create mode 100644 eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-import/flat.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 913b9b30..c9c8639f 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -4,7 +4,13 @@ module.exports = { }, reportUnusedDisableDirectives: true, extends: [ - 'eslint-config-seekingalpha-base/prettier', + 'eslint-config-seekingalpha-base', 'eslint-config-seekingalpha-node', ], + rules: { + 'import/no-anonymous-default-export': 'off', + 'import/no-default-export': 'off', + 'import/extensions': 'off', + 'n/file-extension-in-import': 'off', + } }; diff --git a/eslint-configs/eslint-config-seekingalpha-base/flat.js b/eslint-configs/eslint-config-seekingalpha-base/flat.js index a3be6f46..449c7d97 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/flat.js +++ b/eslint-configs/eslint-config-seekingalpha-base/flat.js @@ -1,15 +1,18 @@ -// eslint-disable-next-line n/file-extension-in-import, import/extensions import esLintConfig from './rules/eslint/flat.js'; -// eslint-disable-next-line n/file-extension-in-import, import/extensions import esLintPluginArrayFuncConfig from './rules/eslint-plugin-array-func/flat.js'; +import esLintPluginImport from './rules/eslint-plugin-import/flat.js'; -// eslint-disable-next-line import/no-default-export, import/no-anonymous-default-export export default { plugins: { ...esLintPluginArrayFuncConfig.plugins, + ...esLintPluginImport.plugins, }, rules: { ...esLintConfig.rules, ...esLintPluginArrayFuncConfig.rules, + ...esLintPluginImport.rules, + }, + settings: { + ...esLintPluginImport.settings, }, }; diff --git a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-array-func/flat.js b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-array-func/flat.js index c5dd2344..84589b91 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-array-func/flat.js +++ b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-array-func/flat.js @@ -1,12 +1,10 @@ -import arrayFunc from 'eslint-plugin-array-func'; +import pluginArrayFunc from 'eslint-plugin-array-func'; -// eslint-disable-next-line n/file-extension-in-import, import/extensions import config from './index.js'; -// eslint-disable-next-line import/no-default-export, import/no-anonymous-default-export export default { plugins: { - 'array-func': arrayFunc, + 'array-func': pluginArrayFunc, }, rules: config.rules, }; diff --git a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-import/flat.js b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-import/flat.js new file mode 100644 index 00000000..9ad0c359 --- /dev/null +++ b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-import/flat.js @@ -0,0 +1,21 @@ +import importPlugin from 'eslint-plugin-import'; + +import helpfulWarnings from './helpful-warnings.js'; +import moduleSystem from './module-systems.js'; +import staticAnalysis from './static-analysis.js'; +import styleGuide from './style-guide.js'; + +import config from './index.js'; + +export default { + plugins: { + import: importPlugin, + }, + rules: { + ...helpfulWarnings.rules, + ...moduleSystem.rules, + ...staticAnalysis.rules, + ...styleGuide.rules, + }, + settings: config.settings, +}; diff --git a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint/flat.js b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint/flat.js index d3901b90..b8ef03f5 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint/flat.js +++ b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint/flat.js @@ -1,11 +1,7 @@ -// eslint-disable-next-line n/file-extension-in-import, import/extensions import layout from './layout-and-formatting.js'; -// eslint-disable-next-line n/file-extension-in-import, import/extensions import problems from './possible-problems.js'; -// eslint-disable-next-line n/file-extension-in-import, import/extensions import suggestions from './suggestions.js'; -// eslint-disable-next-line import/no-default-export, import/no-anonymous-default-export export default { rules: { ...layout.rules, diff --git a/package.json b/package.json index d69fd809..ccfc6a8c 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "devDependencies": { "@seekingalpha/prettier-config-samw": "2.0.0", "eslint": "8.57.1", - "eslint-config-seekingalpha-base": "8.16.0", + "eslint-config-seekingalpha-base": "8.17.1", "eslint-config-seekingalpha-node": "6.9.0", "eslint-plugin-array-func": "4.0.0", "eslint-plugin-import": "2.31.0", diff --git a/prettier.config.js b/prettier.config.js index 03860409..684cd3b2 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,6 +1,5 @@ import config from '@seekingalpha/prettier-config-samw'; -// eslint-disable-next-line import/no-anonymous-default-export, import/no-default-export export default { ...config, }; From 5cf59c09227ebcba198e4c59b8b83aca289ba681 Mon Sep 17 00:00:00 2001 From: Aleksey Kovalevsky Date: Thu, 6 Mar 2025 15:50:13 +0200 Subject: [PATCH 3/8] eslint-plugin-promise flat config --- .../eslint-config-seekingalpha-base/flat.js | 3 +++ .../rules/eslint-plugin-promise/flat.js | 12 ++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-promise/flat.js diff --git a/eslint-configs/eslint-config-seekingalpha-base/flat.js b/eslint-configs/eslint-config-seekingalpha-base/flat.js index 449c7d97..09ed5c10 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/flat.js +++ b/eslint-configs/eslint-config-seekingalpha-base/flat.js @@ -1,16 +1,19 @@ import esLintConfig from './rules/eslint/flat.js'; import esLintPluginArrayFuncConfig from './rules/eslint-plugin-array-func/flat.js'; import esLintPluginImport from './rules/eslint-plugin-import/flat.js'; +import esLintPluginPromise from './rules/eslint-plugin-promise/flat.js'; export default { plugins: { ...esLintPluginArrayFuncConfig.plugins, ...esLintPluginImport.plugins, + ...esLintPluginPromise.plugins, }, rules: { ...esLintConfig.rules, ...esLintPluginArrayFuncConfig.rules, ...esLintPluginImport.rules, + ...esLintPluginPromise.rules, }, settings: { ...esLintPluginImport.settings, diff --git a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-promise/flat.js b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-promise/flat.js new file mode 100644 index 00000000..44d0f75b --- /dev/null +++ b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-promise/flat.js @@ -0,0 +1,12 @@ +import promisePlugin from 'eslint-plugin-promise'; + +import config from './index.js'; + +export default { + plugins: { + promise: promisePlugin, + }, + rules: { + ...config.rules, + }, +}; From befa87639381473a800cb5a7b30c2fd03e39e978 Mon Sep 17 00:00:00 2001 From: Aleksey Kovalevsky Date: Thu, 6 Mar 2025 15:53:50 +0200 Subject: [PATCH 4/8] eslint-plugin-unicorn flat config --- eslint-configs/eslint-config-seekingalpha-base/flat.js | 3 +++ .../rules/eslint-plugin-promise/flat.js | 4 +--- .../rules/eslint-plugin-unicorn/flat.js | 10 ++++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-unicorn/flat.js diff --git a/eslint-configs/eslint-config-seekingalpha-base/flat.js b/eslint-configs/eslint-config-seekingalpha-base/flat.js index 09ed5c10..b72c79fa 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/flat.js +++ b/eslint-configs/eslint-config-seekingalpha-base/flat.js @@ -2,18 +2,21 @@ import esLintConfig from './rules/eslint/flat.js'; import esLintPluginArrayFuncConfig from './rules/eslint-plugin-array-func/flat.js'; import esLintPluginImport from './rules/eslint-plugin-import/flat.js'; import esLintPluginPromise from './rules/eslint-plugin-promise/flat.js'; +import esLintPluginUnicorn from './rules/eslint-plugin-unicorn/flat.js'; export default { plugins: { ...esLintPluginArrayFuncConfig.plugins, ...esLintPluginImport.plugins, ...esLintPluginPromise.plugins, + ...esLintPluginUnicorn.plugins, }, rules: { ...esLintConfig.rules, ...esLintPluginArrayFuncConfig.rules, ...esLintPluginImport.rules, ...esLintPluginPromise.rules, + ...esLintPluginUnicorn.rules, }, settings: { ...esLintPluginImport.settings, diff --git a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-promise/flat.js b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-promise/flat.js index 44d0f75b..365a5386 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-promise/flat.js +++ b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-promise/flat.js @@ -6,7 +6,5 @@ export default { plugins: { promise: promisePlugin, }, - rules: { - ...config.rules, - }, + rules: config.rules, }; diff --git a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-unicorn/flat.js b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-unicorn/flat.js new file mode 100644 index 00000000..9c78661f --- /dev/null +++ b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-unicorn/flat.js @@ -0,0 +1,10 @@ +import eslintPluginUnicorn from 'eslint-plugin-unicorn'; + +import config from './index'; + +export default { + plugins: { + unicorn: eslintPluginUnicorn, + }, + rules: config.rules, +}; From d624a731e47b8c70881a61bc90727886262032d0 Mon Sep 17 00:00:00 2001 From: Aleksey Kovalevsky Date: Thu, 6 Mar 2025 15:56:11 +0200 Subject: [PATCH 5/8] eslint-config-seekingalpha-base ver. 9.0.0 - [new] expose sharable flat config --- eslint-configs/eslint-config-seekingalpha-base/CHANGELOG.md | 4 ++++ eslint-configs/eslint-config-seekingalpha-base/package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/eslint-configs/eslint-config-seekingalpha-base/CHANGELOG.md b/eslint-configs/eslint-config-seekingalpha-base/CHANGELOG.md index cff879c5..78ea015b 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 +## 9.0.0 - 2025-03-06 + +- [new] expose sharable flat config + ## 8.17.1 - 2025-03-06 - [breaking] removed separate prettier config diff --git a/eslint-configs/eslint-config-seekingalpha-base/package.json b/eslint-configs/eslint-config-seekingalpha-base/package.json index bcb1d1bb..a704ab64 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": "8.17.1", + "version": "9.0.0", "description": "SeekingAlpha's sharable base ESLint config", "main": "index.js", "scripts": { From 0970f534cf0765d0458faf7258faaf0620410984 Mon Sep 17 00:00:00 2001 From: Aleksey Kovalevsky Date: Thu, 6 Mar 2025 16:08:27 +0200 Subject: [PATCH 6/8] eslint-config-seekingalpha-node ver. 7.0.0 - [deps] update `eslint-plugin-n` to version `17.16.2` - [new] flat config --- .../eslint-config-seekingalpha-node/CHANGELOG.md | 5 +++++ .../eslint-config-seekingalpha-node/README.md | 2 +- .../eslint-config-seekingalpha-node/flat.js | 6 ++++++ .../eslint-config-seekingalpha-node/package.json | 6 +++--- .../rules/eslint-plugin-n/flat.js | 11 +++++++++++ 5 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 eslint-configs/eslint-config-seekingalpha-node/flat.js create mode 100644 eslint-configs/eslint-config-seekingalpha-node/rules/eslint-plugin-n/flat.js diff --git a/eslint-configs/eslint-config-seekingalpha-node/CHANGELOG.md b/eslint-configs/eslint-config-seekingalpha-node/CHANGELOG.md index de736fea..26d2abbc 100644 --- a/eslint-configs/eslint-config-seekingalpha-node/CHANGELOG.md +++ b/eslint-configs/eslint-config-seekingalpha-node/CHANGELOG.md @@ -1,5 +1,10 @@ # Change Log +## 7.0.0 - 2025-03-06 + +- [deps] update `eslint-plugin-n` to version `17.16.2` +- [new] flat config + ## 6.9.0 - 2025-03-03 - [deps] update `eslint-plugin-n` to version `17.16.1` diff --git a/eslint-configs/eslint-config-seekingalpha-node/README.md b/eslint-configs/eslint-config-seekingalpha-node/README.md index 950512bb..a3bb290d 100644 --- a/eslint-configs/eslint-config-seekingalpha-node/README.md +++ b/eslint-configs/eslint-config-seekingalpha-node/README.md @@ -6,7 +6,7 @@ This package includes the shareable ESLint config used by [SeekingAlpha](https:/ Install ESLint and all [Peer Dependencies](https://nodejs.org/en/blog/npm/peer-dependencies/): - npm install eslint@8.57.1 eslint-plugin-n@17.16.1 --save-dev + npm install eslint@8.57.1 eslint-plugin-n@17.16.2 --save-dev Install SeekingAlpha shareable ESLint: diff --git a/eslint-configs/eslint-config-seekingalpha-node/flat.js b/eslint-configs/eslint-config-seekingalpha-node/flat.js new file mode 100644 index 00000000..c9e992ae --- /dev/null +++ b/eslint-configs/eslint-config-seekingalpha-node/flat.js @@ -0,0 +1,6 @@ +import config from './rules/eslint-plugin-n/flat.js'; + +export default { + plugins: config.plugins, + rules: config.rules, +}; diff --git a/eslint-configs/eslint-config-seekingalpha-node/package.json b/eslint-configs/eslint-config-seekingalpha-node/package.json index e8f3faad..a2a8ab55 100644 --- a/eslint-configs/eslint-config-seekingalpha-node/package.json +++ b/eslint-configs/eslint-config-seekingalpha-node/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-seekingalpha-node", - "version": "6.9.0", + "version": "7.0.0", "description": "SeekingAlpha's sharable node.js ESLint config", "main": "index.js", "scripts": { @@ -50,11 +50,11 @@ }, "peerDependencies": { "eslint": "8.57.1", - "eslint-plugin-n": "17.16.1" + "eslint-plugin-n": "17.16.2" }, "devDependencies": { "eslint": "8.57.1", "eslint-find-rules": "5.0.0", - "eslint-plugin-n": "17.16.1" + "eslint-plugin-n": "17.16.2" } } diff --git a/eslint-configs/eslint-config-seekingalpha-node/rules/eslint-plugin-n/flat.js b/eslint-configs/eslint-config-seekingalpha-node/rules/eslint-plugin-n/flat.js new file mode 100644 index 00000000..8a646c31 --- /dev/null +++ b/eslint-configs/eslint-config-seekingalpha-node/rules/eslint-plugin-n/flat.js @@ -0,0 +1,11 @@ +import nodePlugin from 'eslint-plugin-n'; + +import config from './index.js'; + +export default { + plugins: { + // eslint-disable-next-line id-length + n: nodePlugin, + }, + rules: config.rules, +}; From b971bf45588088637e8decd334499603da6dd6ae Mon Sep 17 00:00:00 2001 From: Aleksey Kovalevsky Date: Thu, 6 Mar 2025 16:09:26 +0200 Subject: [PATCH 7/8] Update flat.js --- .../rules/eslint-plugin-unicorn/flat.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-unicorn/flat.js b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-unicorn/flat.js index 9c78661f..93b5408b 100644 --- a/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-unicorn/flat.js +++ b/eslint-configs/eslint-config-seekingalpha-base/rules/eslint-plugin-unicorn/flat.js @@ -1,6 +1,6 @@ import eslintPluginUnicorn from 'eslint-plugin-unicorn'; -import config from './index'; +import config from './index.js'; export default { plugins: { From 574d78e4aa68c603f660d8faad88f83b558e3fd5 Mon Sep 17 00:00:00 2001 From: Aleksey Kovalevsky Date: Thu, 6 Mar 2025 16:15:56 +0200 Subject: [PATCH 8/8] Update .eslintrc.cjs --- .eslintrc.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index c9c8639f..5617d8e6 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -12,5 +12,5 @@ module.exports = { 'import/no-default-export': 'off', 'import/extensions': 'off', 'n/file-extension-in-import': 'off', - } + }, };