diff options
Diffstat (limited to 'eslint.config.mjs')
-rw-r--r-- | eslint.config.mjs | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..2f256afcb --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,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", + }, + }, +]; |