uptime-kuma/.eslintrc.js

186 lines
5.4 KiB
JavaScript
Raw Normal View History

2021-07-27 17:33:44 +00:00
module.exports = {
2022-04-13 16:30:32 +00:00
ignorePatterns: [
"test/*.js",
"test/cypress",
2022-04-13 16:30:32 +00:00
"server/modules/apicache/*",
"src/util.js"
],
root: true,
2021-07-27 17:33:44 +00:00
env: {
browser: true,
commonjs: true,
2021-07-29 11:23:10 +00:00
es2020: true,
2021-07-27 17:33:44 +00:00
node: true,
},
extends: [
"eslint:recommended",
"plugin:vue/vue3-recommended",
"plugin:jsdoc/recommended-error",
2021-07-27 17:33:44 +00:00
],
parser: "vue-eslint-parser",
2021-07-27 17:33:44 +00:00
parserOptions: {
parser: "@typescript-eslint/parser",
2021-07-27 17:33:44 +00:00
sourceType: "module",
requireConfigFile: false,
2021-07-27 17:33:44 +00:00
},
plugins: [
"jsdoc",
"@typescript-eslint",
],
2021-07-27 17:33:44 +00:00
rules: {
2022-04-17 07:43:03 +00:00
"yoda": "error",
eqeqeq: [ "warn", "smart" ],
2022-04-17 07:27:35 +00:00
"linebreak-style": [ "error", "unix" ],
"camelcase": [ "warn", {
2021-09-07 14:42:46 +00:00
"properties": "never",
"ignoreImports": true
}],
2022-04-17 07:27:35 +00:00
"no-unused-vars": [ "warn", {
"args": "none"
}],
2021-07-29 11:33:45 +00:00
indent: [
"error",
4,
{
2022-04-17 07:27:35 +00:00
ignoredNodes: [ "TemplateLiteral" ],
2021-07-29 11:33:45 +00:00
SwitchCase: 1,
},
],
2022-04-21 16:06:46 +00:00
quotes: [ "error", "double" ],
2022-04-13 16:30:32 +00:00
semi: "error",
2022-04-21 16:06:46 +00:00
"vue/html-indent": [ "error", 4 ], // default: 2
2021-07-27 17:33:44 +00:00
"vue/max-attributes-per-line": "off",
"vue/singleline-html-element-content-newline": "off",
"vue/html-self-closing": "off",
"vue/require-component-is": "off", // not allow is="style" https://github.com/vuejs/eslint-plugin-vue/issues/462#issuecomment-430234675
2021-09-15 06:34:30 +00:00
"vue/attribute-hyphenation": "off", // This change noNL to "no-n-l" unexpectedly
2022-04-25 23:26:57 +00:00
"vue/multi-word-component-names": "off",
2022-04-17 07:27:35 +00:00
"no-multi-spaces": [ "error", {
2021-07-27 17:33:44 +00:00
ignoreEOLComments: true,
}],
2022-04-17 07:27:35 +00:00
"array-bracket-spacing": [ "warn", "always", {
"singleValue": true,
"objectsInArrays": false,
"arraysInArrays": false
}],
"space-before-function-paren": [ "error", {
2021-08-10 13:59:15 +00:00
"anonymous": "always",
"named": "never",
"asyncArrow": "always"
}],
2021-07-27 17:33:44 +00:00
"curly": "error",
2022-04-17 07:27:35 +00:00
"object-curly-spacing": [ "error", "always" ],
"object-curly-newline": "off",
2021-07-27 17:33:44 +00:00
"object-property-newline": "error",
"comma-spacing": "error",
"brace-style": "error",
"no-var": "error",
"key-spacing": "warn",
"keyword-spacing": "warn",
2023-09-09 18:05:52 +00:00
"space-infix-ops": "error",
2021-07-27 17:33:44 +00:00
"arrow-spacing": "warn",
2022-04-21 16:06:46 +00:00
"no-trailing-spaces": "error",
2022-04-17 07:27:35 +00:00
"no-constant-condition": [ "error", {
2021-07-30 07:13:51 +00:00
"checkLoops": false,
}],
2021-07-27 17:33:44 +00:00
"space-before-blocks": "warn",
//'no-console': 'warn',
"no-extra-boolean-cast": "off",
2022-04-17 07:27:35 +00:00
"no-multiple-empty-lines": [ "warn", {
2021-07-27 17:33:44 +00:00
"max": 1,
"maxBOF": 0,
}],
2022-04-17 07:27:35 +00:00
"lines-between-class-members": [ "warn", "always", {
2021-07-27 17:33:44 +00:00
exceptAfterSingleLine: true,
}],
"no-unneeded-ternary": "error",
2022-04-17 07:27:35 +00:00
"array-bracket-newline": [ "error", "consistent" ],
"eol-last": [ "error", "always" ],
2021-07-27 17:33:44 +00:00
//'prefer-template': 'error',
2022-04-17 07:27:35 +00:00
"comma-dangle": [ "warn", "only-multiline" ],
"no-empty": [ "error", {
2021-08-21 11:45:29 +00:00
"allowEmptyCatch": true
}],
"no-control-regex": "off",
2022-04-17 07:27:35 +00:00
"one-var": [ "error", "never" ],
"max-statements-per-line": [ "error", { "max": 1 }],
"jsdoc/check-tag-names": [
"error",
{
"definedTags": [ "link" ]
}
],
"jsdoc/no-undefined-types": "off",
"jsdoc/no-defaults": [
"error",
{ "noOptionalParamNames": true }
],
"jsdoc/require-throws": "warn",
"jsdoc/require-jsdoc": [
"error",
{
"require": {
"FunctionDeclaration": true,
"MethodDefinition": true,
}
}
],
"jsdoc/no-blank-block-descriptions": "error",
"jsdoc/require-returns-description": "warn",
"jsdoc/require-returns-check": [
"error",
{ "reportMissingReturnForUndefinedTypes": false }
],
"jsdoc/require-returns": [
"warn",
{
"forceRequireReturn": true,
"forceReturnsWithAsync": true
}
],
"jsdoc/require-param-type": "warn",
"jsdoc/require-param-description": "warn"
2021-07-27 17:33:44 +00:00
},
"overrides": [
{
2021-09-15 06:34:30 +00:00
"files": [ "src/languages/*.js", "src/icon.js" ],
"rules": {
2022-04-17 07:27:35 +00:00
"comma-dangle": [ "error", "always-multiline" ],
}
2021-10-03 10:16:55 +00:00
},
// Override for jest puppeteer
{
"files": [
"**/*.spec.js",
"**/*.spec.jsx"
],
env: {
jest: true,
},
globals: {
page: true,
browser: true,
context: true,
jestPuppeteer: true,
},
},
// Override for TypeScript
{
"files": [
"**/*.ts",
],
extends: [
"plugin:@typescript-eslint/recommended",
],
"rules": {
"jsdoc/require-returns-type": "off",
"jsdoc/require-param-type": "off",
"@typescript-eslint/no-explicit-any": "off",
"prefer-const": "off",
}
}
]
};