Skip to content
Draft
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
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
"lint": "markdownlint --config linters/.markdownlint.json README.md */README.md",
"pretest": "npm run --silent lint",
"test": "npm run --silent test:config && npm run --silent test:config:base",
"test:config": "cd packages/eslint-config-airbnb; npm test",
"test:config:base": "cd packages/eslint-config-airbnb-base; npm test",
"test:config": "cd packages/eslint-config-airbnb && npm test",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this needed? cd should never fail regardless

"test:config:base": "cd packages/eslint-config-airbnb-base && npm test",
"pretravis": "npm run --silent lint",
"travis": "npm run --silent travis:config && npm run --silent travis:config:base",
"travis:config": "cd packages/eslint-config-airbnb; npm run travis",
"travis:config:base": "cd packages/eslint-config-airbnb-base; npm run travis"
"travis:config": "cd packages/eslint-config-airbnb && npm run travis",
"travis:config:base": "cd packages/eslint-config-airbnb-base && npm run travis"
},
"repository": {
"type": "git",
Expand Down
10 changes: 0 additions & 10 deletions packages/eslint-config-airbnb-base/.eslintrc

This file was deleted.

14 changes: 14 additions & 0 deletions packages/eslint-config-airbnb-base/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const globals = require('globals');
const airbnbBase = require('./index');

module.exports = [
{
...airbnbBase,
languageOptions: {
...airbnbBase.languageOptions,
globals: {
...globals.node,
},
},
},
];
44 changes: 30 additions & 14 deletions packages/eslint-config-airbnb-base/index.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,33 @@
const stylisticJs = require('@stylistic/eslint-plugin-js');
const importPlugin = require('eslint-plugin-import');
const bestPractices = require('./rules/best-practices');
const errors = require('./rules/errors');
const node = require('./rules/node');
const style = require('./rules/style');
const variables = require('./rules/variables');
const es6 = require('./rules/es6');
const imports = require('./rules/imports');
const strict = require('./rules/strict');

module.exports = {
extends: [
'./rules/best-practices',
'./rules/errors',
'./rules/node',
'./rules/style',
'./rules/variables',
'./rules/es6',
'./rules/imports',
'./rules/strict',
].map(require.resolve),
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module',
plugins: {
'@stylistic/js': stylisticJs,
import: importPlugin,
},
languageOptions: {
parserOptions: {
ecmaVersion: 2022,
sourceType: 'module',
},
},
rules: {
...bestPractices.rules,
...errors.rules,
...node.rules,
...style.rules,
...variables.rules,
...es6.rules,
...imports.rules,
...strict.rules,
},
rules: {},
};
6 changes: 3 additions & 3 deletions packages/eslint-config-airbnb-base/legacy.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ module.exports = {
'./rules/errors',
'./rules/node',
'./rules/style',
'./rules/variables'
'./rules/variables',
].map(require.resolve),
env: {
browser: true,
node: true,
amd: false,
mocha: false,
jasmine: false
jasmine: false,
},
rules: {
'comma-dangle': ['error', 'never'],
Expand All @@ -30,5 +30,5 @@ module.exports = {
'no-var': 'off',
'prefer-object-spread': 'off',
strict: ['error', 'safe'],
}
},
};
20 changes: 10 additions & 10 deletions packages/eslint-config-airbnb-base/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,11 @@
"./package.json": "./package.json"
},
"scripts": {
"prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')",
"lint": "eslint --report-unused-disable-directives .",
"prelint": "eclint check \"**/*.js\"",
"lint": "eslint .",
"pretests-only": "node ./test/requires",
"tests-only": "babel-tape-runner ./test/test-*.js",
"prepublishOnly": "eslint-find-rules --unused && npm test && safe-publish-latest",
"prepublish": "not-in-publish || npm run prepublishOnly",
"prepublish": "not-in-publish || npm test",
"pretest": "npm run --silent lint",
"test": "npm run --silent tests-only",
"pretravis": ":",
Expand Down Expand Up @@ -72,21 +71,22 @@
"babel-preset-airbnb": "^4.5.0",
"babel-tape-runner": "^3.0.0",
"eclint": "^2.8.1",
"eslint": "^7.32.0 || ^8.2.0",
"eslint-find-rules": "^4.1.0",
"eslint": "^9.8.0",
"eslint-plugin-import": "^2.30.0",
"in-publish": "^2.0.1",
"safe-publish-latest": "^2.0.0",
"tape": "^5.9.0"
"safe-publish-latest": "^2.0.0"
},
"peerDependencies": {
"eslint": "^7.32.0 || ^8.2.0",
"eslint": "^9.8.0",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a breaking change. please limit yourself to things that work with eslint 7+.

"eslint-plugin-import": "^2.30.0"
},
"engines": {
"node": "^10.12.0 || >=12.0.0"
},
"dependencies": {
"confusing-browser-globals": "^1.0.11"
"confusing-browser-globals": "^1.0.11",
"globals": "^15.8.0",
"@stylistic/eslint-plugin-js": "^2.4.0",
"tape": "^5.9.0"
}
}
8 changes: 4 additions & 4 deletions packages/eslint-config-airbnb-base/rules/best-practices.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ module.exports = {
'arrowFunctions',
'functions',
'methods',
]
],
}],

