225 lines
7.6 KiB
JavaScript
225 lines
7.6 KiB
JavaScript
|
var OFF = 0, WARN = 1, ERROR = 2;
|
||
|
|
||
|
module.exports = {
|
||
|
'env': {
|
||
|
'browser': true,
|
||
|
'es2021': true,
|
||
|
},
|
||
|
'extends': [
|
||
|
'eslint:recommended',
|
||
|
],
|
||
|
'parser': '@typescript-eslint/parser',
|
||
|
'parserOptions': {
|
||
|
'ecmaVersion': 'latest',
|
||
|
'sourceType': 'module',
|
||
|
},
|
||
|
'plugins': [
|
||
|
'@typescript-eslint',
|
||
|
],
|
||
|
"rules": {
|
||
|
// Possible Errors (overrides from recommended set)
|
||
|
"no-extra-parens": ERROR,
|
||
|
"no-unexpected-multiline": ERROR,
|
||
|
// All JSDoc comments must be valid
|
||
|
"valid-jsdoc": [ OFF, {
|
||
|
"requireReturn": false,
|
||
|
"requireReturnDescription": false,
|
||
|
"requireParamDescription": true,
|
||
|
"prefer": {
|
||
|
"return": "returns"
|
||
|
}
|
||
|
}],
|
||
|
|
||
|
// Best Practices
|
||
|
|
||
|
// Allowed a getter without setter, but all setters require getters
|
||
|
"accessor-pairs": [ OFF, {
|
||
|
"getWithoutSet": false,
|
||
|
"setWithoutGet": true
|
||
|
}],
|
||
|
"block-scoped-var": WARN,
|
||
|
"consistent-return": OFF,
|
||
|
"curly": ERROR,
|
||
|
"default-case": WARN,
|
||
|
// the dot goes with the property when doing multiline
|
||
|
"dot-location": [ WARN, "property" ],
|
||
|
"dot-notation": WARN,
|
||
|
"eqeqeq": [ ERROR, "smart" ],
|
||
|
"guard-for-in": WARN,
|
||
|
"no-alert": ERROR,
|
||
|
"no-caller": ERROR,
|
||
|
"no-case-declarations": WARN,
|
||
|
"no-div-regex": WARN,
|
||
|
"no-else-return": WARN,
|
||
|
"no-empty-pattern": WARN,
|
||
|
"no-eq-null": ERROR,
|
||
|
"no-eval": ERROR,
|
||
|
"no-extend-native": ERROR,
|
||
|
"no-extra-bind": WARN,
|
||
|
"no-floating-decimal": WARN,
|
||
|
"no-implicit-coercion": [ WARN, {
|
||
|
"boolean": true,
|
||
|
"number": true,
|
||
|
"string": true
|
||
|
}],
|
||
|
"no-implied-eval": ERROR,
|
||
|
"no-invalid-this": ERROR,
|
||
|
"no-iterator": ERROR,
|
||
|
"no-labels": WARN,
|
||
|
"no-lone-blocks": WARN,
|
||
|
"no-loop-func": ERROR,
|
||
|
"no-magic-numbers": OFF,
|
||
|
"no-multi-spaces": ERROR,
|
||
|
"no-multi-str": WARN,
|
||
|
"no-native-reassign": ERROR,
|
||
|
"no-new-func": ERROR,
|
||
|
"no-new-wrappers": ERROR,
|
||
|
"no-new": ERROR,
|
||
|
"no-octal-escape": ERROR,
|
||
|
"no-param-reassign": ERROR,
|
||
|
"no-process-env": WARN,
|
||
|
"no-proto": ERROR,
|
||
|
"no-redeclare": ERROR,
|
||
|
"no-return-assign": ERROR,
|
||
|
"no-script-url": ERROR,
|
||
|
"no-self-compare": ERROR,
|
||
|
"no-throw-literal": ERROR,
|
||
|
"no-unused-expressions": ERROR,
|
||
|
"no-useless-call": ERROR,
|
||
|
"no-useless-concat": ERROR,
|
||
|
"no-void": WARN,
|
||
|
// Produce warnings when something is commented as TODO or FIXME
|
||
|
"no-warning-comments": [ WARN, {
|
||
|
"terms": [ "TODO", "FIXME" ],
|
||
|
"location": "start"
|
||
|
}],
|
||
|
"no-with": WARN,
|
||
|
"radix": WARN,
|
||
|
"vars-on-top": ERROR,
|
||
|
// Enforces the style of wrapped functions
|
||
|
"wrap-iife": [ ERROR, "outside" ],
|
||
|
"yoda": ERROR,
|
||
|
|
||
|
// Strict Mode - for ES6, never use strict.
|
||
|
"strict": [ ERROR, "never" ],
|
||
|
|
||
|
// Variables
|
||
|
"init-declarations": [ OFF, "always" ],
|
||
|
"no-catch-shadow": WARN,
|
||
|
"no-delete-var": ERROR,
|
||
|
"no-label-var": ERROR,
|
||
|
"no-shadow-restricted-names": ERROR,
|
||
|
"no-shadow": WARN,
|
||
|
// We require all vars to be initialized (see init-declarations)
|
||
|
// If we NEED a var to be initialized to undefined, it needs to be explicit
|
||
|
"no-undef-init": OFF,
|
||
|
"no-undef": ERROR,
|
||
|
"no-undefined": OFF,
|
||
|
"no-unused-vars": OFF,
|
||
|
// Disallow hoisting - let & const don't allow hoisting anyhow
|
||
|
"no-use-before-define": ERROR,
|
||
|
|
||
|
// Node.js and CommonJS
|
||
|
"callback-return": [ WARN, [ "callback", "next" ]],
|
||
|
"global-require": ERROR,
|
||
|
"handle-callback-err": WARN,
|
||
|
"no-mixed-requires": WARN,
|
||
|
"no-new-require": ERROR,
|
||
|
// Use path.concat instead
|
||
|
"no-path-concat": ERROR,
|
||
|
"no-process-exit": ERROR,
|
||
|
"no-restricted-modules": OFF,
|
||
|
"no-sync": WARN,
|
||
|
|
||
|
// ECMAScript 6 support
|
||
|
"arrow-body-style": [ ERROR, "always" ],
|
||
|
"arrow-parens": [ ERROR, "always" ],
|
||
|
"arrow-spacing": [ ERROR, { "before": true, "after": true }],
|
||
|
"constructor-super": ERROR,
|
||
|
"generator-star-spacing": [ ERROR, "before" ],
|
||
|
"no-confusing-arrow": ERROR,
|
||
|
"no-class-assign": ERROR,
|
||
|
"no-const-assign": ERROR,
|
||
|
"no-dupe-class-members": ERROR,
|
||
|
"no-this-before-super": ERROR,
|
||
|
"no-var": WARN,
|
||
|
"object-shorthand": [ WARN, "never" ],
|
||
|
"prefer-arrow-callback": WARN,
|
||
|
"prefer-spread": WARN,
|
||
|
"prefer-template": WARN,
|
||
|
"require-yield": ERROR,
|
||
|
|
||
|
// Stylistic - everything here is a warning because of style.
|
||
|
"array-bracket-spacing": [ WARN, "always" ],
|
||
|
"block-spacing": [ WARN, "always" ],
|
||
|
"brace-style": [ WARN, "1tbs", { "allowSingleLine": false } ],
|
||
|
"camelcase": WARN,
|
||
|
"comma-spacing": [ WARN, { "before": false, "after": true } ],
|
||
|
"comma-style": [ WARN, "last" ],
|
||
|
"computed-property-spacing": [ WARN, "never" ],
|
||
|
"consistent-this": [ WARN, "self" ],
|
||
|
"eol-last": WARN,
|
||
|
"func-names": WARN,
|
||
|
"func-style": [ WARN, "declaration" ],
|
||
|
"id-length": [ WARN, { "min": 2, "max": 32 } ],
|
||
|
"indent": [ WARN, 'tab' ],
|
||
|
"jsx-quotes": [ WARN, "prefer-double" ],
|
||
|
"linebreak-style": [ WARN, "unix" ],
|
||
|
"lines-around-comment": [ OFF, { "beforeBlockComment": true } ],
|
||
|
"max-depth": [ WARN, 8 ],
|
||
|
"max-len": [ WARN, 182 ],
|
||
|
"max-nested-callbacks": [ WARN, 8 ],
|
||
|
"max-params": [ WARN, 10 ],
|
||
|
"new-cap": OFF,
|
||
|
"new-parens": WARN,
|
||
|
"no-array-constructor": WARN,
|
||
|
"no-bitwise": OFF,
|
||
|
"no-continue": OFF,
|
||
|
"no-inline-comments": OFF,
|
||
|
"no-lonely-if": OFF,
|
||
|
"no-mixed-spaces-and-tabs": OFF,
|
||
|
"no-multiple-empty-lines": WARN,
|
||
|
"no-negated-condition": OFF,
|
||
|
"no-nested-ternary": WARN,
|
||
|
"no-new-object": WARN,
|
||
|
"no-plusplus": OFF,
|
||
|
"no-spaced-func": WARN,
|
||
|
"no-ternary": OFF,
|
||
|
"no-trailing-spaces": WARN,
|
||
|
"no-underscore-dangle": WARN,
|
||
|
"no-unneeded-ternary": WARN,
|
||
|
"object-curly-spacing": [ WARN, "always" ],
|
||
|
"one-var": OFF,
|
||
|
"operator-assignment": [ WARN, "never" ],
|
||
|
"operator-linebreak": [ WARN, "after" ],
|
||
|
"padded-blocks": [ WARN, "never" ],
|
||
|
"quote-props": [ WARN, "consistent-as-needed" ],
|
||
|
"quotes": [ WARN, "single" ],
|
||
|
"require-jsdoc": [ OFF, {
|
||
|
"require": {
|
||
|
"FunctionDeclaration": true,
|
||
|
"MethodDefinition": true,
|
||
|
"ClassDeclaration": false
|
||
|
}
|
||
|
}],
|
||
|
"semi-spacing": [ WARN, { "before": false, "after": true }],
|
||
|
"semi": [ ERROR, "always" ],
|
||
|
"sort-vars": OFF,
|
||
|
"keyword-spacing": [WARN, {
|
||
|
"overrides": {
|
||
|
"if": { "after": false },
|
||
|
"for": { "after": false },
|
||
|
"while": { "after": false },
|
||
|
"static": { "after": false },
|
||
|
"as": { "after": false }
|
||
|
}
|
||
|
}],
|
||
|
"space-before-blocks": [ WARN, "always" ],
|
||
|
"space-before-function-paren": [ WARN, "never" ],
|
||
|
"space-in-parens": [ WARN, "never" ],
|
||
|
"space-infix-ops": [ WARN, { "int32Hint": true } ],
|
||
|
"space-unary-ops": ERROR,
|
||
|
"spaced-comment": [ WARN, "always" ],
|
||
|
"wrap-regex": WARN,
|
||
|
},
|
||
|
};
|