{
    "env": {
        "commonjs": true,
        "es2021": true,
        "node": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:mocha/recommended",
        "plugin:jsdoc/recommended"
    ],
    "parserOptions": {
        "ecmaVersion": 12
    },
    "rules": {
        "indent": [
            "error",
            4,
            {
                "SwitchCase": 1,
                "MemberExpression": "off"
            }
        ],
        "brace-style": [
            "error",
            "stroustrup"
        ],
        "curly": [
            "error",
            "multi-or-nest",
            "consistent"
        ],
        "max-len": [
            "warn",
            {
                "code": 80,
                "tabWidth": 4,
                "comments": 120,
                "ignoreUrls": true,
                "ignoreStrings": true,
                "ignoreRegExpLiterals": true
            }
        ],
        "quotes": [
            "warn",
            "single",
            {
                "avoidEscape": true,
                "allowTemplateLiterals": true
            }
        ],
        "jsdoc/no-undefined-types": [
            "warn",
            {
                "definedTypes": [ "DataObject", "Iterable" ]
            }
        ],
        "no-trailing-spaces": "error",
        "no-control-regex": "off",
        "no-unused-vars": "error",
        "no-console": "error",
        "camelcase": "error",
        "semi": "error"
    },
    "plugins": [
        "mocha",
        "jsdoc"
    ]
}