// disallow empty destructuring patterns
Expand Down Expand Up @@ -248,7 +248,7 @@ module.exports = {
'response', // for Express responses
'$scope', // for Angular 1 scopes
'staticContext', // for ReactRouter context
]
],
}],

// disallow usage of __proto__ property
Expand Down Expand Up @@ -419,6 +419,6 @@ module.exports = {

// require or disallow Yoda conditions
// https://eslint.org/docs/rules/yoda
yoda: 'error'
}
yoda: 'error',
},
};
2 changes: 1 addition & 1 deletion packages/eslint-config-airbnb-base/rules/errors.js
Original file line number Diff line number Diff line change
Expand Up @@ -185,5 +185,5 @@ module.exports = {
// ensure that the results of typeof are compared against a valid string
// https://eslint.org/docs/rules/valid-typeof
'valid-typeof': ['error', { requireStringLiterals: true }],
}
},
};
12 changes: 6 additions & 6 deletions packages/eslint-config-airbnb-base/rules/es6.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
module.exports = {
env: {
es6: true
es6: true,
},
parserOptions: {
ecmaVersion: 6,
sourceType: 'module',
ecmaFeatures: {
generators: false,
objectLiteralDuplicateProperties: false
}
objectLiteralDuplicateProperties: false,
},
},

rules: {
Expand Down Expand Up @@ -73,7 +73,7 @@ module.exports = {
// https://eslint.org/docs/rules/no-restricted-imports
'no-restricted-imports': ['off', {
paths: [],
patterns: []
patterns: [],
}],

// disallow to use this/super before super() calling in constructors.
Expand Down Expand Up @@ -180,6 +180,6 @@ module.exports = {

// enforce spacing around the * in yield* expressions
// https://eslint.org/docs/rules/yield-star-spacing
'yield-star-spacing': ['error', 'after']
}
'yield-star-spacing': ['error', 'after'],
},
};
17 changes: 9 additions & 8 deletions packages/eslint-config-airbnb-base/rules/imports.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
module.exports = {
env: {
es6: true
es6: true,
},
parserOptions: {
ecmaVersion: 6,
sourceType: 'module'
sourceType: 'module',
},
plugins: [
'import'
'import',
],

settings: {
'import/resolver': {
node: {
extensions: ['.mjs', '.js', '.json']
}
extensions: ['.mjs', '.js', '.json'],
},
},
'import/extensions': [
'.js',
Expand Down Expand Up @@ -91,7 +91,7 @@ module.exports = {
'**/protractor.conf.js', // protractor config
'**/protractor.conf.*.js', // protractor config
'**/karma.conf.js', // karma config
'**/.eslintrc.js' // eslint config
'**/.eslintrc.js', // eslint config
],
optionalDependencies: false,
}],
Expand Down Expand Up @@ -260,8 +260,9 @@ module.exports = {
unusedExports: true,
}],

// Reports the use of import declarations with CommonJS exports in any module except for the main module.
// https://github.com/import-js/eslint-plugin-import/blob/1012eb951767279ce3b540a4ec4f29236104bb5b/docs/rules/no-import-module-exports.md
// Reports the use of import declarations with CommonJS exports in any module
// except for the main module.
// https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-import-module-exports.md
'import/no-import-module-exports': ['error', {
exceptions: [],
}],
Expand Down
4 changes: 2 additions & 2 deletions packages/eslint-config-airbnb-base/rules/node.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module.exports = {
env: {
node: true
node: true,
},

rules: {
Expand Down Expand Up @@ -39,5 +39,5 @@ module.exports = {

// disallow use of synchronous methods (off by default)
'no-sync': 'off',
}
},
};
4 changes: 2 additions & 2 deletions packages/eslint-config-airbnb-base/rules/strict.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module.exports = {
rules: {
// babel inserts `'use strict';` for us
strict: ['error', 'never']
}
strict: ['error', 'never'],
},
};
Loading