Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[INTERNAL] Refactor ESLint config #1000

Merged
merged 5 commits into from
Aug 6, 2024
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
99 changes: 99 additions & 0 deletions eslint.common.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
import jsdoc from "eslint-plugin-jsdoc";
import ava from "eslint-plugin-ava";
import globals from "globals";
import js from "@eslint/js";
import google from "eslint-config-google";

export default [{
ignores: [ // Common ignore patterns across all tooling repos
"**/coverage/",
"test/tmp/",
"test/expected/",
"test/fixtures/",
"**/docs/",
"**/jsdocs/",
],
}, js.configs.recommended, google, ava.configs["flat/recommended"], {
name: "Common ESLint config used for all tooling repos",

plugins: {
jsdoc,
},

languageOptions: {
globals: {
...globals.node,
},

ecmaVersion: 2023,
sourceType: "module",
},

settings: {
jsdoc: {
mode: "jsdoc",

tagNamePreference: {
return: "returns",
augments: "extends",
},
},
},

rules: {
"indent": ["error", "tab"],
"linebreak-style": ["error", "unix"],

"quotes": ["error", "double", {
allowTemplateLiterals: true,
}],

"semi": ["error", "always"],
"no-negated-condition": "off",
"require-jsdoc": "off",
"no-mixed-requires": "off",

"max-len": ["error", {
code: 120,
ignoreUrls: true,
ignoreRegExpLiterals: true,
}],

"no-implicit-coercion": [2, {
allow: ["!!"],
}],

"comma-dangle": "off",
"no-tabs": "off",
"no-console": 2, // Disallow console.log()
"no-eval": 2,
// The following rule must be disabled as of ESLint 9.
// It's removed and causes issues when present
// https://eslint.org/docs/latest/rules/valid-jsdoc
"valid-jsdoc": 0,
"jsdoc/check-examples": 0,
"jsdoc/check-param-names": 2,
"jsdoc/check-tag-names": 2,
"jsdoc/check-types": 2,
"jsdoc/no-undefined-types": 0,
"jsdoc/require-description": 0,
"jsdoc/require-description-complete-sentence": 0,
"jsdoc/require-example": 0,
"jsdoc/require-hyphen-before-param-description": 0,
"jsdoc/require-param": 2,
"jsdoc/require-param-description": 0,
"jsdoc/require-param-name": 2,
"jsdoc/require-param-type": 2,
"jsdoc/require-returns": 0,
"jsdoc/require-returns-description": 0,
"jsdoc/require-returns-type": 2,

"jsdoc/tag-lines": [2, "any", {
startLines: 1,
}],

"jsdoc/valid-types": 0,
"ava/assertion-arguments": 0,
},
}
];
17 changes: 17 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import eslintCommonConfig from "./eslint.common.config.js";

export default [
{
// Add project-specific ignore patterns for ESLint here
// to add to common config
ignores: ["**/site/"]
},
...eslintCommonConfig, // Load common ESLint config
{
// Add remaining project-specific ESLint config rules here
// in order to override common config
rules: {
"no-console": "off",
}
}
];
57 changes: 0 additions & 57 deletions eslint.config.mjs

This file was deleted.

Loading