2022-10-20 03:18:35 +02:00
|
|
|
/*
|
|
|
|
* The Peacock Project - a HITMAN server replacement.
|
2024-01-14 04:08:06 +01:00
|
|
|
* Copyright (C) 2021-2024 The Peacock Project Team
|
2022-10-20 03:18:35 +02:00
|
|
|
*
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Affero General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
env: {
|
|
|
|
node: true,
|
|
|
|
es2021: true,
|
|
|
|
},
|
2023-03-21 01:19:26 +01:00
|
|
|
plugins: [
|
|
|
|
"@typescript-eslint",
|
|
|
|
"promise",
|
|
|
|
"react-hooks",
|
2023-04-09 04:25:29 +02:00
|
|
|
"@peacockproject",
|
2022-10-20 03:18:35 +02:00
|
|
|
],
|
2023-04-09 04:25:29 +02:00
|
|
|
extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
|
2022-10-20 03:18:35 +02:00
|
|
|
parser: "@typescript-eslint/parser",
|
|
|
|
parserOptions: {
|
|
|
|
ecmaVersion: "es2022",
|
|
|
|
sourceType: "module",
|
|
|
|
project: [
|
|
|
|
// server full
|
|
|
|
"./tsconfig.json",
|
2023-04-16 14:39:48 +02:00
|
|
|
// plugins
|
|
|
|
"./plugins/tsconfig.json",
|
2022-10-20 03:18:35 +02:00
|
|
|
// web UI
|
|
|
|
"./webui/tsconfig.json",
|
2023-03-21 01:19:26 +01:00
|
|
|
// tests
|
|
|
|
"./tests/tsconfig.json",
|
2022-10-20 03:18:35 +02:00
|
|
|
],
|
|
|
|
},
|
|
|
|
rules: {
|
2024-02-02 20:44:21 +01:00
|
|
|
"@typescript-eslint/prefer-optional-chain": "warn",
|
2022-10-20 03:18:35 +02:00
|
|
|
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
|
|
"@typescript-eslint/no-extra-semi": "off",
|
|
|
|
"@typescript-eslint/no-non-null-assertion": "off",
|
|
|
|
"@typescript-eslint/require-await": "warn",
|
|
|
|
"@typescript-eslint/prefer-ts-expect-error": "error",
|
2024-02-02 20:44:21 +01:00
|
|
|
"no-nested-ternary": "warn",
|
2022-10-20 03:18:35 +02:00
|
|
|
eqeqeq: "error",
|
|
|
|
"no-duplicate-imports": "warn",
|
|
|
|
"promise/always-return": "error",
|
|
|
|
"promise/no-return-wrap": "error",
|
|
|
|
"promise/param-names": "error",
|
|
|
|
"promise/catch-or-return": "error",
|
|
|
|
"promise/no-native": "off",
|
|
|
|
"promise/no-nesting": "warn",
|
|
|
|
"promise/no-promise-in-callback": "warn",
|
|
|
|
"promise/no-callback-in-promise": "warn",
|
|
|
|
"promise/avoid-new": "off",
|
|
|
|
"promise/no-new-statics": "error",
|
|
|
|
"promise/no-return-in-finally": "warn",
|
|
|
|
"promise/valid-params": "warn",
|
|
|
|
"react-hooks/rules-of-hooks": "error",
|
|
|
|
"react-hooks/exhaustive-deps": "warn",
|
2023-04-09 04:25:29 +02:00
|
|
|
"@peacockproject/import-components": "error",
|
2023-04-29 05:39:57 +02:00
|
|
|
"padding-line-between-statements": [
|
|
|
|
"error",
|
|
|
|
{
|
|
|
|
blankLine: "always",
|
|
|
|
prev: "block-like",
|
|
|
|
next: "*",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
blankLine: "always",
|
|
|
|
prev: "*",
|
|
|
|
next: "block-like",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
blankLine: "never",
|
|
|
|
prev: "block-like",
|
|
|
|
next: "case",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
blankLine: "never",
|
|
|
|
prev: "case",
|
|
|
|
next: "block-like",
|
|
|
|
},
|
|
|
|
],
|
|
|
|
"spaced-comment": [
|
|
|
|
"error",
|
|
|
|
"always",
|
2023-04-29 05:49:06 +02:00
|
|
|
{ markers: ["*", "@__NOINLINE__"] },
|
2023-04-29 05:39:57 +02:00
|
|
|
],
|
2022-10-20 03:18:35 +02:00
|
|
|
},
|
2023-04-29 05:39:57 +02:00
|
|
|
reportUnusedDisableDirectives: true,
|
2022-10-20 03:18:35 +02:00
|
|
|
}
|