/* * The Peacock Project - a HITMAN server replacement. * Copyright (C) 2021-2024 The Peacock Project Team * * 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 . */ module.exports = { env: { node: true, es2021: true, }, plugins: [ "@typescript-eslint", "promise", "react-hooks", "@peacockproject", ], extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"], parser: "@typescript-eslint/parser", parserOptions: { ecmaVersion: "es2022", sourceType: "module", project: [ // server full "./tsconfig.json", // plugins "./plugins/tsconfig.json", // web UI "./webui/tsconfig.json", // tests "./tests/tsconfig.json", ], }, rules: { "@typescript-eslint/prefer-optional-chain": "warn", "@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", "no-nested-ternary": "warn", 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", "@peacockproject/import-components": "error", "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", { markers: ["*", "@__NOINLINE__"] }, ], }, reportUnusedDisableDirectives: true, }