mirror of
https://github.com/tcgdex/compiler.git
synced 2025-04-22 02:32:10 +00:00
* Done ! Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net> * ACT doesn't wanna work so I push Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net> * Continued work on ESLint Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net> * Two files remaining Signed-off-by: Avior <github@avior.me> * Fixed set cards not found when using ids Signed-off-by: Avior <florian.bouillon@delta-wings.net>
323 lines
6.7 KiB
JavaScript
323 lines
6.7 KiB
JavaScript
/**
|
|
* ESLint custom configuration v1.0.0
|
|
* packages needed:
|
|
* eslint
|
|
* for Typescript
|
|
* @typescript-eslint/parser
|
|
* @typescript-eslint/eslint-plugin
|
|
*/
|
|
|
|
module.exports = {
|
|
env: {
|
|
browser: true,
|
|
es6: true,
|
|
node: true
|
|
},
|
|
extends: [
|
|
"eslint:all",
|
|
"plugin:@typescript-eslint/recommended",
|
|
],
|
|
globals: {
|
|
Atomics: "readonly",
|
|
SharedArrayBuffer: "readonly"
|
|
},
|
|
parser: "@typescript-eslint/parser",
|
|
parserOptions: {
|
|
project: "tsconfig.json"
|
|
},
|
|
plugins: [
|
|
"@typescript-eslint"
|
|
],
|
|
root: true,
|
|
rules: {
|
|
// Tab indent and force switch to have one too
|
|
indent: [
|
|
"error",
|
|
"tab",
|
|
{SwitchCase: 1}
|
|
],
|
|
|
|
// \n linebreak
|
|
"linebreak-style": [
|
|
"error",
|
|
"unix"
|
|
],
|
|
|
|
// Disable eslint default quote because Typescript replace it
|
|
quotes: "off",
|
|
"@typescript-eslint/quotes": [
|
|
"error",
|
|
"single",
|
|
{ avoidEscape: true }
|
|
],
|
|
|
|
// Simply diallow using ';' unless mandatory
|
|
semi: "off",
|
|
"@typescript-eslint/semi": [
|
|
"error",
|
|
"never",
|
|
{ "beforeStatementContinuationChars": "always"}
|
|
],
|
|
|
|
// Disallow things that do nothing in the end
|
|
"no-unused-expressions": "off",
|
|
"@typescript-eslint/no-unused-expressions": [
|
|
"error",
|
|
{ "enforceForJSX": true,}
|
|
],
|
|
|
|
// force overloads to be next to one another
|
|
"@typescript-eslint/adjacent-overload-signatures": "error",
|
|
|
|
// Force to use `Array<thing>
|
|
"@typescript-eslint/array-type": [
|
|
"error",
|
|
{ default: 'generic' }
|
|
],
|
|
|
|
// Warn when no return type is specified
|
|
"@typescript-eslint/explicit-module-boundary-types": "warn",
|
|
|
|
// disallow certain types not safe
|
|
"@typescript-eslint/ban-types": [
|
|
"error",
|
|
{
|
|
"types": {
|
|
"{}": false
|
|
}
|
|
}
|
|
],
|
|
"@typescript-eslint/consistent-type-assertions": "error",
|
|
"@typescript-eslint/consistent-type-definitions": "error",
|
|
"@typescript-eslint/explicit-member-accessibility": [
|
|
"error",
|
|
{
|
|
accessibility: "explicit"
|
|
}
|
|
],
|
|
"@typescript-eslint/interface-name-prefix": "off",
|
|
"@typescript-eslint/member-delimiter-style": [
|
|
"error",
|
|
{
|
|
multiline: {
|
|
delimiter: "none",
|
|
requireLast: true
|
|
},
|
|
singleline: {
|
|
delimiter: "comma",
|
|
requireLast: false
|
|
}
|
|
}
|
|
],
|
|
"@typescript-eslint/member-ordering": "error",
|
|
"@typescript-eslint/no-empty-function": "error",
|
|
"@typescript-eslint/no-empty-interface": "error",
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
"@typescript-eslint/no-misused-new": "error",
|
|
"@typescript-eslint/no-namespace": "error",
|
|
"@typescript-eslint/no-parameter-properties": "off",
|
|
"@typescript-eslint/no-use-before-define": "off",
|
|
"@typescript-eslint/prefer-for-of": "error",
|
|
"@typescript-eslint/prefer-function-type": "error",
|
|
"@typescript-eslint/prefer-namespace-keyword": "error",
|
|
|
|
"@typescript-eslint/triple-slash-reference": "error",
|
|
"@typescript-eslint/type-annotation-spacing": "error",
|
|
"@typescript-eslint/unified-signatures": "error",
|
|
"arrow-body-style": "error",
|
|
"arrow-parens": [
|
|
"error",
|
|
"always"
|
|
],
|
|
|
|
camelcase: "error",
|
|
complexity: "off",
|
|
"constructor-super": "error",
|
|
curly: "error",
|
|
"dot-notation": "error",
|
|
"eol-last": "error",
|
|
eqeqeq: [
|
|
"error",
|
|
"smart"
|
|
],
|
|
"guard-for-in": "warn",
|
|
"id-blacklist": [
|
|
"error",
|
|
"any",
|
|
"Number",
|
|
"number",
|
|
"String",
|
|
"string",
|
|
"Boolean",
|
|
"boolean",
|
|
"Undefined"
|
|
],
|
|
"id-match": "error",
|
|
"max-classes-per-file": [
|
|
"error",
|
|
1
|
|
],
|
|
"max-len": [
|
|
"warn",
|
|
{
|
|
code: 200
|
|
}
|
|
],
|
|
"@typescript-eslint/no-inferrable-types": "off",
|
|
"new-parens": "error",
|
|
"no-bitwise": "error",
|
|
"no-caller": "error",
|
|
"no-cond-assign": "error",
|
|
"no-debugger": "error",
|
|
"no-empty": "error",
|
|
"no-eval": "error",
|
|
"no-fallthrough": "off",
|
|
"no-invalid-this": "off",
|
|
"no-multiple-empty-lines": "error",
|
|
"no-new-wrappers": "error",
|
|
"no-shadow": [
|
|
"error",
|
|
{
|
|
hoist: "all"
|
|
}
|
|
],
|
|
"no-throw-literal": "error",
|
|
"no-trailing-spaces": "error",
|
|
"no-undef-init": "error",
|
|
"no-underscore-dangle": "error",
|
|
"no-unsafe-finally": "error",
|
|
"no-unused-labels": "error",
|
|
"no-unused-vars": "off",
|
|
"no-var": "error",
|
|
"object-shorthand": "error",
|
|
"one-var": [
|
|
"error",
|
|
"never"
|
|
],
|
|
"prefer-const": "error",
|
|
"quote-props": [
|
|
"error",
|
|
"consistent-as-needed"
|
|
],
|
|
"radix": "error",
|
|
|
|
"space-before-function-paren": "off",
|
|
"@typescript-eslint/space-before-function-paren": ["error", {
|
|
asyncArrow: "always",
|
|
anonymous: "never",
|
|
named: "never"
|
|
}],
|
|
"spaced-comment": "error",
|
|
"use-isnan": "error",
|
|
"valid-typeof": "off",
|
|
|
|
// some tests from eslint:all
|
|
"no-tabs": "off",
|
|
"padded-blocks": [
|
|
"error",
|
|
{
|
|
"blocks": "never",
|
|
"classes": "always",
|
|
"switches": "never"
|
|
}
|
|
],
|
|
"sort-imports": "off",
|
|
"no-console": "off",
|
|
"function-call-argument-newline": [
|
|
"error",
|
|
"consistent"
|
|
],
|
|
"dot-location": [
|
|
"error",
|
|
"property"
|
|
],
|
|
"object-curly-spacing": [
|
|
"error",
|
|
"always"
|
|
],
|
|
"array-element-newline": [
|
|
"error",
|
|
"consistent"
|
|
],
|
|
"function-paren-newline": [
|
|
"error",
|
|
"consistent"
|
|
],
|
|
"no-use-before-define": "off",
|
|
"@typescript-eslint/no-use-before-define": "error",
|
|
"capitalized-comments": "off",
|
|
"multiline-comment-style": "off",
|
|
"no-extra-parens": "off",
|
|
"@typescript-eslint/no-extra-parens": [
|
|
"error",
|
|
"all",
|
|
{ "ignoreJSX": "multi-line" }
|
|
],
|
|
"func-style": [
|
|
"error",
|
|
"declaration",
|
|
{ "allowArrowFunctions": true }
|
|
],
|
|
"no-ternary": "off",
|
|
"multiline-ternary": "off",
|
|
"no-magic-numbers": "off",
|
|
"max-lines-per-function": [
|
|
"warn",
|
|
{
|
|
"skipBlankLines": true,
|
|
"skipComments": true
|
|
}
|
|
],
|
|
"prefer-promise-reject-errors": "warn",
|
|
"object-property-newline": [
|
|
"error",
|
|
{ "allowAllPropertiesOnSameLine": true }
|
|
],
|
|
"no-await-in-loop": "warn",
|
|
"no-undefined": "off",
|
|
"id-length": "warn",
|
|
"class-methods-use-this": "off",
|
|
"array-bracket-newline": [
|
|
"error",
|
|
"consistent"
|
|
],
|
|
"no-confusing-arrow": "off",
|
|
"no-nested-ternary": "off",
|
|
"no-mixed-operators": "off",
|
|
"max-statements": [
|
|
"warn",
|
|
15
|
|
],
|
|
"semi-style": [
|
|
"error",
|
|
"first"
|
|
],
|
|
"no-useless-constructor": "off",
|
|
"@typescript-eslint/no-useless-constructor": "error",
|
|
"lines-between-class-members": "off",
|
|
"@typescript-eslint/lines-between-class-members": "error",
|
|
"max-lines": [
|
|
"warn",
|
|
{
|
|
"max": 500,
|
|
"skipBlankLines": true,
|
|
"skipComments": true
|
|
}
|
|
],
|
|
"no-plusplus": "off",
|
|
"id-length": [
|
|
"warn",
|
|
{ "exceptions": ["_"] }
|
|
],
|
|
"default-param-last": "off",
|
|
// "@typescript-eslint/default-param-last": "error",
|
|
// Temporary OFF
|
|
"@typescript-eslint/default-param-last": "off",
|
|
"no-continue": "off",
|
|
"require-atomic-updates": "off",
|
|
"require-await": "off",
|
|
"prefer-destructuring": "off",
|
|
"max-params": ["warn", 5]
|
|
}
|
|
};
|