forked from mirrors/0ad
252df0a1db
To make it easy for the engine to access the exported values the namespace is returned from the future.
144 lines
3.3 KiB
JavaScript
144 lines
3.3 KiB
JavaScript
// Hack to get eslint run via pre-commit to find the braces plugin in the pre-commit cache,
|
|
// should be 'import braceRules from "eslint-plugin-brace-rules";'
|
|
import { createRequire } from 'node:module';
|
|
const require = createRequire(import.meta.url);
|
|
const braceRules = require("eslint-plugin-brace-rules");
|
|
|
|
|
|
const configIgnores = {
|
|
"ignores": [
|
|
"binaries/data/mods/mod/globalscripts/sprintf.js",
|
|
"libraries/",
|
|
"source/tools/profiler2/jquery*",
|
|
"source/tools/replayprofile/jquery*",
|
|
"source/tools/templatesanalyzer/tablefilter/",
|
|
|
|
// This files deliberately contain errors
|
|
"binaries/data/mods/_test.scriptinterface/module/import_inside_function.js",
|
|
"binaries/data/mods/_test.scriptinterface/module/export_default/invalid.js",
|
|
],
|
|
};
|
|
|
|
|
|
const configEslintBase = {
|
|
"rules": {
|
|
"no-caller": 1,
|
|
"no-cond-assign": 1,
|
|
|
|
"no-constant-condition": ["error", {
|
|
"checkLoops": false,
|
|
}],
|
|
|
|
"no-dupe-args": 1,
|
|
"no-dupe-keys": 1,
|
|
"no-duplicate-case": 1,
|
|
"no-empty": 1,
|
|
"no-extra-boolean-cast": 0,
|
|
"no-extra-parens": 0,
|
|
"no-extra-semi": 1,
|
|
"no-floating-decimal": 1,
|
|
"no-func-assign": 1,
|
|
"no-negated-in-lhs": 1,
|
|
"no-obj-calls": 1,
|
|
"no-unreachable": 1,
|
|
"no-use-before-define": ["error", "nofunc"],
|
|
"use-isnan": 1,
|
|
"valid-jsdoc": 0,
|
|
"valid-typeof": 1,
|
|
"block-scoped-var": 0,
|
|
"consistent-return": 1,
|
|
"default-case": 1,
|
|
"dot-notation": 1,
|
|
"no-else-return": 1,
|
|
"no-invalid-this": 1,
|
|
"no-loop-func": 0,
|
|
|
|
"no-multi-spaces": ["warn", {
|
|
"ignoreEOLComments": true,
|
|
}],
|
|
|
|
"no-new": 1,
|
|
"no-redeclare": 0,
|
|
"no-return-assign": 1,
|
|
"no-self-assign": 1,
|
|
"no-self-compare": 1,
|
|
"no-unmodified-loop-condition": 1,
|
|
"no-unused-expressions": 1,
|
|
"no-unused-labels": 1,
|
|
"no-useless-concat": 0,
|
|
"yoda": 1,
|
|
"no-delete-var": 1,
|
|
"no-label-var": 1,
|
|
"no-shadow-restricted-names": 1,
|
|
"no-shadow": 1,
|
|
"no-undef": 0,
|
|
"no-undef-init": 1,
|
|
"no-unused-vars": 0,
|
|
"comma-spacing": 1,
|
|
|
|
"indent": ["warn", "tab", {
|
|
"outerIIFEBody": 0,
|
|
}],
|
|
|
|
"key-spacing": 1,
|
|
"new-cap": 0,
|
|
"new-parens": 1,
|
|
"no-mixed-spaces-and-tabs": ["warn", "smart-tabs"],
|
|
"no-multi-assign": 1,
|
|
"no-trailing-spaces": 1,
|
|
"no-unneeded-ternary": 1,
|
|
"no-irregular-whitespace": 1,
|
|
"object-curly-spacing": ["warn", "always"],
|
|
"operator-assignment": 1,
|
|
"operator-linebreak": ["warn", "after"],
|
|
"quote-props": 1,
|
|
"semi": 1,
|
|
"semi-spacing": 1,
|
|
"space-before-function-paren": ["warn", "never"],
|
|
"space-in-parens": 1,
|
|
"space-unary-ops": 1,
|
|
"spaced-comment": ["warn", "always"],
|
|
"no-class-assign": 1,
|
|
"no-const-assign": 1,
|
|
"no-dupe-class-members": 1,
|
|
"prefer-const": 1,
|
|
}
|
|
};
|
|
|
|
|
|
const configBracesRules = {
|
|
"plugins": {
|
|
"brace-rules": braceRules
|
|
},
|
|
|
|
"rules": {
|
|
"brace-rules/brace-on-same-line": [
|
|
"warn",
|
|
{
|
|
"FunctionDeclaration": "never",
|
|
"FunctionExpression": "ignore",
|
|
"ArrowFunctionExpression": "always",
|
|
"IfStatement": "never",
|
|
"TryStatement": "ignore",
|
|
"CatchClause": "ignore",
|
|
"DoWhileStatement": "never",
|
|
"WhileStatement": "never",
|
|
"ForStatement": "never",
|
|
"ForInStatement": "never",
|
|
"ForOfStatement": "never",
|
|
"SwitchStatement": "never",
|
|
},
|
|
{
|
|
"allowSingleLine": true,
|
|
}
|
|
],
|
|
}
|
|
};
|
|
|
|
|
|
const configs = [configIgnores, configEslintBase];
|
|
configs[1].plugins = { ...configBracesRules.plugins };
|
|
Object.assign(configs[1].rules, configBracesRules.rules);
|
|
|
|
export default configs;
|