summaryrefslogtreecommitdiffstats
path: root/eslint.config.mjs
blob: 2f256afcbe3d7e8df81fcc5700bcddfd18943f17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import globals from "globals";
import js from "@eslint/js";
import stylistic from "@stylistic/eslint-plugin";

export default [
    js.configs.all,
    stylistic.configs["all-flat"],
    {ignores: ["interface/js/lib/"]},
    {
        languageOptions: {
            ecmaVersion: 2016,
            globals: {
                ...globals.browser,
                define: false,
            },
            sourceType: "script",
        },
        plugins: {
            "@stylistic": stylistic,
        },
        rules: {
            "@stylistic/array-bracket-newline": ["error", "consistent"],
            "@stylistic/array-element-newline": "off",
            "@stylistic/brace-style": ["error", "1tbs", {allowSingleLine: true}],
            "@stylistic/comma-dangle": ["error", "only-multiline"],
            "@stylistic/dot-location": ["error", "property"],
            "@stylistic/function-call-argument-newline": "off",
            "@stylistic/function-paren-newline": "off",
            "@stylistic/indent-binary-ops": "off",
            "@stylistic/max-len": ["error", {code: 128}],
            "@stylistic/max-statements-per-line": ["error", {max: 2}],
            "@stylistic/multiline-comment-style": "off",
            "@stylistic/multiline-ternary": ["error", "always-multiline"],
            "@stylistic/newline-per-chained-call": ["error", {ignoreChainWithDepth: 5}],
            "@stylistic/no-extra-parens": ["error", "functions"],
            "@stylistic/object-property-newline": ["error", {allowAllPropertiesOnSameLine: true}],
            "@stylistic/padded-blocks": ["error", "never"],
            "@stylistic/quote-props": ["error", "consistent-as-needed"],
            "@stylistic/quotes": ["error", "double", {avoidEscape: true}],
            "@stylistic/semi": ["error", "always"],
            "@stylistic/space-before-function-paren": ["error", {
                anonymous: "always",
                named: "never",
            }],

            "camelcase": "off",
            "capitalized-comments": "off",
            "curly": ["error", "multi-line"],
            "func-names": "off",
            "func-style": ["error", "declaration"],
            "id-length": ["error", {min: 1}],
            "line-comment-position": "off",
            "logical-assignment-operators": ["error", "never"],
            "max-lines": "off",
            "max-lines-per-function": "off",
            "max-params": ["warn", 6],
            "max-statements": ["warn", 55],
            "multiline-comment-style": "off",
            "no-continue": "off",
            "no-inline-comments": "off",
            "no-invalid-this": "off",
            "no-magic-numbers": "off",
            "no-negated-condition": "off",
            "no-plusplus": "off",
            "no-ternary": "off",
            "no-unused-vars": ["error", {caughtErrors: "none"}],
            "object-shorthand": "off",
            "one-var": ["error", {initialized: "never"}],
            "prefer-named-capture-group": "off",
            "prefer-object-has-own": "off",
            "prefer-spread": "off",
            "prefer-template": "off",
            "require-unicode-regexp": "off",
            "sort-keys": "off",
        },
    },
    {
        files: ["**/*.mjs"],
        languageOptions: {ecmaVersion: 2020, sourceType: "module"},
        rules: {
            "sort-keys": "error",
        },
    },
];