/* * The Peacock Project - a HITMAN server replacement. * Copyright (C) 2021-2023 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", "prettier"], extends: [ "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended", ], parser: "@typescript-eslint/parser", parserOptions: { ecmaVersion: "es2022", sourceType: "module", project: [ // server full "./tsconfig.json", // web UI "./webui/tsconfig.json", ], }, rules: { "@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", 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", }, }