Add ESLint to CI (#20592)

This commit is contained in:
Maksim Spirkov
2025-10-14 12:40:35 +03:00
committed by GitHub
parent af9c4b9294
commit d689d6102c
14 changed files with 93 additions and 235 deletions

View File

@ -1 +0,0 @@
**/*{.,-}min.js

213
.eslintrc
View File

@ -1,213 +0,0 @@
ecmaFeatures:
modules: true
jsx: true
env:
amd: true
browser: true
es6: true
jquery: true
node: true
# https://eslint.org/docs/latest/rules/
rules:
# Possible Errors
comma-dangle: [2, never]
no-cond-assign: 2
no-console: 0
no-constant-condition: 2
no-control-regex: 2
no-debugger: 2
no-dupe-args: 2
no-dupe-keys: 2
no-duplicate-case: 2
no-empty: 2
no-empty-character-class: 2
no-ex-assign: 2
no-extra-boolean-cast: 2
no-extra-parens: 0
no-extra-semi: 2
no-func-assign: 2
no-inner-declarations: [2, functions]
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-negated-in-lhs: 2
no-obj-calls: 2
no-regex-spaces: 2
no-sparse-arrays: 2
no-unexpected-multiline: 2
no-unreachable: 2
use-isnan: 2
valid-jsdoc: 0
valid-typeof: 2
# Best Practices
accessor-pairs: 2
block-scoped-var: 0
complexity: [2, 6]
consistent-return: 0
curly: 0
default-case: 0
dot-location: 0
dot-notation: 0
eqeqeq: 2
guard-for-in: 2
no-alert: 2
no-caller: 2
no-case-declarations: 2
no-div-regex: 2
no-else-return: 0
no-empty-label: 2
no-empty-pattern: 2
no-eq-null: 2
no-eval: 2
no-extend-native: 2
no-extra-bind: 2
no-fallthrough: 2
no-floating-decimal: 0
no-implicit-coercion: 0
no-implied-eval: 2
no-invalid-this: 0
no-iterator: 2
no-labels: 0
no-lone-blocks: 2
no-loop-func: 2
no-magic-number: 0
no-multi-spaces: 0
no-multi-str: 0
no-native-reassign: 2
no-new-func: 2
no-new-wrappers: 2
no-new: 2
no-octal-escape: 2
no-octal: 2
no-proto: 2
no-redeclare: 2
no-return-assign: 2
no-script-url: 2
no-self-compare: 2
no-sequences: 0
no-throw-literal: 0
no-unused-expressions: 2
no-useless-call: 2
no-useless-concat: 2
no-void: 2
no-warning-comments: 0
no-with: 2
radix: 2
vars-on-top: 0
wrap-iife: 2
yoda: 0
# Strict
strict: 0
# Variables
init-declarations: 0
no-catch-shadow: 2
no-delete-var: 2
no-label-var: 2
no-shadow-restricted-names: 2
no-shadow: 0
no-undef-init: 2
no-undef: 0
no-undefined: 0
no-unused-vars: 0
no-use-before-define: 0
# Node.js and CommonJS
callback-return: 2
global-require: 2
handle-callback-err: 2
no-mixed-requires: 0
no-new-require: 0
no-path-concat: 2
no-process-exit: 2
no-restricted-modules: 0
no-sync: 0
# Stylistic Issues
array-bracket-spacing: 0
block-spacing: 0
brace-style: 0
camelcase: 0
comma-spacing: 0
comma-style: 0
computed-property-spacing: 0
consistent-this: 0
eol-last: 0
func-names: 0
func-style: 0
id-length: 0
id-match: 0
indent: 0
jsx-quotes: 0
key-spacing: 0
linebreak-style: 0
lines-around-comment: 0
max-depth: 0
max-len: 0
max-nested-callbacks: 0
max-params: 0
max-statements: [2, 30]
new-cap: 0
new-parens: 0
newline-after-var: 0
no-array-constructor: 0
no-bitwise: 0
no-continue: 0
no-inline-comments: 0
no-lonely-if: 0
no-mixed-spaces-and-tabs: 0
no-multiple-empty-lines: 0
no-negated-condition: 0
no-nested-ternary: 0
no-new-object: 0
no-plusplus: 0
no-restricted-syntax: 0
no-spaced-func: 0
no-ternary: 0
no-trailing-spaces: 0
no-underscore-dangle: 0
no-unneeded-ternary: 0
object-curly-spacing: 0
one-var: 0
operator-assignment: 0
operator-linebreak: 0
padded-blocks: 0
quote-props: 0
quotes: 0
require-jsdoc: 0
semi-spacing: 0
semi: 0
sort-vars: 0
space-after-keywords: 0
space-before-blocks: 0
space-before-function-paren: 0
space-before-keywords: 0
space-in-parens: 0
space-infix-ops: 0
space-return-throw-case: 0
space-unary-ops: 0
spaced-comment: 0
wrap-regex: 0
# ECMAScript 6
arrow-body-style: 0
arrow-parens: 0
arrow-spacing: 0
constructor-super: 0
generator-star-spacing: 0
no-arrow-condition: 0
no-class-assign: 0
no-const-assign: 0
no-dupe-class-members: 0
no-this-before-super: 0
no-var: 0
object-shorthand: 0
prefer-arrow-callback: 0
prefer-const: 0
prefer-reflect: 0
prefer-spread: 0
prefer-template: 0
require-yield: 0

View File

@ -11,8 +11,6 @@ on:
- ".appveyor.yml"
- ".dockerignore"
- ".editorconfig"
- ".eslintignore"
- ".eslintrc"
- ".git-blame-ignore-revs"
- ".gitattributes"
- ".github/CONTRIBUTING.md"
@ -30,6 +28,7 @@ on:
- "framework/LICENSE.md"
- "framework/README.md"
- "framework/UPGRADE.md"
- "eslint.config.js"
- "LICENSE.md"
- "README.md"
- "ROADMAP.md"

View File

@ -11,8 +11,6 @@ on:
- ".appveyor.yml"
- ".dockerignore"
- ".editorconfig"
- ".eslintignore"
- ".eslintrc"
- ".git-blame-ignore-revs"
- ".gitattributes"
- ".github/CONTRIBUTING.md"
@ -30,6 +28,7 @@ on:
- "framework/LICENSE.md"
- "framework/README.md"
- "framework/UPGRADE.md"
- "eslint.config.js"
- "LICENSE.md"
- "README.md"
- "ROADMAP.md"

View File

@ -11,8 +11,6 @@ on:
- ".appveyor.yml"
- ".dockerignore"
- ".editorconfig"
- ".eslintignore"
- ".eslintrc"
- ".git-blame-ignore-revs"
- ".gitattributes"
- ".github/CONTRIBUTING.md"
@ -30,6 +28,7 @@ on:
- "framework/LICENSE.md"
- "framework/README.md"
- "framework/UPGRADE.md"
- "eslint.config.js"
- "LICENSE.md"
- "README.md"
- "ROADMAP.md"

View File

@ -11,8 +11,6 @@ on:
- ".appveyor.yml"
- ".dockerignore"
- ".editorconfig"
- ".eslintignore"
- ".eslintrc"
- ".git-blame-ignore-revs"
- ".gitattributes"
- ".github/CONTRIBUTING.md"
@ -30,6 +28,7 @@ on:
- "framework/LICENSE.md"
- "framework/README.md"
- "framework/UPGRADE.md"
- "eslint.config.js"
- "LICENSE.md"
- "README.md"
- "ROADMAP.md"

View File

@ -6,8 +6,6 @@ on:
- ".appveyor.yml"
- ".dockerignore"
- ".editorconfig"
- ".eslintignore"
- ".eslintrc"
- ".git-blame-ignore-revs"
- ".gitattributes"
- ".github/CONTRIBUTING.md"
@ -66,4 +64,5 @@ jobs:
- name: Tests.
run: |
npm install
npm run lint
npm test

View File

@ -11,8 +11,6 @@ on:
- ".appveyor.yml"
- ".dockerignore"
- ".editorconfig"
- ".eslintignore"
- ".eslintrc"
- ".git-blame-ignore-revs"
- ".gitattributes"
- ".github/CONTRIBUTING.md"
@ -30,6 +28,7 @@ on:
- "framework/LICENSE.md"
- "framework/README.md"
- "framework/UPGRADE.md"
- "eslint.config.js"
- "LICENSE.md"
- "README.md"
- "ROADMAP.md"

View File

@ -11,8 +11,6 @@ on:
- ".appveyor.yml"
- ".dockerignore"
- ".editorconfig"
- ".eslintignore"
- ".eslintrc"
- ".git-blame-ignore-revs"
- ".gitattributes"
- ".github/CONTRIBUTING.md"
@ -30,6 +28,7 @@ on:
- "framework/LICENSE.md"
- "framework/README.md"
- "framework/UPGRADE.md"
- "eslint.config.js"
- "LICENSE.md"
- "README.md"
- "ROADMAP.md"

View File

@ -11,8 +11,6 @@ on:
- ".appveyor.yml"
- ".dockerignore"
- ".editorconfig"
- ".eslintignore"
- ".eslintrc"
- ".git-blame-ignore-revs"
- ".gitattributes"
- ".github/CONTRIBUTING.md"
@ -30,6 +28,7 @@ on:
- "framework/LICENSE.md"
- "framework/README.md"
- "framework/UPGRADE.md"
- "eslint.config.js"
- "LICENSE.md"
- "README.md"
- "ROADMAP.md"

View File

@ -11,8 +11,6 @@ on:
- ".appveyor.yml"
- ".dockerignore"
- ".editorconfig"
- ".eslintignore"
- ".eslintrc"
- ".git-blame-ignore-revs"
- ".gitattributes"
- ".github/CONTRIBUTING.md"
@ -30,6 +28,7 @@ on:
- "framework/LICENSE.md"
- "framework/README.md"
- "framework/UPGRADE.md"
- "eslint.config.js"
- "LICENSE.md"
- "README.md"
- "ROADMAP.md"

View File

@ -11,8 +11,6 @@ on:
- ".appveyor.yml"
- ".dockerignore"
- ".editorconfig"
- ".eslintignore"
- ".eslintrc"
- ".git-blame-ignore-revs"
- ".gitattributes"
- ".github/CONTRIBUTING.md"
@ -30,6 +28,7 @@ on:
- "framework/LICENSE.md"
- "framework/README.md"
- "framework/UPGRADE.md"
- "eslint.config.js"
- "LICENSE.md"
- "README.md"
- "ROADMAP.md"

80
eslint.config.js Normal file
View File

@ -0,0 +1,80 @@
module.exports = [
{
rules: {
"comma-dangle": ["error", "never"],
"no-cond-assign": "error",
"no-constant-condition": "error",
"no-control-regex": "error",
"no-debugger": "error",
"no-dupe-args": "error",
"no-dupe-keys": "error",
"no-duplicate-case": "error",
"no-empty": "error",
"no-empty-character-class": "error",
"no-ex-assign": "error",
"no-extra-boolean-cast": "error",
"no-extra-semi": "error",
"no-func-assign": "error",
"no-inner-declarations": ["error", "functions"],
"no-invalid-regexp": "error",
"no-irregular-whitespace": "error",
"no-negated-in-lhs": "error",
"no-obj-calls": "error",
"no-regex-spaces": "error",
"no-sparse-arrays": "error",
"no-unexpected-multiline": "error",
"no-unreachable": "error",
"use-isnan": "error",
"valid-typeof": "error",
"accessor-pairs": "error",
complexity: ["warn", 6],
eqeqeq: "warn",
"guard-for-in": "error",
"no-alert": "warn",
"no-caller": "error",
"no-case-declarations": "error",
"no-div-regex": "error",
"no-labels": "error",
"no-empty-pattern": "error",
"no-eq-null": "warn",
"no-eval": "error",
"no-extend-native": "error",
"no-extra-bind": "error",
"no-fallthrough": "error",
"no-implied-eval": "error",
"no-iterator": "error",
"no-lone-blocks": "error",
"no-loop-func": "warn",
"no-multi-str": "error",
"no-native-reassign": "error",
"no-new-func": "error",
"no-new-wrappers": "warn",
"no-new": "error",
"no-octal-escape": "error",
"no-octal": "error",
"no-proto": "error",
"no-redeclare": "error",
"no-return-assign": "error",
"no-script-url": "error",
"no-self-compare": "error",
"no-unused-expressions": "warn",
"no-useless-call": "error",
"no-useless-concat": "error",
"no-void": "error",
"no-with": "error",
radix: "error",
"wrap-iife": "warn",
"no-catch-shadow": "error",
"no-delete-var": "error",
"no-label-var": "error",
"no-shadow-restricted-names": "error",
"no-undef-init": "warn",
"callback-return": "error",
"global-require": "warn",
"handle-callback-err": "error",
"no-path-concat": "error",
"no-process-exit": "error",
"max-statements": ["warn", 30],
},
},
];

View File

@ -9,6 +9,7 @@
"dependencies": {},
"devDependencies": {
"chai": "^3.5.0",
"eslint": "^9.37.0",
"jsdom": "24.1.0",
"leche": "^2.3.0",
"mocha": "^6.2.3",
@ -16,7 +17,8 @@
"sinon": "^1.17.6"
},
"scripts": {
"test": "./node_modules/.bin/mocha tests/js/tests/*.test.js --timeout 0 --colors"
"test": "./node_modules/.bin/mocha tests/js/tests/*.test.js --timeout 0 --colors",
"lint": "eslint --max-warnings=79 ./framework/assets ./tests/js"
},
"repository": {
"type": "git",