Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions eslint-configs/eslint-config-seekingalpha-base/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Change Log

## 10.0.0 - 2025-03-09

- [breaking] migrate to ESM and make flat config default

## 9.1.0 - 2025-03-06

- [deps] update `eslint-plugin-array-func` to version `5.0.2`
Expand Down
33 changes: 18 additions & 15 deletions eslint-configs/eslint-config-seekingalpha-base/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,35 @@ Install ESLint and all [Peer Dependencies](https://nodejs.org/en/blog/npm/peer-d

Install SeekingAlpha shareable ESLint:

npm install eslint-config-seekingalpha-base --save-dev
npm install eslint-config-seekingalpha-base@latest --save-dev

## Usage

This shareable config includes all ESLint rules including ECMAScript 6 features and set of [legacy rules](https://eslint.org/docs/rules/#deprecated). We also extend our configuration with following plugins:
This shareable config includes all ESLint rules. We also extend our configuration with following plugins:

- [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import)
- [eslint-plugin-array-func](https://github.com/freaktechnik/eslint-plugin-array-func)
- [eslint-plugin-promise](https://github.com/xjamundx/eslint-plugin-promise)
- [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn)

We expose three configurations:

- `seekingalpha-base` - exports all avaliable ESLint [rules](https://eslint.org/docs/rules/) and all rules of plugins above.
- `seekingalpha-base/browser` - exports only browser related rules for ESLint and mentioned plugins. It also sets `browser` as [default environment](https://eslint.org/docs/user-guide/configuring#specifying-environments).
- `seekingalpha-base/node` - exports only Node.js related rules for ESLint and mentioned plugins. It also sets `node` as [default environment](https://eslint.org/docs/user-guide/configuring#specifying-environments).

Simply [extend](https://eslint.org/docs/user-guide/configuring#extending-configuration-files) the .eslintrc.js in your project with relevant configuration:
Simply [use](https://eslint.org/docs/latest/extend/shareable-configs) the eslint.config.js in your project with the configuration:

```javascript
// for seekingalpha-base
{
extends: [
'seekingalpha-base'
]
}
import baseConfig from 'eslint-config-seekingalpha-base';

export default [
{
plugins: {
...baseConfig.plugins,
},
rules: {
...baseConfig.rules,
},
settings: {
...baseConfig.settings,
},
},
];
```

## License
Expand Down
24 changes: 0 additions & 24 deletions eslint-configs/eslint-config-seekingalpha-base/flat.js

This file was deleted.

45 changes: 21 additions & 24 deletions eslint-configs/eslint-config-seekingalpha-base/index.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,24 @@
module.exports = {
extends: [
// ESLint rules (https://eslint.org/docs/rules/)
'./rules/eslint/index.js',
import esLintConfig from './rules/eslint/index.js';
import esLintPluginArrayFuncConfig from './rules/eslint-plugin-array-func/index.js';
import esLintPluginImport from './rules/eslint-plugin-import/index.js';
import esLintPluginPromise from './rules/eslint-plugin-promise/index.js';
import esLintPluginUnicorn from './rules/eslint-plugin-unicorn/index.js';

// eslint-plugin-import rules (https://github.com/benmosher/eslint-plugin-import)
'./rules/eslint-plugin-import/index.js',

// eslint-plugin-array-func rules (https://github.com/freaktechnik/eslint-plugin-array-func)
'./rules/eslint-plugin-array-func/index.js',

// eslint-plugin-promise rules (https://github.com/xjamundx/eslint-plugin-promise)
'./rules/eslint-plugin-promise/index.js',

// eslint-plugin-unicorn rules (https://github.com/sindresorhus/eslint-plugin-unicorn)
'./rules/eslint-plugin-unicorn/index.js',
],

parserOptions: {
ecmaVersion: 12,
sourceType: 'module',
ecmaFeatures: {
impliedStrict: true,
globalReturn: false,
},
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,
},
};
4 changes: 2 additions & 2 deletions eslint-configs/eslint-config-seekingalpha-base/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"name": "eslint-config-seekingalpha-base",
"version": "9.1.0",
"version": "10.0.0",
"description": "SeekingAlpha's sharable base ESLint config",
"main": "index.js",
"type": "module",
"scripts": {
"eslint-find-rules": "eslint-find-rules -u ./index.js",
"lint": "eslint --ext .js .",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = {
export default {
complexity: 10,
maxClassesPerFile: 1,
arrayElementNewlineMinItems: 5,
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// https://github.com/freaktechnik/eslint-plugin-array-func

module.exports = {
plugins: ['array-func'],
import pluginArrayFunc from 'eslint-plugin-array-func';

export default {
plugins: {
'array-func': pluginArrayFunc,
},
rules: {
'array-func/from-map': 'error',

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,36 +1,34 @@
// https://github.com/benmosher/eslint-plugin-import#helpful-warnings

module.exports = {
rules: {
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/export.md
'import/export': 'error',
export default {
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/export.md
'import/export': 'error',

// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-named-as-default.md
'import/no-named-as-default': 'error',
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-named-as-default.md
'import/no-named-as-default': 'error',

// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-named-as-default-member.md
'import/no-named-as-default-member': 'error',
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-named-as-default-member.md
'import/no-named-as-default-member': 'error',

/*
* Stage 0 rule, may be changed. Cool one ;)
* https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-deprecated.md
*/
'import/no-deprecated': 'error',
/*
* Stage 0 rule, may be changed. Cool one ;)
* https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-deprecated.md
*/
'import/no-deprecated': 'error',

// https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-empty-named-blocks.md
'import/no-empty-named-blocks': 'error',
// https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-empty-named-blocks.md
'import/no-empty-named-blocks': 'error',

// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md
'import/no-extraneous-dependencies': [
'error',
{
devDependencies: true,
optionalDependencies: true,
peerDependencies: true,
},
],
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md
'import/no-extraneous-dependencies': [
'error',
{
devDependencies: true,
optionalDependencies: true,
peerDependencies: true,
},
],

// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-mutable-exports.md
'import/no-mutable-exports': 'error',
},
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-mutable-exports.md
'import/no-mutable-exports': 'error',
};
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
// eslint-plugin-import rules (https://github.com/benmosher/eslint-plugin-import)
import importPlugin from 'eslint-plugin-import';

module.exports = {
extends: [
'./helpful-warnings.js',
'./module-systems.js',
'./static-analysis.js',
'./style-guide.js',
],

plugins: ['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';

export default {
plugins: {
import: importPlugin,
},
rules: {
...helpfulWarnings,
...moduleSystem,
...staticAnalysis,
...styleGuide,
},
settings: {
'import/resolver': {
node: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
// https://github.com/benmosher/eslint-plugin-import#module-systems

module.exports = {
rules: {
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/unambiguous.md
'import/unambiguous': 'off',
export default {
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/unambiguous.md
'import/unambiguous': 'off',

// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-commonjs.md
'import/no-commonjs': 'off',
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-commonjs.md
'import/no-commonjs': 'off',

// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-amd.md
'import/no-amd': 'error',
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-amd.md
'import/no-amd': 'error',

// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-nodejs-modules.md
'import/no-nodejs-modules': 'off',
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-nodejs-modules.md
'import/no-nodejs-modules': 'off',

// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-import-module-exports.md
'import/no-import-module-exports': 'error',
},
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-import-module-exports.md
'import/no-import-module-exports': 'error',
};
Loading
Loading