Skip to content

Commit

Permalink
improve(eslint) modularize eslint configs (#899)
Browse files Browse the repository at this point in the history
  • Loading branch information
kellymears committed Dec 31, 2021
1 parent 0a0b8b6 commit d41d755
Show file tree
Hide file tree
Showing 22 changed files with 156 additions and 107 deletions.
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ module.exports = {
{
files: ['examples/**/*.js'],
rules: {
'tsdoc/syntax': 'off',
'tsdoc/syntax': OFF,
},
},
],
Expand Down
43 changes: 3 additions & 40 deletions examples/eslint/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,43 +1,6 @@
module.exports = {
root: true,
extends: ['eslint:recommended'],
env: {
node: true,
es6: true,
amd: true,
browser: true,
jquery: true,
},
parserOptions: {
ecmaFeatures: {
experimentalObjectRestSpread: true,
globalReturn: true,
generators: false,
impliedStrict: true,
objectLiteralDuplicateProperties: false,
},
ecmaVersion: 2017,
sourceType: 'module',
},
plugins: ['import'],
settings: {
'import/core-modules': [],
'import/ignore': [
'node_modules',
'\\.(coffee|scss|css|less|hbs|svg|json)$',
],
},
rules: {
'no-console': 0,
'comma-dangle': [
'error',
{
arrays: 'always-multiline',
objects: 'always-multiline',
imports: 'always-multiline',
exports: 'always-multiline',
functions: 'ignore',
},
],
},
extends: [
require.resolve('@roots/bud-preset-recommend/eslint-config'),
],
}
8 changes: 6 additions & 2 deletions examples/eslint/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@
},
"devDependencies": {
"@roots/bud": "workspace:packages/@roots/bud",
"@roots/bud-eslint": "workspace:packages/@roots/bud-eslint",
"@roots/bud-preset-recommend": "workspace:*"
"@roots/bud-preset-recommend": "workspace:packages/@roots/bud-preset-recommend",
"eslint": "8.5.0",
"postcss": "8.4.5",
"postcss-import": "14.0.2",
"postcss-nested": "5.0.6",
"postcss-preset-env": "7.1.0"
}
}
6 changes: 6 additions & 0 deletions examples/preset-recommend/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
root: true,
extends: [
require.resolve('@roots/bud-preset-recommend/eslint-config'),
],
}
2 changes: 1 addition & 1 deletion examples/sage/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = {
root: true,
extends: ['@roots/sage/eslint-config'],
extends: [require.resolve('@roots/sage/eslint-config')],
};
6 changes: 6 additions & 0 deletions examples/wordpress-theme/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
root: true,
extends: [
require.resolve('@roots/bud-preset-wordpress/eslint-config'),
],
}
21 changes: 21 additions & 0 deletions packages/@roots/bud-babel/eslint-config/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/**
* Babel default eslint config
*
* @public
*/
module.exports = {
parser: '@babel/eslint-parser',
parserOptions: {
ecmaFeatures: {
experimentalObjectRestSpread: true,
globalReturn: true,
generators: false,
impliedStrict: true,
jsx: true,
objectLiteralDuplicateProperties: false,
},
ecmaVersion: 2017,
requireConfigFile: false,
sourceType: 'module',
},
}
5 changes: 3 additions & 2 deletions packages/@roots/bud-babel/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,16 @@
"node": ">=14"
},
"files": [
"eslint-config/",
"lib/",
"types/"
],
"main": "./lib/cjs/index.js",
"module": "./lib/esm/index.js",
"types": "./types/index.d.ts",
"exports": {
"require": "./lib/cjs/index.js",
"import": "./lib/esm/index.js"
".": "./lib/cjs/index.js",
"./eslint-config": "./eslint-config/index.js"
},
"scripts": {
"build": "yarn g:build",
Expand Down
21 changes: 21 additions & 0 deletions packages/@roots/bud-eslint/eslint-config/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/**
* Default eslint config
*
* @public
*/
module.exports = {
extends: ['eslint:recommended'],
env: {
browser: true,
es6: true,
node: true,
},
plugins: ['import'],
settings: {
'import/core-modules': [],
'import/ignore': [
'node_modules',
'\\.(coffee|scss|css|less|hbs|svg|json)$',
],
},
}
10 changes: 3 additions & 7 deletions packages/@roots/bud-eslint/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"node": ">=14"
},
"files": [
"eslint-config/",
"lib/",
"types/",
"template/"
Expand All @@ -38,8 +39,8 @@
"module": "./lib/esm/index.js",
"types": "./types/index.d.ts",
"exports": {
"require": "./lib/cjs/index.js",
"import": "./lib/esm/index.js"
".": "./lib/cjs/index.js",
"./eslint-config": "./eslint-config/index.js"
},
"scripts": {
"build": "yarn g:build",
Expand Down Expand Up @@ -70,12 +71,7 @@
},
"dependencies": {
"@babel/eslint-parser": "^7.16.5",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-react": "^7.27.1",
"eslint-plugin-react-hooks": "^4.3.0",
"eslint-webpack-plugin": "^3.1.1",
"tslib": "^2.3.1"
},
Expand Down
11 changes: 11 additions & 0 deletions packages/@roots/bud-preset-recommend/eslint-config/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* Recommended preset default eslint config
*
* @public
*/
module.exports = {
extends: [
require.resolve('@roots/bud-eslint/eslint-config'),
require.resolve('@roots/bud-babel/eslint-config'),
],
}
7 changes: 5 additions & 2 deletions packages/@roots/bud-preset-recommend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"node": ">=14"
},
"files": [
"eslint-config/",
"lib/",
"types/",
"index.d.ts"
Expand All @@ -45,8 +46,8 @@
"module": "./lib/esm/index.js",
"types": "./types/index.d.ts",
"exports": {
"require": "./lib/cjs/index.js",
"import": "./lib/esm/index.js"
".": "./lib/cjs/index.js",
"./eslint-config": "./eslint-config/index.js"
},
"scripts": {
"build": "yarn g:build",
Expand All @@ -71,6 +72,7 @@
"peers": [
"@roots/bud-babel",
"@roots/bud-entrypoints",
"@roots/bud-eslint",
"@roots/bud-postcss"
]
},
Expand All @@ -82,6 +84,7 @@
"dependencies": {
"@roots/bud-babel": "workspace:packages/@roots/bud-babel",
"@roots/bud-entrypoints": "workspace:packages/@roots/bud-entrypoints",
"@roots/bud-eslint": "workspace:packages/@roots/bud-eslint",
"@roots/bud-postcss": "workspace:packages/@roots/bud-postcss",
"tslib": "2.3.1"
}
Expand Down
13 changes: 13 additions & 0 deletions packages/@roots/bud-preset-wordpress/eslint-config/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/**
* WordPress preset default eslint config
*
* @public
*/
module.exports = {
extends: [
require.resolve('@roots/bud-preset-recommend/eslint-config'),
require.resolve('@roots/bud-react/eslint-config'),
],
env: {jquery: true},
globals: {wp: true},
}
5 changes: 3 additions & 2 deletions packages/@roots/bud-preset-wordpress/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,16 @@
"node": ">=14"
},
"files": [
"eslint-config/",
"lib/",
"types/"
],
"main": "./lib/cjs/index.js",
"module": "./lib/esm/index.js",
"types": "./types/index.d.ts",
"exports": {
"require": "./lib/cjs/index.js",
"import": "./lib/esm/index.js"
".": "./lib/cjs/index.js",
"./eslint-config": "./eslint-config/index.js"
},
"scripts": {
"build": "yarn g:build",
Expand Down
8 changes: 8 additions & 0 deletions packages/@roots/bud-prettier/eslint-config/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* Prettier default eslint config
*
* @public
*/
module.exports = {
extends: ['plugin:prettier/recommended'],
}
7 changes: 5 additions & 2 deletions packages/@roots/bud-prettier/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,16 @@
"node": ">=14"
},
"files": [
"eslint-config/",
"lib/",
"types/"
],
"main": "./lib/cjs/index.js",
"module": "./lib/esm/index.js",
"types": "./types/index.d.ts",
"exports": {
"require": "./lib/cjs/index.js",
"import": "./lib/esm/index.js"
".": "./lib/cjs/index.js",
"./eslint-config": "./eslint-config/index.js"
},
"scripts": {
"build": "yarn g:build",
Expand Down Expand Up @@ -74,6 +75,8 @@
},
"dependencies": {
"autobind-decorator": "2.4.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.0.0",
"prettier": "2.5.1",
"tslib": "2.3.1"
},
Expand Down
14 changes: 14 additions & 0 deletions packages/@roots/bud-react/eslint-config/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/**
* React default eslint config
*
* @public
*/
module.exports = {
extends: ['plugin:react/recommended'],
plugins: ['react-hooks', 'jsx-a11y'],
settings: {
react: {
version: 'detect',
},
},
}
8 changes: 6 additions & 2 deletions packages/@roots/bud-react/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,16 @@
"node": ">=14"
},
"files": [
"eslint-config/",
"lib/",
"types/"
],
"main": "./lib/cjs/index.js",
"module": "./lib/esm/index.js",
"types": "./types/index.d.ts",
"exports": {
"require": "./lib/cjs/index.js",
"import": "./lib/esm/index.js"
".": "./lib/cjs/index.js",
"./eslint-config": "./eslint-config/index.js"
},
"scripts": {
"build": "yarn g:build",
Expand Down Expand Up @@ -90,6 +91,9 @@
"@babel/preset-react": "^7.16.0",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.4",
"autobind-decorator": "2.4.0",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-react": "^7.27.1",
"eslint-plugin-react-hooks": "^4.3.0",
"react-hot-loader": "4.13.0",
"react-refresh": "0.11.0",
"tslib": "2.3.1"
Expand Down
43 changes: 6 additions & 37 deletions packages/@roots/sage/eslint-config/index.js
Original file line number Diff line number Diff line change
@@ -1,44 +1,13 @@
/**
* Sage default eslint config
*
* @public
*/

module.exports = {
extends: ['eslint:recommended', 'plugin:react/recommended'],
globals: {
wp: true,
},
env: {
node: true,
es6: true,
amd: true,
browser: true,
jquery: true,
},
parser: '@babel/eslint-parser',
parserOptions: {
ecmaFeatures: {
experimentalObjectRestSpread: true,
globalReturn: true,
generators: false,
impliedStrict: true,
jsx: true,
objectLiteralDuplicateProperties: false,
},
ecmaVersion: 2017,
requireConfigFile: false,
sourceType: 'module',
},
plugins: ['import', 'react-hooks'],
settings: {
react: {
version: 'detect',
},
'import/core-modules': [],
'import/ignore': [
'node_modules',
'\\.(coffee|scss|css|less|hbs|svg|json)$',
],
},
extends: [
require.resolve('@roots/bud-preset-wordpress/eslint-config'),
require.resolve('@roots/bud-prettier/eslint-config'),
],
rules: {
'no-console': 0,
'comma-dangle': [
Expand Down
Loading

0 comments on commit d41d755

Please sign in to comment.