/*
 * ********************************************************************************************************************
 *
 *               iFHS7.
 *              ;BBMBMBMc                  rZMBMBR              BMB
 *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
 *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
 *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
 *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
 *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
 *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
 *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
 *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
 *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
 *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
 *         i0BM: SWKHKGO  MBDv
 *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2020.  斯伯坦机器人
 *              ,  XMW  ..
 *                  r                                                                     All rights reserved.
 *
 * ********************************************************************************************************************
 */

module.exports = {
    root: true,
    parser: "@typescript-eslint/parser",
    extends: [
        "plugin:@typescript-eslint/recommended",
        "prettier/@typescript-eslint",
        "plugin:prettier/recommended", // 此行必须在最后
    ],
    env: {
        es6: true,
        node: true,
    },
    parserOptions: {
        // 支持最新 JavaScript
        ecmaVersion: 2018,
        sourceType: "module",
    },
    rules: {
        // 文件
        "max-classes-per-file": ["error", 1], // 一个文件中只能定义一个类
        "max-lines-per-function": ["error", 200], // 一个函数最多200行代码
        "max-statements-per-line": ["error", { max: 1 }], // 一行只允许有一条语句
        // 缩进
        indent: ["error", 4], // 缩进控制4空格
        "max-len": ["error", 120], // 每行字符不超过120
        "no-mixed-spaces-and-tabs": "error", // 禁止使用空格和tab混合缩进
        // 类型检查
        "@typescript-eslint/no-explicit-any": ["off"], // 取消 any 类型检查
        "@typescript-eslint/no-unused-vars": ["off"],
        // 语句
        curly: ["error", "multi-line"], // if、else if、else、for、while强制使用大括号，但允许在单行中省略大括号。
        semi: ["error", "always"], // 不得省略语句结束的分号
        "@typescript-eslint/explicit-member-accessibility": [
            "error",
            { accessibility: "no-public" },
        ], // public访问不需加访问修饰符
    },
};
